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.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
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 MoneyAttrib {
    @JsonProperty("owner_guid")
    private String ownerGuid;

    @JsonProperty("owner_entity_type")
    private String ownerEntityType;

    private Double gold;

    private Double sapphire;

    private Double calium;

    private Double ruby;

    @DynamoDbAttribute("owner_guid")
    public String getOwnerGuid() {
        return ownerGuid;
    }

    @DynamoDbAttribute("owner_entity_type")
    public String getOwnerEntityType() {
        return ownerEntityType;
    }

    @DynamoDbAttribute("gold")
    public Double getGold() {
        return gold;
    }

    @DynamoDbAttribute("sapphire")
    public Double getSapphire() {
        return sapphire;
    }

    @DynamoDbAttribute("calium")
    public Double getCalium() {
        return calium;
    }

    @DynamoDbAttribute("ruby")
    public Double getRuby() {
        return ruby;
    }
}
