diff --git a/ga-core/src/main/java/com/ga/core/vo/ledger/ApproveStatus.java b/ga-core/src/main/java/com/ga/core/vo/ledger/ApproveStatus.java new file mode 100644 index 0000000..1154537 --- /dev/null +++ b/ga-core/src/main/java/com/ga/core/vo/ledger/ApproveStatus.java @@ -0,0 +1,15 @@ +package com.ga.core.vo.ledger; + +/** + * 승인 상태 코드 (common_code_group: APPROVE_STATUS, V12 기준) + * DB exception_ledger.approve_status: PENDING / APPROVED / REJECTED + */ +public enum ApproveStatus { + PENDING, // 대기 + APPROVED, // 승인 + REJECTED; // 반려 + + public String code() { + return this.name(); + } +} diff --git a/ga-core/src/main/java/com/ga/core/vo/org/AgentStatus.java b/ga-core/src/main/java/com/ga/core/vo/org/AgentStatus.java new file mode 100644 index 0000000..06e8cee --- /dev/null +++ b/ga-core/src/main/java/com/ga/core/vo/org/AgentStatus.java @@ -0,0 +1,15 @@ +package com.ga.core.vo.org; + +/** + * 설계사 상태 코드 (common_code_group: AGENT_STATUS, V12 기준) + * DB agent.status: ACTIVE / LEAVE / SUSPEND + */ +public enum AgentStatus { + ACTIVE, // 정상 + LEAVE, // 퇴사 + SUSPEND; // 정지 + + public String code() { + return this.name(); + } +} diff --git a/ga-core/src/main/java/com/ga/core/vo/org/OrganizationSaveReq.java b/ga-core/src/main/java/com/ga/core/vo/org/OrganizationSaveReq.java new file mode 100644 index 0000000..017b57b --- /dev/null +++ b/ga-core/src/main/java/com/ga/core/vo/org/OrganizationSaveReq.java @@ -0,0 +1,37 @@ +package com.ga.core.vo.org; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; + +import java.time.LocalDate; + +@Data +public class OrganizationSaveReq { + + @NotBlank(message = "조직명은 필수입니다") + @Size(max = 100) + private String orgName; + + // null이면 최상위 조직 + private Long parentOrgId; + + @NotBlank(message = "조직유형은 필수입니다") + @Size(max = 10) + private String orgType; // HQ / BR / TM + + @NotNull(message = "조직레벨은 필수입니다") + private Integer orgLevel; + + @Size(max = 50) + private String region; + + @NotNull(message = "유효시작일은 필수입니다") + private LocalDate effectiveFrom; + + private LocalDate effectiveTo; + + @Size(max = 1) + private String isActive = "Y"; +} diff --git a/ga-core/src/main/java/com/ga/core/vo/product/ContractStatus.java b/ga-core/src/main/java/com/ga/core/vo/product/ContractStatus.java new file mode 100644 index 0000000..68cd2a3 --- /dev/null +++ b/ga-core/src/main/java/com/ga/core/vo/product/ContractStatus.java @@ -0,0 +1,16 @@ +package com.ga.core.vo.product; + +/** + * 계약 상태 코드 (common_code_group: CONTRACT_STATUS, V12 기준) + * DB contract.status: ACTIVE / LAPSE / REVIVE / TERMINATE + */ +public enum ContractStatus { + ACTIVE, // 유효 + LAPSE, // 실효 + REVIVE, // 부활 + TERMINATE; // 해지 + + public String code() { + return this.name(); + } +} diff --git a/ga-core/src/main/java/com/ga/core/vo/settle/SettleStatus.java b/ga-core/src/main/java/com/ga/core/vo/settle/SettleStatus.java new file mode 100644 index 0000000..40036f9 --- /dev/null +++ b/ga-core/src/main/java/com/ga/core/vo/settle/SettleStatus.java @@ -0,0 +1,16 @@ +package com.ga.core.vo.settle; + +/** + * 정산 상태 코드 (common_code_group: SETTLE_STATUS, V12 기준) + * DB settle_master.status: CALCULATED / CONFIRMED / HOLD / PAID + */ +public enum SettleStatus { + CALCULATED, // 계산완료 + CONFIRMED, // 확정 + HOLD, // 보류 + PAID; // 지급완료 + + public String code() { + return this.name(); + } +}