# Generated by Django 5.2.8 on 2025-11-29 09:02

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('crm', '0004_auto_20251128_1719'),
    ]

    operations = [
        migrations.CreateModel(
            name='Activity',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, verbose_name='活动名称')),
                ('cover_image', models.URLField(default='https://images.unsplash.com/photo-1511632765486-a01980e01a18', verbose_name='封面图片')),
                ('description', models.TextField(verbose_name='活动详情')),
                ('start_time', models.DateTimeField(verbose_name='开始时间')),
                ('end_time', models.DateTimeField(verbose_name='结束时间')),
                ('location', models.CharField(max_length=200, verbose_name='活动地点')),
                ('max_participants', models.IntegerField(default=50, verbose_name='最大报名人数')),
                ('current_participants', models.IntegerField(default=0, verbose_name='当前报名人数')),
                ('status', models.CharField(choices=[('upcoming', '即将开始'), ('ongoing', '进行中'), ('ended', '已结束')], default='upcoming', max_length=20, verbose_name='状态')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
            ],
            options={
                'verbose_name': '演出活动',
                'verbose_name_plural': '演出活动',
            },
        ),
        migrations.CreateModel(
            name='Exam',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, verbose_name='考试名称')),
                ('description', models.TextField(verbose_name='考试说明')),
                ('exam_date', models.DateTimeField(verbose_name='考试时间')),
                ('level', models.CharField(max_length=50, verbose_name='考级等级')),
                ('fee', models.DecimalField(decimal_places=2, default=0.0, max_digits=8, verbose_name='报名费')),
                ('deadline', models.DateTimeField(verbose_name='报名截止时间')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='发布时间')),
            ],
            options={
                'verbose_name': '考级报名',
                'verbose_name_plural': '考级报名',
            },
        ),
        migrations.CreateModel(
            name='ActivityRegistration',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('status', models.CharField(choices=[('pending', '待确认'), ('confirmed', '已报名'), ('cancelled', '已取消')], default='pending', max_length=20, verbose_name='状态')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='报名时间')),
                ('activity', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='registrations', to='crm.activity', verbose_name='活动')),
                ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activity_registrations', to='crm.student', verbose_name='学员')),
            ],
            options={
                'verbose_name': '活动报名',
                'verbose_name_plural': '活动报名',
            },
        ),
        migrations.CreateModel(
            name='CourseRegistration',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('status', models.CharField(choices=[('pending', '待确认'), ('confirmed', '已报名'), ('cancelled', '已取消')], default='pending', max_length=20, verbose_name='状态')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='报名时间')),
                ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='registrations', to='crm.project', verbose_name='课程')),
                ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='course_registrations', to='crm.student', verbose_name='学员')),
            ],
            options={
                'verbose_name': '课程报名',
                'verbose_name_plural': '课程报名',
            },
        ),
        migrations.CreateModel(
            name='ExamRegistration',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('status', models.CharField(choices=[('pending', '待缴费'), ('paid', '已缴费'), ('cancelled', '已取消')], default='pending', max_length=20, verbose_name='状态')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='报名时间')),
                ('exam', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='registrations', to='crm.exam', verbose_name='考试')),
                ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='exam_registrations', to='crm.student', verbose_name='学员')),
            ],
            options={
                'verbose_name': '考级报名记录',
                'verbose_name_plural': '考级报名记录',
            },
        ),
        migrations.CreateModel(
            name='Showcase',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, verbose_name='节目名称')),
                ('description', models.TextField(blank=True, verbose_name='节目介绍')),
                ('media_type', models.CharField(choices=[('image', '图片'), ('video', '视频')], default='image', max_length=10, verbose_name='媒体类型')),
                ('media_url', models.URLField(verbose_name='媒体链接')),
                ('cover_image', models.URLField(blank=True, null=True, verbose_name='封面图片')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='发布时间')),
                ('related_activity', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='crm.activity', verbose_name='关联活动')),
            ],
            options={
                'verbose_name': '精彩节目',
                'verbose_name_plural': '精彩节目',
            },
        ),
        migrations.CreateModel(
            name='StudentHonor',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, verbose_name='荣誉标题')),
                ('image', models.URLField(blank=True, null=True, verbose_name='证书/奖状图片')),
                ('date_awarded', models.DateField(verbose_name='获奖日期')),
                ('description', models.TextField(blank=True, verbose_name='荣誉描述')),
                ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='honors', to='crm.student', verbose_name='学员')),
            ],
            options={
                'verbose_name': '个人荣誉',
                'verbose_name_plural': '个人荣誉',
            },
        ),
        migrations.CreateModel(
            name='StudentLevel',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('level', models.CharField(max_length=50, verbose_name='获得等级')),
                ('date_passed', models.DateField(verbose_name='通过日期')),
                ('certificate_image', models.URLField(blank=True, null=True, verbose_name='证书图片')),
                ('exam', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='crm.exam', verbose_name='关联考试')),
                ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='levels', to='crm.student', verbose_name='学员')),
            ],
            options={
                'verbose_name': '考级证书',
                'verbose_name_plural': '考级证书',
            },
        ),
    ]
