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

import com.caliverse.admin.dynamodb.entity.EDayOfWeekType;
import com.caliverse.admin.dynamodb.entity.EOncePeriodRangeType;
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.DynamoDbBean;

import java.util.HashSet;

@Getter
@Setter
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@DynamoDbBean
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class BattleEventAttrib extends DynamoDBAttribBase {

    @JsonProperty("event_id")
    private Integer eventId;

    @JsonProperty("is_active")
    private boolean isActive;

    @JsonProperty("start_day")
    private String startDay;

    @JsonProperty("start_hour")
    private Integer startHour;

    @JsonProperty("start_min")
    private Integer startMin;

    @JsonProperty("end_date")
    private String endDate;

    @JsonProperty("instance_id")
    private Integer instanceId;

    @JsonProperty("once_period_type")
    private EOncePeriodRangeType oncePeriodType;

    @JsonProperty("day_of_week_type")
    private HashSet<EDayOfWeekType> dayOfWeekType;

    @JsonProperty("ffa_config_data_id")
    private Integer configDataId;

    @JsonProperty("ffa_reward_group_id")
    private Integer rewardGroupId;

    @JsonProperty("ffa_hot_time")
    private Integer hotTime;

    @JsonProperty("round_count")
    private Integer roundCount;

}
