1 package pk.lucidxpo.ynami.persistence.model.security;
2
3 import jakarta.persistence.Column;
4 import jakarta.persistence.Entity;
5 import jakarta.persistence.Enumerated;
6 import jakarta.persistence.Table;
7 import lombok.Data;
8 import lombok.EqualsAndHashCode;
9 import lombok.NoArgsConstructor;
10 import lombok.ToString;
11 import org.hibernate.annotations.NaturalId;
12 import pk.lucidxpo.ynami.persistence.model.Auditable;
13
14 import static jakarta.persistence.EnumType.STRING;
15 import static lombok.AccessLevel.PACKAGE;
16
17 @Data
18 @Entity
19 @Table(name = "Roles")
20 @ToString(callSuper = true)
21 @EqualsAndHashCode(callSuper = true)
22
23 @NoArgsConstructor(access = PACKAGE)
24 public class Role extends Auditable<String> {
25
26 @NaturalId
27 @Enumerated(STRING)
28 @Column(length = 60)
29 private RoleName name;
30
31 public Role(final RoleName name) {
32 this.name = name;
33 }
34 }