package kr.itn.itnhub.org; public class Organization { private Long id; private String orgNo; private String orgName; private String channelSlug; private String deptName; private String managerName; private String managerTitle; private String managerPhone; private String managerEmail; private String mjDeptName; private String mjManagerName; private String mjManagerPhone; private String mjManagerEmail; private String lawyerName; private String lawyerPhone; private String lawyerEmail; private String lawyerAssignedDate; private String channelIdMj; private String channelIdLaw; /** * 상태는 저장하지 않고 항상 파생한다. * 저장하면 채널ID와 상태가 어긋나는 순간이 생기고, 그 어긋남을 고칠 방법이 없다. */ public OrgStatus getStatus() { boolean mj = filled(channelIdMj); boolean law = filled(channelIdLaw); if (mj && law) { return OrgStatus.ACTIVE; } if (mj || law) { return OrgStatus.PARTIAL; } return hasRequiredContact() ? OrgStatus.READY : OrgStatus.INFO_PENDING; } /** 직급/직함은 비어 있는 기관이 실제로 있으므로 필수에서 뺀다. */ public boolean hasRequiredContact() { return filled(deptName) && filled(managerName) && filled(managerPhone) && filled(managerEmail); } private static boolean filled(String value) { return value != null && !value.isBlank(); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getOrgNo() { return orgNo; } public void setOrgNo(String orgNo) { this.orgNo = orgNo; } public String getOrgName() { return orgName; } public void setOrgName(String orgName) { this.orgName = orgName; } public String getChannelSlug() { return channelSlug; } public void setChannelSlug(String channelSlug) { this.channelSlug = channelSlug; } public String getDeptName() { return deptName; } public void setDeptName(String deptName) { this.deptName = deptName; } public String getManagerName() { return managerName; } public void setManagerName(String managerName) { this.managerName = managerName; } public String getManagerTitle() { return managerTitle; } public void setManagerTitle(String managerTitle) { this.managerTitle = managerTitle; } public String getManagerPhone() { return managerPhone; } public void setManagerPhone(String managerPhone) { this.managerPhone = managerPhone; } public String getManagerEmail() { return managerEmail; } public void setManagerEmail(String managerEmail) { this.managerEmail = managerEmail; } public String getMjDeptName() { return mjDeptName; } public void setMjDeptName(String mjDeptName) { this.mjDeptName = mjDeptName; } public String getMjManagerName() { return mjManagerName; } public void setMjManagerName(String mjManagerName) { this.mjManagerName = mjManagerName; } public String getMjManagerPhone() { return mjManagerPhone; } public void setMjManagerPhone(String mjManagerPhone) { this.mjManagerPhone = mjManagerPhone; } public String getMjManagerEmail() { return mjManagerEmail; } public void setMjManagerEmail(String mjManagerEmail) { this.mjManagerEmail = mjManagerEmail; } public String getLawyerName() { return lawyerName; } public void setLawyerName(String lawyerName) { this.lawyerName = lawyerName; } public String getLawyerPhone() { return lawyerPhone; } public void setLawyerPhone(String lawyerPhone) { this.lawyerPhone = lawyerPhone; } public String getLawyerEmail() { return lawyerEmail; } public void setLawyerEmail(String lawyerEmail) { this.lawyerEmail = lawyerEmail; } public String getLawyerAssignedDate() { return lawyerAssignedDate; } public void setLawyerAssignedDate(String lawyerAssignedDate) { this.lawyerAssignedDate = lawyerAssignedDate; } public String getChannelIdMj() { return channelIdMj; } public void setChannelIdMj(String channelIdMj) { this.channelIdMj = channelIdMj; } public String getChannelIdLaw() { return channelIdLaw; } public void setChannelIdLaw(String channelIdLaw) { this.channelIdLaw = channelIdLaw; } }