package com.caliverse.admin.dynamodb.domain.atrrib;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.*;
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbAttribute;
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;

@Setter
@ToString(callSuper = true)
@NoArgsConstructor
@DynamoDbBean
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class LandAuctionRegistryAttrib {
    @JsonProperty("land_meta_id")
    private Integer landMetaId;
    @JsonProperty("auction_number")
    private Integer auctionNumber;
    @JsonProperty("auction_reservation_notice_start_time")
    private String auctionReservationNoticeStartTime;
    @JsonProperty("bid_currency_type")
    private String bidCurrencyType;
    @JsonProperty("auction_start_time")
    private String auctionStartTime;
    @JsonProperty("auction_end_time")
    private String auctionEndTime;
    @JsonProperty("bid_start_price")
    private Double bidStartPrice;
    @JsonProperty("is_cancel_auction")
    private String isCancelAuction;
    @JsonProperty("registered_version_time")
    private String registeredVersionTime;
    @JsonProperty("auction_state")
    private String auctionState;
    @JsonProperty("auction_result")
    private String auctionResult;
    @JsonProperty("process_version_time")
    private String processVersionTime;

    @DynamoDbAttribute("land_meta_id")
    public Integer getLandMetaId() {
        return landMetaId;
    }

    @DynamoDbAttribute("auction_number")
    public Integer getAuctionNumber() {
        return auctionNumber;
    }

    @DynamoDbAttribute("auction_reservation_notice_start_time")
    public String getAuctionReservationNoticeStartTime() {
        return auctionReservationNoticeStartTime;
    }

    @DynamoDbAttribute("bid_currency_type")
    public String getBidCurrencyType() { return bidCurrencyType; }

    @DynamoDbAttribute("auction_start_time")
    public String getAuctionStartTime() {
        return auctionStartTime;
    }

    @DynamoDbAttribute("auction_end_time")
    public String getAuctionEndTime() {
        return auctionEndTime;
    }

    @DynamoDbAttribute("bid_start_price")
    public Double getBidStartPrice() {
        return bidStartPrice;
    }

    @DynamoDbAttribute("is_cancel_auction")
    public String getIsCancelAuction() {
        return isCancelAuction;
    }

    @DynamoDbAttribute("registered_version_time")
    public String getRegisteredVersionTime() {
        return registeredVersionTime;
    }

    @DynamoDbAttribute("auction_state")
    public String getAuctionState() { return auctionState; }

    @DynamoDbAttribute("auction_result")
    public String getAuctionResult() { return auctionResult; }

    @DynamoDbAttribute("process_version_time")
    public String getProcessVersionTime() {
        return processVersionTime;
    }
}
