# Generated by Django 6.0.5 on 2026-05-26 00:49 import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Book', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=500, verbose_name='Title')), ('author', models.CharField(max_length=500, verbose_name='Author')), ('genre', models.CharField(blank=True, default='', max_length=200, verbose_name='Genre')), ('description', models.TextField(blank=True, default='', verbose_name='Description')), ('cover_image_url', models.URLField(blank=True, default='', verbose_name='Cover Image URL')), ('isbn', models.CharField(blank=True, default='', max_length=20, verbose_name='ISBN')), ('total_pages', models.PositiveIntegerField(default=0, verbose_name='Total Pages')), ('current_page', models.PositiveIntegerField(default=0, verbose_name='Current Page')), ('reading_status', models.CharField(choices=[('not_started', 'Not Started'), ('reading', 'Reading'), ('finished', 'Finished'), ('dnf', 'Did Not Finish')], default='not_started', max_length=20, verbose_name='Reading Status')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='books', to=settings.AUTH_USER_MODEL, verbose_name='Owner')), ], options={ 'verbose_name': 'Book', 'verbose_name_plural': 'Books', 'ordering': ['-updated_at'], 'indexes': [models.Index(fields=['owner', 'reading_status'], name='books_book_owner_i_424622_idx'), models.Index(fields=['owner', 'title'], name='books_book_owner_i_350794_idx'), models.Index(fields=['owner', 'author'], name='books_book_owner_i_f90626_idx')], }, ), ]