# Generated by Django 4.2 on 2025-03-26 01:27 import api.models from django.conf import settings from django.db import migrations, models import django.db.models.deletion import uuid class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Project', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('name', models.CharField(max_length=200, verbose_name='项目名称')), ('description', models.TextField(blank=True, verbose_name='项目描述')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), ('last_modified', models.DateTimeField(auto_now=True, verbose_name='最后修改时间')), ('status', models.CharField(choices=[('initialized', '已初始化'), ('data_loaded', '数据已加载'), ('preprocessing', '数据预处理中'), ('preprocessing_completed', '数据预处理完成'), ('analysis', '分析中'), ('completed', '已完成'), ('error', '出错')], default='initialized', max_length=50, verbose_name='项目状态')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='projects', to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': '项目', 'verbose_name_plural': '项目', }, ), migrations.CreateModel( name='PreprocessingTask', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), ('completed_at', models.DateTimeField(blank=True, null=True, verbose_name='完成时间')), ('parameters', models.JSONField(default=dict, verbose_name='参数')), ('status', models.CharField(default='pending', max_length=50, verbose_name='状态')), ('result', models.JSONField(blank=True, null=True, verbose_name='结果')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='preprocessing_tasks', to='api.project')), ], options={ 'verbose_name': '预处理任务', 'verbose_name_plural': '预处理任务', }, ), migrations.CreateModel( name='ExportTask', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), ('completed_at', models.DateTimeField(blank=True, null=True, verbose_name='完成时间')), ('format', models.CharField(max_length=10, verbose_name='格式')), ('components', models.JSONField(default=list, verbose_name='组件')), ('status', models.CharField(default='pending', max_length=50, verbose_name='状态')), ('file', models.FileField(blank=True, null=True, upload_to='exports/', verbose_name='导出文件')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='export_tasks', to='api.project')), ], options={ 'verbose_name': '导出任务', 'verbose_name_plural': '导出任务', }, ), migrations.CreateModel( name='DataFile', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file', models.FileField(upload_to=api.models.get_file_path, verbose_name='文件')), ('filename', models.CharField(max_length=255, verbose_name='文件名')), ('uploaded_at', models.DateTimeField(auto_now_add=True, verbose_name='上传时间')), ('wavenumber_min', models.FloatField(blank=True, null=True, verbose_name='最小波数')), ('wavenumber_max', models.FloatField(blank=True, null=True, verbose_name='最大波数')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='data_files', to='api.project')), ], options={ 'verbose_name': '数据文件', 'verbose_name_plural': '数据文件', }, ), migrations.CreateModel( name='AnalysisTask', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('analysis_type', models.CharField(choices=[('meta_free', '无元数据分析'), ('meta_based', '基于元数据分析')], max_length=20, verbose_name='分析类型')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), ('completed_at', models.DateTimeField(blank=True, null=True, verbose_name='完成时间')), ('parameters', models.JSONField(default=dict, verbose_name='参数')), ('status', models.CharField(default='pending', max_length=50, verbose_name='状态')), ('result', models.JSONField(blank=True, null=True, verbose_name='结果')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='analysis_tasks', to='api.project')), ], options={ 'verbose_name': '分析任务', 'verbose_name_plural': '分析任务', }, ), ]