package cokr.xit.ens.modules.kkomydoc.model.config;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;

@Getter
@ToString
@SuperBuilder
@Schema(name = "DocumentConfKKoMd")
@NoArgsConstructor
public class DocumentConfKkoMd {

    @Length(max = 99, message = "hash값의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "hash값", example = " ")
    private String hash;

    @NotEmpty(message = "메타정보는 필수 입력값 입니다.")
    @Schema(required = false, title = "메타정보", example = "[\"NOTICE\"]")
    private List<String> common_categories;

//    @Length(max = 10, message = "처리마감시간(절대시간)의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "처리마감시간(절대시간)", example = "1617202800")
    private Long read_expired_at;

//    @Length(max = 8, message = "처리마감시간(상대시간)의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "처리마감시간(상대시간)", example = "2592000")
    private Integer read_expired_sec;

    @Valid
    @NotNull(message = "속성정보는 필수 입력값 입니다")
    @Schema(required = true)
    protected Property property;

    @Schema(required = false, title = "문서 안내 추가 정보", example = "{\"content\":\"문서 설명...\"}")
    private Map<String, Object> bridge;
}
