aboutsummaryrefslogtreecommitdiff
path: root/store/migrations/0001_initial.py
diff options
context:
space:
mode:
authorMole Shang <135e2@135e2.dev>2026-01-24 19:47:41 +0800
committerMole Shang <135e2@135e2.dev>2026-01-24 19:47:41 +0800
commitb45660fbcf5dd22188354bfa0193845e568bda53 (patch)
tree172825ef6e210ce03fc2241395c6cbc389538a2b /store/migrations/0001_initial.py
downloadseu-bookstore-b45660fbcf5dd22188354bfa0193845e568bda53.tar.gz
seu-bookstore-b45660fbcf5dd22188354bfa0193845e568bda53.tar.bz2
seu-bookstore-b45660fbcf5dd22188354bfa0193845e568bda53.zip
initial commit
Diffstat (limited to 'store/migrations/0001_initial.py')
-rw-r--r--store/migrations/0001_initial.py248
1 files changed, 248 insertions, 0 deletions
diff --git a/store/migrations/0001_initial.py b/store/migrations/0001_initial.py
new file mode 100644
index 0000000..e966d1b
--- /dev/null
+++ b/store/migrations/0001_initial.py
@@ -0,0 +1,248 @@
+# Generated by Django 6.0.1 on 2026-01-24 11:45
+
+import django.contrib.auth.models
+import django.contrib.auth.validators
+import django.db.models.deletion
+import django.utils.timezone
+from django.conf import settings
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ("auth", "0012_alter_user_first_name_max_length"),
+ ]
+
+ 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=255)),
+ ("author", models.CharField(max_length=255)),
+ ("publisher", models.CharField(max_length=255)),
+ ("price", models.IntegerField()),
+ ("stock", models.IntegerField()),
+ ("isbn", models.CharField(max_length=20, unique=True)),
+ ("cover", models.CharField(blank=True, max_length=2048, null=True)),
+ ("description", models.TextField(blank=True, null=True)),
+ ],
+ ),
+ migrations.CreateModel(
+ name="User",
+ fields=[
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ ("password", models.CharField(max_length=128, verbose_name="password")),
+ (
+ "last_login",
+ models.DateTimeField(
+ blank=True, null=True, verbose_name="last login"
+ ),
+ ),
+ (
+ "is_superuser",
+ models.BooleanField(
+ default=False,
+ help_text="Designates that this user has all permissions without explicitly assigning them.",
+ verbose_name="superuser status",
+ ),
+ ),
+ (
+ "username",
+ models.CharField(
+ error_messages={
+ "unique": "A user with that username already exists."
+ },
+ help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.",
+ max_length=150,
+ unique=True,
+ validators=[
+ django.contrib.auth.validators.UnicodeUsernameValidator()
+ ],
+ verbose_name="username",
+ ),
+ ),
+ (
+ "first_name",
+ models.CharField(
+ blank=True, max_length=150, verbose_name="first name"
+ ),
+ ),
+ (
+ "last_name",
+ models.CharField(
+ blank=True, max_length=150, verbose_name="last name"
+ ),
+ ),
+ (
+ "is_staff",
+ models.BooleanField(
+ default=False,
+ help_text="Designates whether the user can log into this admin site.",
+ verbose_name="staff status",
+ ),
+ ),
+ (
+ "is_active",
+ models.BooleanField(
+ default=True,
+ help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.",
+ verbose_name="active",
+ ),
+ ),
+ (
+ "date_joined",
+ models.DateTimeField(
+ default=django.utils.timezone.now, verbose_name="date joined"
+ ),
+ ),
+ (
+ "avatar",
+ models.ImageField(blank=True, null=True, upload_to="avatars/"),
+ ),
+ ("email", models.EmailField(max_length=254, unique=True)),
+ ("phone", models.CharField(max_length=20, unique=True)),
+ ("address", models.CharField(blank=True, max_length=255, null=True)),
+ ("name", models.CharField(blank=True, max_length=255, null=True)),
+ ("roles", models.JSONField(default=list)),
+ (
+ "groups",
+ models.ManyToManyField(
+ blank=True,
+ help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.",
+ related_name="user_set",
+ related_query_name="user",
+ to="auth.group",
+ verbose_name="groups",
+ ),
+ ),
+ (
+ "user_permissions",
+ models.ManyToManyField(
+ blank=True,
+ help_text="Specific permissions for this user.",
+ related_name="user_set",
+ related_query_name="user",
+ to="auth.permission",
+ verbose_name="user permissions",
+ ),
+ ),
+ ],
+ options={
+ "verbose_name": "user",
+ "verbose_name_plural": "users",
+ "abstract": False,
+ },
+ managers=[
+ ("objects", django.contrib.auth.models.UserManager()),
+ ],
+ ),
+ migrations.CreateModel(
+ name="Comment",
+ fields=[
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ ("content", models.TextField()),
+ ("createdAt", models.DateTimeField(auto_now_add=True)),
+ (
+ "book",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE, to="store.book"
+ ),
+ ),
+ (
+ "user",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ to=settings.AUTH_USER_MODEL,
+ ),
+ ),
+ ],
+ ),
+ migrations.CreateModel(
+ name="Order",
+ fields=[
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ ("address", models.CharField(max_length=255)),
+ ("createdAt", models.DateTimeField(auto_now_add=True)),
+ (
+ "status",
+ models.SmallIntegerField(
+ choices=[(1, "Pending"), (2, "Shipped"), (3, "Rejected")],
+ default=1,
+ ),
+ ),
+ (
+ "buyer",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ to=settings.AUTH_USER_MODEL,
+ ),
+ ),
+ ],
+ ),
+ migrations.CreateModel(
+ name="OrderItem",
+ fields=[
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ ("amount", models.IntegerField()),
+ ("bookPrice", models.IntegerField()),
+ (
+ "book",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE, to="store.book"
+ ),
+ ),
+ (
+ "order",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="items",
+ to="store.order",
+ ),
+ ),
+ ],
+ ),
+ ]