parent
4dfcf0de93
commit
ac641cf0ce
@ -0,0 +1,8 @@
|
||||
package kr.re.etri.autoflow.entity;
|
||||
|
||||
public enum ProjectPermission {
|
||||
CREATE,
|
||||
READ,
|
||||
UPDATE,
|
||||
DELETE
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package kr.re.etri.autoflow.entity;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.persistence.*;
|
||||
import kr.re.etri.autoflow.models.User;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
@Entity
|
||||
@Table(name = "tb_user_project_map")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(description = "유저-프로젝트 매핑 정보")
|
||||
public class UserProjectMapEntity {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Schema(description = "매핑 ID", example = "1")
|
||||
private Long id;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(nullable = false)
|
||||
@Schema(description = "프로젝트 정보")
|
||||
private ProjectEntity project;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(nullable = false)
|
||||
@Schema(description = "사용자 정보")
|
||||
private User user;
|
||||
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
@CollectionTable(name = "tb_user_project_permission", joinColumns = @JoinColumn(name = "user_project_id"))
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(length = 20)
|
||||
@Schema(description = "권한 목록", example = "[\"READ\", \"WRITE\"]")
|
||||
private Set<ProjectPermission> permissions = new HashSet<>();
|
||||
}
|
||||
Loading…
Reference in new issue