File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package kr.itn.itnhub.org;
import kr.itn.itnhub.contact.Contact;
public class Organization {
private Long id;
private String orgNo;
private String orgName;
private String channelSlug;
private Long applicantContactId;
private Long mjContactId;
private Long lawyerContactId;
private String lawyerAssignedDate;
private String channelIdMj;
private String channelIdLaw;
/** findAll/findById가 contact 테이블과 조인해 채워준다. 시드/upsert 경로에서는 비어 있다. */
private Contact applicant;
private Contact mj;
private Contact lawyer;
/**
* 상태는 저장하지 않고 항상 파생한다.
* 저장하면 채널ID와 상태가 어긋나는 순간이 생기고, 그 어긋남을 고칠 방법이 없다.
*/
public OrgStatus getStatus() {
boolean mjActive = filled(channelIdMj);
boolean lawActive = filled(channelIdLaw);
if (mjActive && lawActive) {
return OrgStatus.ACTIVE;
}
if (mjActive || lawActive) {
return OrgStatus.PARTIAL;
}
return hasApplicantAssigned() ? OrgStatus.READY : OrgStatus.INFO_PENDING;
}
/** 신청기관 담당자가 배정되어야 채널을 만들 수 있다(담당자관리에서 등록·배정된 담당자). */
public boolean hasApplicantAssigned() {
return applicantContactId != null;
}
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 Long getApplicantContactId() { return applicantContactId; }
public void setApplicantContactId(Long applicantContactId) { this.applicantContactId = applicantContactId; }
public Long getMjContactId() { return mjContactId; }
public void setMjContactId(Long mjContactId) { this.mjContactId = mjContactId; }
public Long getLawyerContactId() { return lawyerContactId; }
public void setLawyerContactId(Long lawyerContactId) { this.lawyerContactId = lawyerContactId; }
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; }
public Contact getApplicant() { return applicant; }
public void setApplicant(Contact applicant) { this.applicant = applicant; }
public Contact getMj() { return mj; }
public void setMj(Contact mj) { this.mj = mj; }
public Contact getLawyer() { return lawyer; }
public void setLawyer(Contact lawyer) { this.lawyer = lawyer; }
}