# Generated by Django 5.2.13 on 2026-05-18 import django.db.models.deletion import uuid_utils.compat from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('users', '0001_initial'), ] operations = [ migrations.CreateModel( name='Plugin', fields=[ ('create_time', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')), ('update_time', models.DateTimeField(auto_now=True, db_index=True, verbose_name='修改时间')), ('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')), ('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')), ('name', models.CharField(db_index=True, max_length=128, verbose_name='插件名称')), ('code', models.CharField(db_index=True, max_length=64, unique=True, verbose_name='插件编码')), ('desc', models.CharField(default='', max_length=512, verbose_name='插件描述')), ('plugin_type', models.CharField(choices=[('TOOL', '工具插件'), ('KNOWLEDGE', '知识库插件'), ('MODEL', '模型插件'), ('CUSTOM', '自定义插件')], default='CUSTOM', max_length=20, verbose_name='插件类型')), ('status', models.CharField(choices=[('ACTIVE', '已启用'), ('INACTIVE', '已禁用'), ('ERROR', '错误')], default='INACTIVE', max_length=20, verbose_name='插件状态')), ('version', models.CharField(default='1.0.0', max_length=32, verbose_name='当前版本')), ('author', models.CharField(default='', max_length=64, verbose_name='作者')), ('icon', models.CharField(default='', max_length=256, verbose_name='插件图标')), ('schema', models.JSONField(default=dict, verbose_name='插件 Schema')), ('config', models.JSONField(default=dict, verbose_name='插件配置')), ('entry_point', models.CharField(default='', max_length=256, verbose_name='入口文件')), ('is_installed', models.BooleanField(default=False, verbose_name='是否已安装')), ('install_time', models.DateTimeField(blank=True, null=True, verbose_name='安装时间')), ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user', verbose_name='创建用户')), ], options={ 'db_table': 'plugin', }, ), migrations.CreateModel( name='PluginVersion', fields=[ ('create_time', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')), ('update_time', models.DateTimeField(auto_now=True, db_index=True, verbose_name='修改时间')), ('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')), ('version', models.CharField(max_length=32, verbose_name='版本号')), ('status', models.CharField(choices=[('PENDING', '待发布'), ('ACTIVE', '已发布'), ('DEPRECATED', '已废弃')], default='PENDING', max_length=20, verbose_name='版本状态')), ('changelog', models.TextField(default='', verbose_name='更新日志')), ('schema', models.JSONField(default=dict, verbose_name='版本 Schema')), ('config', models.JSONField(default=dict, verbose_name='版本配置')), ('file_path', models.CharField(default='', max_length=512, verbose_name='版本文件路径')), ('file_hash', models.CharField(default='', max_length=64, verbose_name='文件哈希')), ('is_rollback', models.BooleanField(default=False, verbose_name='是否回滚版本')), ('plugin', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, to='plugin.plugin', verbose_name='插件')), ], options={ 'db_table': 'plugin_version', 'ordering': ['-create_time'], }, ), migrations.CreateModel( name='PluginTest', fields=[ ('create_time', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')), ('update_time', models.DateTimeField(auto_now=True, db_index=True, verbose_name='修改时间')), ('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')), ('version', models.CharField(default='', max_length=32, verbose_name='测试版本')), ('test_type', models.CharField(default='smoke', max_length=32, verbose_name='测试类型')), ('status', models.CharField(choices=[('PENDING', '待执行'), ('RUNNING', '执行中'), ('SUCCESS', '成功'), ('FAILED', '失败'), ('ERROR', '错误')], default='PENDING', max_length=20, verbose_name='测试状态')), ('input_data', models.JSONField(default=dict, verbose_name='测试输入')), ('output_data', models.JSONField(default=dict, verbose_name='测试输出')), ('error_code', models.CharField(default='', max_length=32, verbose_name='错误码')), ('error_message', models.TextField(default='', verbose_name='错误信息')), ('duration_ms', models.IntegerField(default=0, verbose_name='执行耗时(毫秒)')), ('passed', models.BooleanField(default=False, verbose_name='是否通过')), ('plugin', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, to='plugin.plugin', verbose_name='插件')), ], options={ 'db_table': 'plugin_test', 'ordering': ['-create_time'], }, ), ]