uchill/backend/apps/subscriptions/migrations/0007_durationdiscount.py

79 lines
2.9 KiB
Python

# Generated by Django 4.2.7 on 2025-12-19 09:16
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
("subscriptions", "0006_make_price_per_student_required"),
]
operations = [
migrations.CreateModel(
name="DurationDiscount",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"duration_days",
models.IntegerField(
help_text="Количество дней подписки (30, 90, 180, 365)",
validators=[django.core.validators.MinValueValidator(1)],
verbose_name="Длительность в днях",
),
),
(
"discount_percent",
models.DecimalField(
decimal_places=2,
help_text="Процент скидки за эту длительность (например, 7.00 для 7%)",
max_digits=5,
validators=[django.core.validators.MinValueValidator(0)],
verbose_name="Процент скидки",
),
),
(
"created_at",
models.DateTimeField(
auto_now_add=True, verbose_name="Дата создания"
),
),
(
"updated_at",
models.DateTimeField(auto_now=True, verbose_name="Дата обновления"),
),
(
"plan",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="duration_discounts",
to="subscriptions.subscriptionplan",
verbose_name="Тарифный план",
),
),
],
options={
"verbose_name": "Скидка за длительность",
"verbose_name_plural": "Скидки за длительность",
"db_table": "duration_discounts",
"ordering": ["plan", "duration_days"],
"indexes": [
models.Index(
fields=["plan", "duration_days"],
name="duration_di_plan_id_3eb246_idx",
)
],
"unique_together": {("plan", "duration_days")},
},
),
]