package incheon.ags.uis.code.vo;

import incheon.com.cmm.ComDefaultVO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * cmt_code_dt (상세코드) VO
 * - list_id 는 내부 FK (cmt_code_lt.id)
 * - 화면에서는 groupCd(lt.name) + cd 로 식별
 */
@Getter
@Setter
@ToString
public class CodeDetailVO extends ComDefaultVO {

    /** FK: icuis.cmt_code_lt.id */
    private Integer listId;

    /** 그룹코드 (cmt_code_lt.name) */
    private String groupCd;

    /** 상세코드 (code) */
    private String cd;

    /** 상세코드명 ("name") */
    private String cdNm;

    /** 설명 (description) */
    private String cdExpln;

    /** 약칭 (short_word) */
    private String shortWord;

    /** 정렬순서 (sort) */
    private Integer cdSortSeq;

    /** 비고 (rmrk_cn) */
    private String remark;

    /** 사용여부 (Y/N) */
    private String useYn;

    /** PK bigserial */
    private Long gid;

    private String upCd;

    public void setCdSortSeq(Integer cdSortSeq) {
        if (cdSortSeq == null) {
            this.cdSortSeq = 0;
        } else {
            this.cdSortSeq = cdSortSeq;
        }
    }

    public void setCdSortSeq(String cdSortSeqStr) {
        if (cdSortSeqStr == null || cdSortSeqStr.trim().isEmpty()) {
            this.cdSortSeq = 0;
        } else {
            try {
                this.cdSortSeq = Integer.parseInt(cdSortSeqStr.trim());
            } catch (NumberFormatException e) {
                this.cdSortSeq = 0; // 숫자 변환 실패도 0 처리
            }
        }
    }

    public Integer getCdSortSeq() {
        return (cdSortSeq == null ? 0 : cdSortSeq);
    }

}
