# Generated by Django 5.2.5 on 2025-10-16 12:07 from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Category', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('is_deleted', models.BooleanField(default=False)), ('deleted_at', models.DateTimeField(blank=True, null=True)), ('name', models.CharField(max_length=100, unique=True)), ('slug', models.SlugField(blank=True, max_length=100, unique=True)), ('description', models.TextField(blank=True)), ], options={ 'verbose_name_plural': 'Categories', 'ordering': ['name'], }, ), migrations.CreateModel( name='Comment', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('is_deleted', models.BooleanField(default=False)), ('deleted_at', models.DateTimeField(blank=True, null=True)), ('content', models.TextField()), ('is_approved', models.BooleanField(default=True)), ], options={ 'ordering': ['created_at'], }, ), migrations.CreateModel( name='Like', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='Post', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('is_deleted', models.BooleanField(default=False)), ('deleted_at', models.DateTimeField(blank=True, null=True)), ('title', models.CharField(max_length=200)), ('slug', models.SlugField(blank=True, max_length=200, unique=True)), ('content', models.TextField(help_text='Content in Markdown format')), ('excerpt', models.TextField(blank=True, max_length=300)), ('featured_image', models.ImageField(blank=True, null=True, upload_to='blog/featured/')), ('status', models.CharField(choices=[('draft', 'Draft'), ('published', 'Published')], default='draft', max_length=10)), ('published_at', models.DateTimeField(blank=True, null=True)), ('is_featured', models.BooleanField(default=False)), ], options={ 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='Tag', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('is_deleted', models.BooleanField(default=False)), ('deleted_at', models.DateTimeField(blank=True, null=True)), ('name', models.CharField(max_length=50, unique=True)), ('slug', models.SlugField(blank=True, unique=True)), ], options={ 'ordering': ['name'], }, ), ]