package go.kr.project.api.model.request;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.Size;

@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(description = "자동차등록원부(갑) 요청 항목 (신버전)")
@Getter
@Setter
public class NewLedgerRequest { // 총 15개 필드

    // 본문 공통 메타 (application.yml에서 자동 설정)
    @Schema(description = "정보시스템ID (자동설정: new.vmis.system.infoSysId)", example = "41-345")
    @JsonProperty("INFO_SYS_ID")
    private String infoSysId;

    @Schema(description = "정보시스템IP주소 (자동설정: new.vmis.system.infoSysIpAddr)", example = "105.19.10.135")
    @JsonProperty("INFO_SYS_IP_ADDR")
    private String infoSysIpAddr;

    @Schema(description = "시군구코드 (자동설정: new.vmis.system.sggCd)", example = "41460")
    @JsonProperty("SGG_CD")
    private String sggCd;

    // 서비스별 필드 (application.yml에서 자동 설정)
    @Schema(description = "연계정보코드 (자동설정: new.vmis.gov.services.ledger.linkInfoCd)", example = "AC1_FD11_02")
    @JsonProperty("LINK_INFO_CD")
    private String linkInfoCd;

    @Schema(description = "담당자ID (자동설정: new.vmis.system.picId)", example = "")
    @JsonProperty("PIC_ID")
    private String picId;

    @Schema(description = "담당자IP주소 (자동설정: new.vmis.system.picIpAddr)", example = "")
    @JsonProperty("PIC_IP_ADDR")
    private String picIpAddr;

    @Schema(description = "담당자명 (자동설정: new.vmis.system.picNm)", example = "")
    @JsonProperty("PIC_NM")
    private String picNm;

    @Schema(description = "자동차등록번호")
    @JsonProperty("VHRNO")
    private String vhrno;

    @Schema(description = "개인정보공개 {1:소유자공개, 2:비공개, 3:비공개(주민등록번호), 4:비공개(사용본거지)}")
    @JsonProperty("PRVC_RLS")
    private String prvcRls;

    @Schema(description = "민원인성명")
    @JsonProperty("CVLPR_NM")
    private String cvlprNm;

    @Schema(description = "민원인주민번호")
    @JsonProperty("CVLPR_IDECNO")
    @Size(max = 13)
    private String cvlprIdecno;

    @Schema(description = "민원인법정동코드")
    @JsonProperty("CVLPR_STDG_CD")
    private String cvlprStdgCd;

    @Schema(description = "경로구분코드 고정코드:3")
    @JsonProperty("PATH_SE_CD")
    private String pathSeCd;

    @Schema(description = "내역표시 {1:전체내역, 2:최종내역}")
    @JsonProperty("DSCTN_INDCT")
    private String dsctnIndct;

    @Schema(description = "조회구분코드 (자동설정: 1:열람 고정)")
    @JsonProperty("INQ_SE_CD")
    private String inqSeCd;

}
