11package org .mangorage .mangobotcore .api .jda .permission .v1 ;
22
3+ import jakarta .persistence .CollectionTable ;
4+ import jakarta .persistence .ElementCollection ;
35import jakarta .persistence .Embeddable ;
46import jakarta .persistence .Entity ;
7+ import jakarta .persistence .FetchType ;
58import jakarta .persistence .Id ;
9+ import jakarta .persistence .JoinColumn ;
610import jakarta .persistence .Table ;
711import net .dv8tion .jda .api .Permission ;
812import net .dv8tion .jda .api .entities .Member ;
1317import org .mangorage .mangobotcore .api .util .data .IUniqueIdHolder ;
1418
1519import java .util .ArrayList ;
20+ import java .util .HashSet ;
1621import java .util .List ;
22+ import java .util .Set ;
1723
1824@ Entity
1925@ Table (name = "jda_permission_nodes" )
@@ -30,10 +36,21 @@ public static JDAPermissionNode create(String id) {
3036 }
3137
3238 @ Id
33- private final String id ;
34- private final List <GuildRole > roleIds = new ArrayList <>();
35- private final List <GuildUser > userIds = new ArrayList <>();
36- private final List <Permission > requiredDiscordPermissions = new ArrayList <>();
39+ private String id ;
40+
41+ @ ElementCollection (fetch = FetchType .EAGER )
42+ @ CollectionTable (name = "guild_roles" , joinColumns = @ JoinColumn (name = "permission_node_id" ))
43+ private final Set <GuildRole > roleIds = new HashSet <>();
44+
45+ @ ElementCollection (fetch = FetchType .EAGER )
46+ @ CollectionTable (name = "guild_users" , joinColumns = @ JoinColumn (name = "permission_node_id" ))
47+ private final Set <GuildUser > userIds = new HashSet <>();
48+
49+ @ ElementCollection (fetch = FetchType .EAGER )
50+ @ CollectionTable (name = "required_permissions" , joinColumns = @ JoinColumn (name = "permission_node_id" ))
51+ private final Set <Permission > requiredDiscordPermissions = new HashSet <>();
52+
53+ public JDAPermissionNode () {}
3754
3855 private JDAPermissionNode (String id ) {
3956 this .id = id ;
0 commit comments