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