Organized settings better within the dataclass.

This commit is contained in:
2024-09-03 15:13:47 -04:00
parent 62f53bde55
commit 2244765d87
+41 -26
View File
@@ -8,32 +8,15 @@ CONFIG_LOCATION = "conf/config.yaml"
@dataclass
class Settings:
"""Class defines settings editable by Clan Council."""
class ChannelIds:
"""Class holds all channel ids needed by bot."""
admin_channel_id: int # might want to rename this...
announcement_category_id: int
clan_council_elect_role_id: int
clan_council_role_id: int
clan_info_channel_id: int
clan_member_role_id: int
event_host_points: int
event_host_role_id: int
event_participate_points: int
event_points_weekly_limit: int
event_post_channel_id: int
general_channel_id: int
high_council_role_id: int
voting_parent_id: int
@dataclass
class Params:
"""Class defines start parameters that shouldn't be changed."""
discord_token: str
git_branch: str
guild_id: int
admin: int # might want to rename this...
announcement_category: int
clan_info: int
event_post: int
general: int
voting_parent: int
@dataclass
@@ -51,13 +34,44 @@ class Election:
voting_start: str
@dataclass
class Params:
"""Class defines start parameters that shouldn't be changed."""
discord_token: str
git_branch: str
guild_id: int
@dataclass
class RoleIds:
"""Class holds all role ids needed by bot."""
clan_council_elect: int
clan_council: int
clan_member: int
event_host: int
high_council: int
@dataclass
class EventSettings:
"""Class defines settings editable by Clan Council."""
host_points: int
participate_points: int
weekly_limit: int
@dataclass
class DakinySettings(YAMLWizard):
"""Class defines all configs required for Dakiny Bot."""
channel_ids: ChannelIds
election_cycles: list[Election]
event_settings: EventSettings
params: Params
settings: Settings
role_ids: RoleIds
def save(self) -> None:
"""Saves settings to the yaml file."""
@@ -65,3 +79,4 @@ class DakinySettings(YAMLWizard):
settings = DakinySettings.from_yaml_file(CONFIG_LOCATION)
settings.save()