package kr.wisestone.owl.domain; import kr.wisestone.owl.domain.enumType.IssueStatusType; import org.hibernate.annotations.Type; import javax.persistence.*; import java.io.Serializable; import java.util.HashSet; import java.util.Set; /** * Created by wisestone on 2018-01-03. */ @Entity public class IssueStatus extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String color; private Long position; // 기본 제공되는 이슈 상태에서 연결을 위해 사용 @Type(type = "yes_no") private Boolean defaultYn = Boolean.FALSE; @Enumerated(EnumType.STRING) private IssueStatusType issueStatusType; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "workspace_id") private Workspace workspace; @OneToMany(mappedBy = "issueStatus", cascade = {CascadeType.ALL}, orphanRemoval = true) private Set issues = new HashSet<>(); @OneToMany(mappedBy="sourceIssueStatus", cascade={CascadeType.ALL}, orphanRemoval=true) private Set sourceWorkflowTransitions = new HashSet<>(); @OneToMany(mappedBy="targetIssueStatus", cascade={CascadeType.ALL}, orphanRemoval=true) private Set targetWorkflowTransitions = new HashSet<>(); public IssueStatus() { } public IssueStatus(Workspace workspace, String name, Boolean defaultYn, String color, IssueStatusType issueStatusType, Long position) { this.workspace = workspace; this.name = name; this.defaultYn = defaultYn; this.color = color; this.issueStatusType = issueStatusType; this.position = position; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Workspace getWorkspace() { return workspace; } public void setWorkspace(Workspace workspace) { this.workspace = workspace; } public Set getIssues() { return issues; } public void setIssues(Set issues) { this.issues = issues; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public IssueStatusType getIssueStatusType() { return issueStatusType; } public void setIssueStatusType(IssueStatusType issueStatusType) { this.issueStatusType = issueStatusType; } public Boolean getDefaultYn() { return defaultYn; } public void setDefaultYn(Boolean defaultYn) { this.defaultYn = defaultYn; } public Long getPosition() { return position; } public void setPosition(Long position) { this.position = position; } public Set getSourceWorkflowTransitions() { return sourceWorkflowTransitions; } public void setSourceWorkflowTransitions(Set sourceWorkflowTransitions) { this.sourceWorkflowTransitions = sourceWorkflowTransitions; } public Set getTargetWorkflowTransitions() { return targetWorkflowTransitions; } public void setTargetWorkflowTransitions(Set targetWorkflowTransitions) { this.targetWorkflowTransitions = targetWorkflowTransitions; } }