# Generated by Django 6.0.3 on 2026-04-04 04:02 import django.db.models.deletion import uuid from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name="Instance", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, ), ), ( "instance_id", models.CharField( max_length=100, unique=True, verbose_name="实例 ID" ), ), ( "instance_name", models.CharField(max_length=200, verbose_name="实例名称"), ), ( "agent_ids", models.JSONField(default=list, verbose_name="Agent ID 列表"), ), ( "webhook_url", models.URLField( help_text="消息推送地址", verbose_name="Webhook URL" ), ), ( "webhook_enabled", models.BooleanField(default=True, verbose_name="启用 Webhook"), ), ( "is_active", models.BooleanField(default=True, verbose_name="是否活跃"), ), ( "last_heartbeat", models.DateTimeField( blank=True, null=True, verbose_name="最后心跳" ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ], options={ "verbose_name": "OpenClaw 实例", "verbose_name_plural": "OpenClaw 实例", "db_table": "instances", "ordering": ["-created_at"], }, ), migrations.CreateModel( name="MeetingInstanceMap", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("meeting_id", models.UUIDField(verbose_name="会议 ID")), ( "agent_ids", models.JSONField(default=list, verbose_name="参与的 Agent ID 列表"), ), ("joined_at", models.DateTimeField(auto_now_add=True)), ("left_at", models.DateTimeField(blank=True, null=True)), ( "instance", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="meetings", to="instances.instance", ), ), ], options={ "db_table": "meeting_instance_maps", "indexes": [ models.Index( fields=["meeting_id", "left_at"], name="meeting_ins_meeting_947179_idx", ) ], "unique_together": {("meeting_id", "instance")}, }, ), ]