feat(core): OrganizationSaveReq + 상태 Enum 4종 추가 (리뷰 1단계)
ga-api 코드 리뷰에서 식별된 P0 이슈 해결의 1단계.
추가:
- vo/org/OrganizationSaveReq.java — 감사필드 제외, @Valid 적용
- vo/org/AgentStatus.java {ACTIVE, LEAVE, SUSPEND}
- vo/product/ContractStatus.java {ACTIVE, LAPSE, REVIVE, TERMINATE}
- vo/settle/SettleStatus.java {CALCULATED, CONFIRMED, HOLD, PAID}
- vo/ledger/ApproveStatus.java {PENDING, APPROVED, REJECTED}
값 결정 근거: V1/V2/V5/V6 DDL 주석 + V12 공통코드 (AGENT_STATUS,
CONTRACT_STATUS, SETTLE_STATUS, APPROVE_STATUS).
다음 단계(api-developer)가 ga-api 서비스의 매직 스트링을 이 Enum으로
교체하고 OrganizationSaveReq를 사용하도록 변경 예정.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user