Harden auto room lifecycle and persistence

This commit is contained in:
2026-08-16 22:18:57 +02:00
parent ae6d491c44
commit 7d57b82b29
4 changed files with 146 additions and 31 deletions
+13 -1
View File
@@ -210,6 +210,19 @@ class YouTubeVideoHistory(db.Model):
detected_at = db.Column(db.DateTime, default=datetime.utcnow)
class AutoRoom(db.Model):
"""État persistant des salons vocaux temporaires."""
__tablename__ = 'auto_room'
guild_id = db.Column(db.String(32), primary_key=True)
voice_channel_id = db.Column(db.String(32), primary_key=True)
owner_id = db.Column(db.String(32), nullable=False)
control_message_id = db.Column(db.String(32))
access_mode = db.Column(db.String(16), nullable=False, default='open')
whitelist = db.Column(db.Text, nullable=False, default='[]')
blacklist = db.Column(db.Text, nullable=False, default='[]')
managed_member_ids = db.Column(db.Text, nullable=False, default='[]')
class FreeLootEntry(db.Model):
__tablename__ = 'freeloot_entry'
entry_id = db.Column(db.String(256), primary_key=True)
@@ -259,4 +272,3 @@ class ModShoutboxMessage(db.Model):
author = db.Column(db.String(64), nullable=False)
message = db.Column(db.String(500), nullable=False)
created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
+12
View File
@@ -193,6 +193,18 @@ CREATE TABLE IF NOT EXISTS `youtube_video_history` (
FOREIGN KEY (`notification_id`) REFERENCES `youtube_notification`(`id`) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS `auto_room` (
`guild_id` VARCHAR(32) NOT NULL,
`voice_channel_id` VARCHAR(32) NOT NULL UNIQUE,
`owner_id` VARCHAR(32) NOT NULL,
`control_message_id` VARCHAR(32),
`access_mode` VARCHAR(16) NOT NULL DEFAULT 'open',
`whitelist` TEXT NOT NULL DEFAULT '[]',
`blacklist` TEXT NOT NULL DEFAULT '[]',
`managed_member_ids` TEXT NOT NULL DEFAULT '[]',
PRIMARY KEY (`guild_id`, `voice_channel_id`)
);
CREATE TABLE IF NOT EXISTS `freeloot_entry` (
entry_id VARCHAR(256) PRIMARY KEY
);