initial commit
Some checks failed
Backend CI/CD / test (push) Has been cancelled
Backend CI/CD / deploy (push) Has been cancelled

This commit is contained in:
2026-05-19 20:53:08 +03:30
commit 88b793ed9f
169 changed files with 16763 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
from django.db import migrations
def copy_payment_discounts(apps, schema_editor):
Registration = apps.get_model("events", "Registration")
Payment = apps.get_model("payments", "Payment")
payments = (
Payment.objects.exclude(discount_code__isnull=True)
.select_related("discount_code")
.order_by("id")
)
for payment in payments:
registration = (
Registration.objects.filter(event_id=payment.event_id, user_id=payment.user_id)
.order_by("-registered_at")
.first()
)
if not registration:
continue
updated_fields = []
if payment.discount_code_id and not registration.discount_code_id:
registration.discount_code_id = payment.discount_code_id
updated_fields.append("discount_code")
if payment.discount_amount and not registration.discount_amount:
registration.discount_amount = payment.discount_amount
updated_fields.append("discount_amount")
if payment.amount is not None and registration.final_price is None:
registration.final_price = payment.amount
updated_fields.append("final_price")
if updated_fields:
registration.save(update_fields=updated_fields)
if payment.registration_id is None:
payment.registration_id = registration.id
payment.save(update_fields=["registration"])
def reverse_copy_payment_discounts(apps, schema_editor):
# No-op for reverse; data retention preferred.
pass
class Migration(migrations.Migration):
dependencies = [
("payments", "0003_payment_registration"),
("events", "0009_registration_discount_amount_and_more"),
]
operations = [
migrations.RunPython(copy_payment_discounts, reverse_copy_payment_discounts),
]