diff --git a/litecord/blueprints/guilds.py b/litecord/blueprints/guilds.py index 546fe01..74ea3e8 100644 --- a/litecord/blueprints/guilds.py +++ b/litecord/blueprints/guilds.py @@ -316,9 +316,9 @@ async def _update_guild(guild_id): guild_id, ) - channel_fields = ["afk_channel_id", "system_channel_id"] + channel_fields = ["afk_channel_id", "system_channel_id", "rules_channel_id"] for field in [f for f in channel_fields if f in j]: - # setting to null should remove the link between the afk/sys channel + # setting to null should remove the link between the afk/sys/rules channel # to the guild. if j[field] is None: await app.db.execute( @@ -346,7 +346,7 @@ async def _update_guild(guild_id): SET {field} = $1 WHERE id = $2 """, - j[field], + int(j[field]), guild_id, ) diff --git a/litecord/schemas.py b/litecord/schemas.py index 1d65837..2e88661 100644 --- a/litecord/schemas.py +++ b/litecord/schemas.py @@ -292,6 +292,7 @@ GUILD_UPDATE = { "owner_id": {"type": "snowflake", "required": False}, "system_channel_id": {"type": "snowflake", "required": False, "nullable": True}, "features": {"type": "list", "required": False, "schema": {"type": "string"}}, + "rules_channel_id": {"type": "snowflake", "required": False, "nullable": True}, } diff --git a/litecord/storage.py b/litecord/storage.py index 4c22980..8bf3586 100644 --- a/litecord/storage.py +++ b/litecord/storage.py @@ -201,7 +201,7 @@ class Storage: explicit_content_filter, mfa_level, embed_enabled, embed_channel_id::text, widget_enabled, widget_channel_id::text, - system_channel_id::text, features, + system_channel_id::text, rules_channel_id::text, features, banner, description FROM guilds WHERE guilds.id = $1 diff --git a/manage/cmd/migration/scripts/5_add_rules_channel_id.sql b/manage/cmd/migration/scripts/5_add_rules_channel_id.sql new file mode 100644 index 0000000..1ea4c9e --- /dev/null +++ b/manage/cmd/migration/scripts/5_add_rules_channel_id.sql @@ -0,0 +1 @@ +ALTER TABLE guilds ADD COLUMN rules_channel_id bigint \ No newline at end of file