11use serde:: { Deserialize , Serialize } ;
22
33#[ derive( Deserialize , Serialize ) ]
4- pub struct ConfigPluginPermissions {
4+ pub struct PluginPermissions {
55 #[ serde( default ) ]
6- pub core : Vec < ConfigSupportedCoreRegistrations > ,
6+ pub core : Vec < PluginPermissionsCore > ,
77 #[ serde( default ) ]
8- pub job_scheduler : Vec < ConfigSupportedJobSchedulerRegistrations > ,
8+ pub job_scheduler : Vec < PluginPermissionsJobScheduler > ,
99 #[ serde( default ) ]
10- pub discord : Vec < ConfigSupportedDiscordRegistrations > ,
10+ pub discord : PluginPermissionsDiscord ,
1111}
1212
13- #[ derive( Deserialize , PartialEq , Serialize ) ]
13+ #[ derive( Default , Deserialize , Serialize ) ]
14+ pub struct PluginPermissionsDiscord {
15+ pub events : Vec < PluginPermissionsDiscordEvents > ,
16+ pub interactions : Vec < PluginPermissionsDiscordInteractions > ,
17+ }
18+
19+ #[ derive( Debug , Deserialize , PartialEq , Serialize ) ]
1420#[ serde( untagged) ]
15- pub enum ConfigSupportedCoreRegistrations {
21+ pub enum PluginPermissionsCore {
1622 DependencyFunctions ,
1723 Shutdown ,
1824}
1925
20- #[ derive( Deserialize , PartialEq , Serialize ) ]
26+ #[ derive( Debug , Deserialize , PartialEq , Serialize ) ]
2127#[ serde( untagged) ]
22- pub enum ConfigSupportedJobSchedulerRegistrations {
28+ pub enum PluginPermissionsJobScheduler {
2329 ScheduledJobs ,
2430}
2531
26- #[ derive( Deserialize , PartialEq , Serialize ) ]
32+ #[ derive( Debug , Deserialize , PartialEq , Serialize ) ]
2733#[ serde( untagged) ]
28- pub enum ConfigSupportedDiscordRegistrations {
34+ pub enum PluginPermissionsDiscordEvents {
2935 MessageCreate ,
3036 InteractionCreate ,
3137 ThreadCreate ,
@@ -35,3 +41,11 @@ pub enum ConfigSupportedDiscordRegistrations {
3541 ThreadMembersUpdate ,
3642 ThreadUpdate ,
3743}
44+
45+ #[ derive( Debug , Deserialize , PartialEq , Serialize ) ]
46+ #[ serde( untagged) ]
47+ pub enum PluginPermissionsDiscordInteractions {
48+ ApplicationCommands ,
49+ MessageComponents ,
50+ Modals ,
51+ }
0 commit comments