package com.caliverse.admin.domain.request;

import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

import com.caliverse.admin.domain.entity.InGame;
import com.caliverse.admin.domain.entity.Message;
import com.fasterxml.jackson.annotation.JsonProperty;

import jakarta.annotation.Nullable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NoticeRequest {

    private Long id;
    @JsonProperty("send_dt")
    private LocalDateTime sendDt;

    @JsonProperty("end_dt")
    private LocalDateTime endDt;

    @JsonProperty("message_type")
    private InGame.MESSAGETYPE messageType;

    @JsonProperty("is_repeat")
    private boolean isRepeat;     // 반복 발송 여부

    @JsonProperty("repeat_type")
    private InGame.REPEATTYPE repeatType;

    @Nullable
    @JsonProperty("repeat_dt")
    private LocalTime repeatDt;   //반복 발송 시간
    @Nullable
    @JsonProperty("repeat_cnt")
    private Long repeatCnt;

    @JsonProperty("game_message")
    private List<Message> gameMessages;
    // 등록자 이메일 저장
    private Long createBy;
    // 수정자 이메일 저장
    private Long updateBy;


    @JsonProperty("list")
    private List<MessageId> list;

    @Getter
    public static class MessageId{
        @JsonProperty("message_id")
        private Long messageId;
    }
}
