package cokr.xit.ens.core.model;

import cokr.xit.ens.modules.common.ctgy.intgrnbill.support.code.BillSeCd;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

@Builder
@Getter
@Setter
@Schema(name = "EnsBillAcptReqDTO")
public class EnsBillAcptReqDTO {

//    @NotNull(message = "청구서ID 사용 여부는 필수 입력값 입니다.")
//    @Schema(hidden = true, required = true, title = "청구서ID 사용 여부", example = "false")
//    private Boolean use_bill_uid;

    @Schema(hidden = true, required = false, title = "청구서 유니크ID", example = " ")
    @JsonProperty("billUid")  
    @JsonAlias({"bill_uid"})
    @SerializedName(value = "billUid", alternate = {"bill_uid"})
    private String billUid;

    @NotNull(message = "청구서 타입은 필수 입력값 입니다.")
    @Schema(required = true, title = "청구서 타입", example = "all")
    @JsonProperty("billSe")  
    @JsonAlias({"bill_se"})
    @SerializedName(value = "billSe", alternate = {"bill_se"})
    private BillSeCd billSe;

    @NotBlank(message = "빌러유저키는 필수 입력값 입니다.")
    @Length(max = 40, message = "빌러유저키의 최대 길이를 초과 했습니다.")
    @Schema(required = true, title = "기관에서 관리하는 해당 고객번호 혹은 계약번호", example = " ")
    @JsonProperty("billerUserKey")  
    @JsonAlias({"biller_user_key"})
    @SerializedName(value = "billerUserKey", alternate = {"biller_user_key"})  
    private String billerUserKey;


}
