first commit
This commit is contained in:
124
WebAdmin/migrations/0001_initial.py
Executable file
124
WebAdmin/migrations/0001_initial.py
Executable file
@@ -0,0 +1,124 @@
|
||||
# Generated by Django 5.0.7 on 2024-07-16 15:57
|
||||
|
||||
import django.db.models.deletion
|
||||
from datetime import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
initial = True
|
||||
|
||||
dependencies = []
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="User",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("username", models.CharField(max_length=150, unique=True)),
|
||||
(
|
||||
"email",
|
||||
models.EmailField(
|
||||
blank=True, max_length=254, null=True, unique=True
|
||||
),
|
||||
),
|
||||
(
|
||||
"phone",
|
||||
models.CharField(blank=True, max_length=20, null=True, unique=True),
|
||||
),
|
||||
(
|
||||
"password_hash",
|
||||
models.CharField(blank=True, max_length=128, null=True),
|
||||
),
|
||||
(
|
||||
"google_id",
|
||||
models.CharField(blank=True, max_length=50, null=True, unique=True),
|
||||
),
|
||||
("is_active", models.BooleanField(default=True)),
|
||||
("is_member", models.BooleanField(default=False)),
|
||||
("points", models.IntegerField(default=0)),
|
||||
("referral_code", models.CharField(max_length=50, unique=True)),
|
||||
(
|
||||
"commission_rate",
|
||||
models.DecimalField(decimal_places=2, default=0.0, max_digits=5),
|
||||
),
|
||||
("created_at", models.DateTimeField(default=datetime.now)),
|
||||
("updated_at", models.DateTimeField(auto_now=True)),
|
||||
(
|
||||
"invited_by",
|
||||
models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name="invitees",
|
||||
to="WebAdmin.user",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Referral",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"commission_amount",
|
||||
models.DecimalField(decimal_places=2, max_digits=10),
|
||||
),
|
||||
("created_at", models.DateTimeField(default=datetime.now)),
|
||||
(
|
||||
"referee",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="referrals_received",
|
||||
to="WebAdmin.user",
|
||||
),
|
||||
),
|
||||
(
|
||||
"referrer",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="referrals_made",
|
||||
to="WebAdmin.user",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="UserSource",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("source", models.CharField(max_length=50)),
|
||||
("created_at", models.DateTimeField(default=datetime.now)),
|
||||
(
|
||||
"user",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="WebAdmin.user"
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
]
|
||||
22
WebAdmin/migrations/0002_user_last_login_ip_user_login_count.py
Executable file
22
WebAdmin/migrations/0002_user_last_login_ip_user_login_count.py
Executable file
@@ -0,0 +1,22 @@
|
||||
# Generated by Django 5.0.7 on 2024-07-16 17:33
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="last_login_ip",
|
||||
field=models.GenericIPAddressField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="login_count",
|
||||
field=models.IntegerField(default=0),
|
||||
),
|
||||
]
|
||||
135
WebAdmin/migrations/0003_alter_user_options_alter_user_managers_and_more.py
Executable file
135
WebAdmin/migrations/0003_alter_user_options_alter_user_managers_and_more.py
Executable file
@@ -0,0 +1,135 @@
|
||||
# Generated by Django 5.0.7 on 2024-07-16 18:04
|
||||
|
||||
import django.contrib.auth.models
|
||||
import django.contrib.auth.validators
|
||||
from datetime import datetime
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0002_user_last_login_ip_user_login_count"),
|
||||
("auth", "0012_alter_user_first_name_max_length"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="user",
|
||||
options={"verbose_name": "user", "verbose_name_plural": "users"},
|
||||
),
|
||||
migrations.AlterModelManagers(
|
||||
name="user",
|
||||
managers=[
|
||||
("objects", django.contrib.auth.models.UserManager()),
|
||||
],
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="user",
|
||||
name="password_hash",
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="date_joined",
|
||||
field=models.DateTimeField(
|
||||
default=datetime.now, verbose_name="date joined"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="first_name",
|
||||
field=models.CharField(
|
||||
blank=True, max_length=150, verbose_name="first name"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="groups",
|
||||
field=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",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="is_staff",
|
||||
field=models.BooleanField(
|
||||
default=False,
|
||||
help_text="Designates whether the user can log into this admin site.",
|
||||
verbose_name="staff status",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="is_superuser",
|
||||
field=models.BooleanField(
|
||||
default=False,
|
||||
help_text="Designates that this user has all permissions without explicitly assigning them.",
|
||||
verbose_name="superuser status",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="last_login",
|
||||
field=models.DateTimeField(
|
||||
blank=True, null=True, verbose_name="last login"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="last_name",
|
||||
field=models.CharField(
|
||||
blank=True, max_length=150, verbose_name="last name"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="password",
|
||||
field=models.CharField(default=1, max_length=128, verbose_name="password"),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="user_permissions",
|
||||
field=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",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="user",
|
||||
name="email",
|
||||
field=models.EmailField(
|
||||
blank=True, default=1, max_length=254, verbose_name="email address"
|
||||
),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="user",
|
||||
name="is_active",
|
||||
field=models.BooleanField(
|
||||
default=True,
|
||||
help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.",
|
||||
verbose_name="active",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="user",
|
||||
name="username",
|
||||
field=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",
|
||||
),
|
||||
),
|
||||
]
|
||||
48
WebAdmin/migrations/0004_emailverificationcode_smsverificationcode.py
Executable file
48
WebAdmin/migrations/0004_emailverificationcode_smsverificationcode.py
Executable file
@@ -0,0 +1,48 @@
|
||||
# Generated by Django 5.0.7 on 2024-07-20 03:57
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0003_alter_user_options_alter_user_managers_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="EmailVerificationCode",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("email", models.EmailField(max_length=254)),
|
||||
("code", models.CharField(max_length=6)),
|
||||
("created_at", models.DateTimeField(auto_now_add=True)),
|
||||
("is_used", models.BooleanField(default=False)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="SMSVerificationCode",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("phone_number", models.CharField(max_length=15)),
|
||||
("code", models.CharField(max_length=6)),
|
||||
("created_at", models.DateTimeField(auto_now_add=True)),
|
||||
("is_used", models.BooleanField(default=False)),
|
||||
],
|
||||
),
|
||||
]
|
||||
60
WebAdmin/migrations/0005_videogeneration.py
Executable file
60
WebAdmin/migrations/0005_videogeneration.py
Executable file
@@ -0,0 +1,60 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-03 10:13
|
||||
|
||||
import django.db.models.deletion
|
||||
from datetime import datetime
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0004_emailverificationcode_smsverificationcode"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="VideoGeneration",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("text", models.TextField()),
|
||||
("voice_name", models.CharField(max_length=50)),
|
||||
("style", models.CharField(default="general", max_length=50)),
|
||||
("rate", models.IntegerField(default=0)),
|
||||
("media_type", models.CharField(max_length=50)),
|
||||
("ratio", models.CharField(max_length=10)),
|
||||
("audio_url", models.URLField(blank=True, null=True)),
|
||||
("video_url", models.URLField(blank=True, null=True)),
|
||||
(
|
||||
"status",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("pending", "Pending"),
|
||||
("in_progress", "In Progress"),
|
||||
("completed", "Completed"),
|
||||
("failed", "Failed"),
|
||||
],
|
||||
default="pending",
|
||||
max_length=20,
|
||||
),
|
||||
),
|
||||
("created_at", models.DateTimeField(default=datetime.now)),
|
||||
("updated_at", models.DateTimeField(auto_now=True)),
|
||||
(
|
||||
"user",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
]
|
||||
18
WebAdmin/migrations/0006_videogeneration_slug.py
Executable file
18
WebAdmin/migrations/0006_videogeneration_slug.py
Executable file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-03 14:09
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0005_videogeneration"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="videogeneration",
|
||||
name="slug",
|
||||
field=models.CharField(default=1, max_length=50),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
37
WebAdmin/migrations/0007_plan.py
Executable file
37
WebAdmin/migrations/0007_plan.py
Executable file
@@ -0,0 +1,37 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-24 04:16
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0006_videogeneration_slug"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Plan",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("title", models.CharField(max_length=100, unique=True)),
|
||||
("description", models.TextField()),
|
||||
("price", models.DecimalField(decimal_places=2, max_digits=10)),
|
||||
("credits_per_month", models.IntegerField(default=0)),
|
||||
("created_at", models.DateTimeField(default=datetime.now)),
|
||||
("updated_at", models.DateTimeField(auto_now=True)),
|
||||
("is_promotional", models.BooleanField(default=False)),
|
||||
("unlimited_exports", models.BooleanField(default=False)),
|
||||
("smart_music_sync", models.BooleanField(default=False)),
|
||||
],
|
||||
),
|
||||
]
|
||||
62
WebAdmin/migrations/0008_order.py
Executable file
62
WebAdmin/migrations/0008_order.py
Executable file
@@ -0,0 +1,62 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-24 12:15
|
||||
|
||||
import django.db.models.deletion
|
||||
from datetime import datetime
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0007_plan"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Order",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("order_id", models.CharField(max_length=100, unique=True)),
|
||||
("username", models.CharField(max_length=150)),
|
||||
("amount", models.DecimalField(decimal_places=2, max_digits=10)),
|
||||
(
|
||||
"payment_method",
|
||||
models.CharField(
|
||||
choices=[("alipay", "Alipay"), ("paypal", "PayPal")],
|
||||
max_length=10,
|
||||
),
|
||||
),
|
||||
(
|
||||
"status",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("pending", "Pending"),
|
||||
("completed", "Completed"),
|
||||
("canceled", "Canceled"),
|
||||
("failed", "Failed"),
|
||||
],
|
||||
default="pending",
|
||||
max_length=10,
|
||||
),
|
||||
),
|
||||
("created_at", models.DateTimeField(default=datetime.now)),
|
||||
("updated_at", models.DateTimeField(auto_now=True)),
|
||||
(
|
||||
"user",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
]
|
||||
22
WebAdmin/migrations/0009_user_membership_end_user_membership_start.py
Executable file
22
WebAdmin/migrations/0009_user_membership_end_user_membership_start.py
Executable file
@@ -0,0 +1,22 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-24 13:08
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0008_order"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="membership_end",
|
||||
field=models.DateTimeField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="membership_start",
|
||||
field=models.DateTimeField(blank=True, null=True),
|
||||
),
|
||||
]
|
||||
31
WebAdmin/migrations/0010_alter_order_options_order_plan.py
Executable file
31
WebAdmin/migrations/0010_alter_order_options_order_plan.py
Executable file
@@ -0,0 +1,31 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-26 13:02
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0009_user_membership_end_user_membership_start"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="order",
|
||||
options={
|
||||
"ordering": ["-created_at"],
|
||||
"verbose_name": "Order",
|
||||
"verbose_name_plural": "Orders",
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="order",
|
||||
name="plan",
|
||||
field=models.ForeignKey(
|
||||
default=1,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="WebAdmin.plan",
|
||||
),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
17
WebAdmin/migrations/0011_alter_order_amount.py
Executable file
17
WebAdmin/migrations/0011_alter_order_amount.py
Executable file
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-26 13:06
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0010_alter_order_options_order_plan"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="order",
|
||||
name="amount",
|
||||
field=models.DecimalField(decimal_places=2, default=0.0, max_digits=10),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,16 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-29 14:16
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0011_alter_order_amount"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="videogeneration",
|
||||
name="video_id",
|
||||
field=models.AutoField(primary_key=True, serialize=False),
|
||||
),
|
||||
]
|
||||
18
WebAdmin/migrations/0012_videogeneration_video_id.py
Executable file
18
WebAdmin/migrations/0012_videogeneration_video_id.py
Executable file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-29 14:38
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0011_alter_order_amount"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
# 这里不再有任何操作,因为我们手动删除了重复的字段添加
|
||||
# migrations.AddField(
|
||||
# model_name="videogeneration",
|
||||
# name="video_id",
|
||||
# field=models.CharField(default="", max_length=255, unique=True),
|
||||
# ),
|
||||
]
|
||||
17
WebAdmin/migrations/0013_videogeneration_video_id.py
Executable file
17
WebAdmin/migrations/0013_videogeneration_video_id.py
Executable file
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-29 14:51
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0012_videogeneration_video_id"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="videogeneration",
|
||||
name="video_id",
|
||||
field=models.CharField(default="", max_length=255, unique=True),
|
||||
),
|
||||
]
|
||||
17
WebAdmin/migrations/0014_videogeneration_pid.py
Executable file
17
WebAdmin/migrations/0014_videogeneration_pid.py
Executable file
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.7 on 2024-08-30 02:50
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0013_videogeneration_video_id"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="videogeneration",
|
||||
name="pid",
|
||||
field=models.CharField(default="", max_length=50, null=True),
|
||||
),
|
||||
]
|
||||
42
WebAdmin/migrations/0015_videogeneration_extension_count_and_more.py
Executable file
42
WebAdmin/migrations/0015_videogeneration_extension_count_and_more.py
Executable file
@@ -0,0 +1,42 @@
|
||||
# Generated by Django 5.0.7 on 2024-09-14 10:14
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0014_videogeneration_pid"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="videogeneration",
|
||||
name="extension_count",
|
||||
field=models.IntegerField(default=0),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="videogeneration",
|
||||
name="media_type",
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="videogeneration",
|
||||
name="rate",
|
||||
field=models.IntegerField(default=0, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="videogeneration",
|
||||
name="style",
|
||||
field=models.CharField(default="general", max_length=50, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="videogeneration",
|
||||
name="text",
|
||||
field=models.TextField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="videogeneration",
|
||||
name="voice_name",
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
]
|
||||
17
WebAdmin/migrations/0016_videogeneration_time_duration.py
Executable file
17
WebAdmin/migrations/0016_videogeneration_time_duration.py
Executable file
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.7 on 2024-09-14 14:15
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0015_videogeneration_extension_count_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="videogeneration",
|
||||
name="time_duration",
|
||||
field=models.IntegerField(default=0),
|
||||
),
|
||||
]
|
||||
22
WebAdmin/migrations/0017_user_openid_used_user_source.py
Executable file
22
WebAdmin/migrations/0017_user_openid_used_user_source.py
Executable file
@@ -0,0 +1,22 @@
|
||||
# Generated by Django 5.0.7 on 2024-09-15 06:08
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0016_videogeneration_time_duration"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="openid_used",
|
||||
field=models.CharField(blank=True, max_length=150, null=True, unique=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="source",
|
||||
field=models.CharField(default="web", max_length=50),
|
||||
),
|
||||
]
|
||||
77
WebAdmin/migrations/0018_transactionhistory.py
Executable file
77
WebAdmin/migrations/0018_transactionhistory.py
Executable file
@@ -0,0 +1,77 @@
|
||||
# Generated by Django 5.0.7 on 2024-09-15 07:59
|
||||
|
||||
import django.db.models.deletion
|
||||
from datetime import datetime
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0017_user_openid_used_user_source"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="TransactionHistory",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"feature",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("text-to-video", "AI文生视频"),
|
||||
("img-to-video", "AI图生视频"),
|
||||
("create-tiktok-video", "AI长视频生成"),
|
||||
("music-to-video", "音乐视频生成"),
|
||||
("create-avatar-video", "虚拟形象视频生成"),
|
||||
],
|
||||
max_length=50,
|
||||
verbose_name="功能类型",
|
||||
),
|
||||
),
|
||||
("points_spent", models.IntegerField(verbose_name="消费积分")),
|
||||
(
|
||||
"char_count",
|
||||
models.IntegerField(blank=True, null=True, verbose_name="字符数量"),
|
||||
),
|
||||
(
|
||||
"description",
|
||||
models.TextField(blank=True, null=True, verbose_name="操作描述"),
|
||||
),
|
||||
(
|
||||
"transaction_date",
|
||||
models.DateTimeField(
|
||||
default=datetime.now, verbose_name="消费时间"
|
||||
),
|
||||
),
|
||||
("previous_points_balance", models.IntegerField(verbose_name="消费前积分")),
|
||||
("new_points_balance", models.IntegerField(verbose_name="消费后积分")),
|
||||
("success", models.BooleanField(default=True, verbose_name="是否成功")),
|
||||
(
|
||||
"user",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="transactions",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
verbose_name="用户",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "消费明细",
|
||||
"verbose_name_plural": "消费明细",
|
||||
"db_table": "transaction_history",
|
||||
"ordering": ["-transaction_date"],
|
||||
},
|
||||
),
|
||||
]
|
||||
50
WebAdmin/migrations/0019_websiteinfo.py
Executable file
50
WebAdmin/migrations/0019_websiteinfo.py
Executable file
@@ -0,0 +1,50 @@
|
||||
# Generated by Django 5.0.7 on 2024-09-15 08:05
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0018_transactionhistory"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="WebsiteInfo",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"domain",
|
||||
models.CharField(max_length=255, unique=True, verbose_name="域名"),
|
||||
),
|
||||
("title_en", models.CharField(max_length=255, verbose_name="英文标题")),
|
||||
("title_zh", models.CharField(max_length=255, verbose_name="中文标题")),
|
||||
("keywords_en", models.TextField(verbose_name="英文关键词")),
|
||||
("keywords_zh", models.TextField(verbose_name="中文关键词")),
|
||||
("description_en", models.TextField(verbose_name="英文描述")),
|
||||
("description_zh", models.TextField(verbose_name="中文描述")),
|
||||
(
|
||||
"created_at",
|
||||
models.DateTimeField(auto_now_add=True, verbose_name="创建时间"),
|
||||
),
|
||||
(
|
||||
"updated_at",
|
||||
models.DateTimeField(auto_now=True, verbose_name="更新时间"),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "网站信息",
|
||||
"verbose_name_plural": "网站信息",
|
||||
"db_table": "website_info",
|
||||
"ordering": ["-created_at"],
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,56 @@
|
||||
# Generated by Django 5.0.7 on 2024-09-15 08:13
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0019_websiteinfo"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name="websiteinfo",
|
||||
name="domain",
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="websiteinfo",
|
||||
name="domain_en",
|
||||
field=models.CharField(default=True, max_length=255, verbose_name="域名"),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="websiteinfo",
|
||||
name="domain_zh",
|
||||
field=models.CharField(default=True, max_length=255, verbose_name="域名"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="websiteinfo",
|
||||
name="description_en",
|
||||
field=models.TextField(default=True, verbose_name="英文描述"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="websiteinfo",
|
||||
name="description_zh",
|
||||
field=models.TextField(default=True, verbose_name="中文描述"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="websiteinfo",
|
||||
name="keywords_en",
|
||||
field=models.TextField(default=True, verbose_name="英文关键词"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="websiteinfo",
|
||||
name="keywords_zh",
|
||||
field=models.TextField(default=True, verbose_name="中文关键词"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="websiteinfo",
|
||||
name="title_en",
|
||||
field=models.CharField(default=True, max_length=255, verbose_name="英文标题"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="websiteinfo",
|
||||
name="title_zh",
|
||||
field=models.CharField(default=True, max_length=255, verbose_name="中文标题"),
|
||||
),
|
||||
]
|
||||
56
WebAdmin/migrations/0021_websiteaccesslog.py
Executable file
56
WebAdmin/migrations/0021_websiteaccesslog.py
Executable file
@@ -0,0 +1,56 @@
|
||||
# Generated by Django 5.0.7 on 2024-09-15 08:28
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0020_remove_websiteinfo_domain_websiteinfo_domain_en_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="WebsiteAccessLog",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("ip_address", models.GenericIPAddressField(verbose_name="访问IP")),
|
||||
(
|
||||
"browser_language",
|
||||
models.CharField(
|
||||
blank=True, max_length=50, null=True, verbose_name="浏览器语言"
|
||||
),
|
||||
),
|
||||
(
|
||||
"referrer",
|
||||
models.URLField(blank=True, null=True, verbose_name="来源URL"),
|
||||
),
|
||||
("request_path", models.CharField(max_length=255, verbose_name="请求路径")),
|
||||
(
|
||||
"request_method",
|
||||
models.CharField(max_length=10, verbose_name="请求方法"),
|
||||
),
|
||||
(
|
||||
"access_time",
|
||||
models.DateTimeField(auto_now_add=True, verbose_name="访问时间"),
|
||||
),
|
||||
(
|
||||
"access_time_bj",
|
||||
models.DateTimeField(blank=True, null=True, verbose_name="北京时间"),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "网站访问日志",
|
||||
"verbose_name_plural": "网站访问日志",
|
||||
"db_table": "website_access_log",
|
||||
"unique_together": {("ip_address", "access_time_bj")},
|
||||
},
|
||||
),
|
||||
]
|
||||
49
WebAdmin/migrations/0022_alter_websiteaccesslog_unique_together_and_more.py
Executable file
49
WebAdmin/migrations/0022_alter_websiteaccesslog_unique_together_and_more.py
Executable file
@@ -0,0 +1,49 @@
|
||||
# Generated by Django 5.0.7 on 2024-09-15 08:41
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("WebAdmin", "0021_websiteaccesslog"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name="websiteaccesslog",
|
||||
unique_together=set(),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="websiteaccesslog",
|
||||
name="access_date",
|
||||
field=models.DateField(blank=True, null=True, verbose_name="访问日期"),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="websiteaccesslog",
|
||||
name="device_type",
|
||||
field=models.CharField(
|
||||
blank=True, max_length=50, null=True, verbose_name="设备类型"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="websiteaccesslog",
|
||||
name="user_agent",
|
||||
field=models.TextField(blank=True, null=True, verbose_name="用户代理"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="websiteaccesslog",
|
||||
name="browser_language",
|
||||
field=models.CharField(
|
||||
blank=True, max_length=200, null=True, verbose_name="浏览器语言"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="websiteaccesslog",
|
||||
name="referrer",
|
||||
field=models.TextField(blank=True, null=True, verbose_name="来源URL"),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name="websiteaccesslog",
|
||||
unique_together={("ip_address", "access_date")},
|
||||
),
|
||||
]
|
||||
0
WebAdmin/migrations/__init__.py
Executable file
0
WebAdmin/migrations/__init__.py
Executable file
BIN
WebAdmin/migrations/__pycache__/0001_initial.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0001_initial.cpython-310.pyc
Executable file
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0001_initial.cpython-311.pyc
Normal file
BIN
WebAdmin/migrations/__pycache__/0001_initial.cpython-311.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0005_videogeneration.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0005_videogeneration.cpython-310.pyc
Executable file
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0006_videogeneration_slug.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0006_videogeneration_slug.cpython-310.pyc
Executable file
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0007_plan.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0007_plan.cpython-310.pyc
Executable file
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0007_plan.cpython-311.pyc
Normal file
BIN
WebAdmin/migrations/__pycache__/0007_plan.cpython-311.pyc
Normal file
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0008_order.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0008_order.cpython-310.pyc
Executable file
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0008_order.cpython-311.pyc
Normal file
BIN
WebAdmin/migrations/__pycache__/0008_order.cpython-311.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0011_alter_order_amount.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0011_alter_order_amount.cpython-310.pyc
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0012_videogeneration_video_id.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0012_videogeneration_video_id.cpython-310.pyc
Executable file
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0013_videogeneration_video_id.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0013_videogeneration_video_id.cpython-310.pyc
Executable file
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0014_videogeneration_pid.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0014_videogeneration_pid.cpython-310.pyc
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0018_transactionhistory.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0018_transactionhistory.cpython-310.pyc
Executable file
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0019_websiteinfo.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0019_websiteinfo.cpython-310.pyc
Executable file
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0019_websiteinfo.cpython-311.pyc
Normal file
BIN
WebAdmin/migrations/__pycache__/0019_websiteinfo.cpython-311.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/0021_websiteaccesslog.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/0021_websiteaccesslog.cpython-310.pyc
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/__init__.cpython-310.pyc
Executable file
BIN
WebAdmin/migrations/__pycache__/__init__.cpython-310.pyc
Executable file
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/__init__.cpython-311.pyc
Normal file
BIN
WebAdmin/migrations/__pycache__/__init__.cpython-311.pyc
Normal file
Binary file not shown.
BIN
WebAdmin/migrations/__pycache__/admin_views.cpython-311.pyc
Normal file
BIN
WebAdmin/migrations/__pycache__/admin_views.cpython-311.pyc
Normal file
Binary file not shown.
0
WebAdmin/migrations/admin_views.py
Executable file
0
WebAdmin/migrations/admin_views.py
Executable file
Reference in New Issue
Block a user