# Generated by Django 5.2.7 on 2025-11-25 13:02

import django.db.models.deletion
import django.utils.timezone
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('blog', '0008_merge_20251124_0221'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='articledraft',
            options={'ordering': ['-last_update_time'], 'verbose_name': '文章草稿', 'verbose_name_plural': '文章草稿'},
        ),
        migrations.AlterModelOptions(
            name='articlefavorite',
            options={'ordering': ['-creation_time'], 'verbose_name': '文章收藏', 'verbose_name_plural': '文章收藏'},
        ),
        migrations.AlterModelOptions(
            name='articlelike',
            options={'ordering': ['-creation_time'], 'verbose_name': '文章点赞', 'verbose_name_plural': '文章点赞'},
        ),
        migrations.AlterModelOptions(
            name='articleversion',
            options={'ordering': ['-version_number'], 'verbose_name': '文章版本', 'verbose_name_plural': '文章版本'},
        ),
        migrations.AlterModelOptions(
            name='mediafile',
            options={'ordering': ['-upload_time'], 'verbose_name': '媒体文件', 'verbose_name_plural': '媒体文件'},
        ),
        migrations.AlterModelOptions(
            name='mediafilefolder',
            options={'verbose_name': '文件-文件夹关联', 'verbose_name_plural': '文件-文件夹关联'},
        ),
        migrations.AlterModelOptions(
            name='mediafolder',
            options={'ordering': ['name'], 'verbose_name': '媒体文件夹', 'verbose_name_plural': '媒体文件夹'},
        ),
        migrations.AlterModelOptions(
            name='userfollow',
            options={'ordering': ['-creation_time'], 'verbose_name': '用户关注', 'verbose_name_plural': '用户关注'},
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='article',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='drafts', to='blog.article', verbose_name='文章'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='author',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='article_drafts', to=settings.AUTH_USER_MODEL, verbose_name='作者'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='body',
            field=models.TextField(blank=True, default='', verbose_name='正文'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='category_id',
            field=models.IntegerField(blank=True, null=True, verbose_name='分类ID'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='comment_status',
            field=models.CharField(default='o', max_length=1, verbose_name='评论状态'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='creation_time',
            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name='创建时间'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='id',
            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='is_published',
            field=models.BooleanField(default=False, verbose_name='已发布'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='last_update_time',
            field=models.DateTimeField(auto_now=True, db_index=True, verbose_name='最后更新时间'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='session_id',
            field=models.CharField(blank=True, default='', max_length=64, verbose_name='会话ID'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='status',
            field=models.CharField(default='d', max_length=1, verbose_name='状态'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='tags_data',
            field=models.JSONField(blank=True, default=list, verbose_name='标签数据'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='title',
            field=models.CharField(blank=True, default='', max_length=200, verbose_name='标题'),
        ),
        migrations.AlterField(
            model_name='articledraft',
            name='type',
            field=models.CharField(default='a', max_length=1, verbose_name='类型'),
        ),
        migrations.AlterField(
            model_name='articlefavorite',
            name='article',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorited_by', to='blog.article', verbose_name='文章'),
        ),
        migrations.AlterField(
            model_name='articlefavorite',
            name='creation_time',
            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name='创建时间'),
        ),
        migrations.AlterField(
            model_name='articlefavorite',
            name='id',
            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
        ),
        migrations.AlterField(
            model_name='articlefavorite',
            name='note',
            field=models.CharField(blank=True, default='', max_length=200, verbose_name='备注'),
        ),
        migrations.AlterField(
            model_name='articlefavorite',
            name='user',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorites', to=settings.AUTH_USER_MODEL, verbose_name='用户'),
        ),
        migrations.AlterField(
            model_name='articlelike',
            name='article',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='liked_by', to='blog.article', verbose_name='文章'),
        ),
        migrations.AlterField(
            model_name='articlelike',
            name='creation_time',
            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name='创建时间'),
        ),
        migrations.AlterField(
            model_name='articlelike',
            name='user',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='likes', to=settings.AUTH_USER_MODEL, verbose_name='用户'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='article',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='versions', to='blog.article', verbose_name='文章'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='body',
            field=models.TextField(verbose_name='正文'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='category_id',
            field=models.IntegerField(verbose_name='分类ID'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='category_name',
            field=models.CharField(max_length=30, verbose_name='分类名称'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='change_summary',
            field=models.CharField(blank=True, default='', max_length=200, verbose_name='变更说明'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='comment_status',
            field=models.CharField(max_length=1, verbose_name='评论状态'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='created_by',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='article_versions_created', to=settings.AUTH_USER_MODEL, verbose_name='创建者'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='creation_time',
            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name='创建时间'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='id',
            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='is_auto_save',
            field=models.BooleanField(default=True, verbose_name='自动保存'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='pub_time',
            field=models.DateTimeField(verbose_name='发布时间'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='status',
            field=models.CharField(max_length=1, verbose_name='状态'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='title',
            field=models.CharField(max_length=200, verbose_name='标题'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='type',
            field=models.CharField(max_length=1, verbose_name='类型'),
        ),
        migrations.AlterField(
            model_name='articleversion',
            name='version_number',
            field=models.PositiveIntegerField(default=1, verbose_name='版本号'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='description',
            field=models.TextField(blank=True, verbose_name='描述'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='file_hash',
            field=models.CharField(db_index=True, max_length=32, verbose_name='文件哈希'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='file_path',
            field=models.CharField(max_length=500, verbose_name='文件路径'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='file_size',
            field=models.BigIntegerField(verbose_name='文件大小'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='file_type',
            field=models.CharField(choices=[('image', '图片'), ('file', '文件')], max_length=10, verbose_name='文件类型'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='height',
            field=models.IntegerField(blank=True, null=True, verbose_name='高度'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='is_public',
            field=models.BooleanField(default=True, verbose_name='是否公开'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='mime_type',
            field=models.CharField(max_length=100, verbose_name='MIME类型'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='original_filename',
            field=models.CharField(max_length=255, verbose_name='原始文件名'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='reference_count',
            field=models.IntegerField(default=0, verbose_name='引用次数'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='stored_filename',
            field=models.CharField(max_length=255, unique=True, verbose_name='存储文件名'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='thumbnail_path',
            field=models.CharField(blank=True, max_length=500, verbose_name='缩略图路径'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='upload_time',
            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name='上传时间'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='uploader',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='uploaded_files', to=settings.AUTH_USER_MODEL, verbose_name='上传者'),
        ),
        migrations.AlterField(
            model_name='mediafile',
            name='width',
            field=models.IntegerField(blank=True, null=True, verbose_name='宽度'),
        ),
        migrations.AlterField(
            model_name='mediafilefolder',
            name='added_time',
            field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='添加时间'),
        ),
        migrations.AlterField(
            model_name='mediafolder',
            name='created_time',
            field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='创建时间'),
        ),
        migrations.AlterField(
            model_name='mediafolder',
            name='description',
            field=models.TextField(blank=True, verbose_name='描述'),
        ),
        migrations.AlterField(
            model_name='mediafolder',
            name='name',
            field=models.CharField(max_length=100, verbose_name='文件夹名称'),
        ),
        migrations.AlterField(
            model_name='mediafolder',
            name='owner',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='media_folders', to=settings.AUTH_USER_MODEL, verbose_name='所有者'),
        ),
        migrations.AlterField(
            model_name='mediafolder',
            name='parent',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subfolders', to='blog.mediafolder', verbose_name='父文件夹'),
        ),
        migrations.AlterField(
            model_name='userfollow',
            name='creation_time',
            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name='创建时间'),
        ),
        migrations.AlterField(
            model_name='userfollow',
            name='follower',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='following', to=settings.AUTH_USER_MODEL, verbose_name='关注者'),
        ),
        migrations.AlterField(
            model_name='userfollow',
            name='following',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='followers', to=settings.AUTH_USER_MODEL, verbose_name='被关注者'),
        ),
        migrations.AlterField(
            model_name='userfollow',
            name='id',
            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
        ),
    ]
