Archived
Reviewed and merged by Reid (Hermes Reviewer) Co-authored-by: crisleo-hermes <hermes@codescripters.org> Co-committed-by: crisleo-hermes <hermes@codescripters.org>
97 lines
4.9 KiB
Python
97 lines
4.9 KiB
Python
# Generated by Django 5.1.7 on 2026-05-26 03:33
|
|
|
|
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(db_index=True, max_length=512)),
|
|
('author', models.CharField(blank=True, db_index=True, default='', max_length=256)),
|
|
('genre', models.CharField(blank=True, db_index=True, default='', max_length=128)),
|
|
('description', models.TextField(blank=True, default='')),
|
|
('reading_status', models.CharField(choices=[('want_to_read', 'Want to Read'), ('reading', 'Reading'), ('finished', 'Finished'), ('dnf', 'Did Not Finish')], db_index=True, default='want_to_read', max_length=20)),
|
|
('total_pages', models.PositiveIntegerField(default=0)),
|
|
('cover_image', models.URLField(blank=True, default='')),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
],
|
|
options={
|
|
'verbose_name': 'Book',
|
|
'verbose_name_plural': 'Books',
|
|
'db_table': 'books_book',
|
|
'ordering': ['title'],
|
|
'indexes': [models.Index(fields=['title', 'author', 'genre'], name='books_book_title_9fddc2_idx')],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='EBook',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('title', models.CharField(max_length=512)),
|
|
('author', models.CharField(blank=True, default='', max_length=256)),
|
|
('file', models.FileField(upload_to='ebooks/%Y/%m/%d/')),
|
|
('cover_image', models.ImageField(blank=True, null=True, upload_to='ebook_covers/%Y/%m/%d/')),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ebooks', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name': 'E-Book',
|
|
'verbose_name_plural': 'E-Books',
|
|
'db_table': 'books_ebook',
|
|
'ordering': ['-created_at'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ReadingProgress',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('current_position', models.FloatField(default=0.0)),
|
|
('last_page', models.IntegerField(default=0)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('ebook', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='reading_progress', to='books.ebook')),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reading_progress', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name_plural': 'reading progress',
|
|
'db_table': 'books_reading_progress',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ReadingSettings',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('font_size', models.IntegerField(default=18)),
|
|
('font_style', models.CharField(choices=[('sans-serif', 'Sans Serif'), ('serif', 'Serif'), ('monospace', 'Monospace')], default='sans-serif', max_length=20)),
|
|
('background_color', models.CharField(choices=[('#ffffff', 'White'), ('#f4e4c1', 'Sepia'), ('#1a1a2e', 'Dark'), ('#c7edcc', 'Green')], default='#ffffff', max_length=7)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='reading_settings', to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name_plural': 'reading settings',
|
|
'db_table': 'books_reading_settings',
|
|
},
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='ebook',
|
|
index=models.Index(fields=['user', '-created_at'], name='books_ebook_user_id_0b6bdb_idx'),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='readingprogress',
|
|
unique_together={('user', 'ebook')},
|
|
),
|
|
]
|