feat(events): harden registration checkout lifecycle

This commit is contained in:
2026-10-01 12:26:49 +03:30
parent 1daa755543
commit 962238c32c
29 changed files with 3048 additions and 207 deletions

View File

@@ -0,0 +1,43 @@
# Generated by Django 5.2.5 on 2026-09-30 18:36
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('payments', '0004_payment_idempotency_key_and_more'),
]
operations = [
migrations.AddField(
model_name='payment',
name='verification_attempts',
field=models.PositiveSmallIntegerField(default=0, editable=False),
),
migrations.AddField(
model_name='payment',
name='verification_dispatch_expires_at',
field=models.DateTimeField(blank=True, editable=False, null=True),
),
migrations.AddField(
model_name='payment',
name='verification_last_attempt_at',
field=models.DateTimeField(blank=True, editable=False, null=True),
),
migrations.AddField(
model_name='payment',
name='verification_lease_until',
field=models.DateTimeField(blank=True, editable=False, null=True),
),
migrations.AddField(
model_name='payment',
name='verification_manual_review_at',
field=models.DateTimeField(blank=True, editable=False, null=True),
),
migrations.AddField(
model_name='payment',
name='verification_next_attempt_at',
field=models.DateTimeField(blank=True, editable=False, null=True),
),
]

View File

@@ -0,0 +1,43 @@
# Generated by Django 5.2.5 on 2026-09-30 19:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('payments', '0005_payment_verification_attempts_and_more'),
]
operations = [
migrations.AddField(
model_name='payment',
name='refund_attempts',
field=models.PositiveSmallIntegerField(default=0, editable=False),
),
migrations.AddField(
model_name='payment',
name='refund_last_attempt_at',
field=models.DateTimeField(blank=True, editable=False, null=True),
),
migrations.AddField(
model_name='payment',
name='refund_last_error',
field=models.CharField(blank=True, default='', editable=False, max_length=255),
),
migrations.AddField(
model_name='payment',
name='refund_next_attempt_at',
field=models.DateTimeField(blank=True, editable=False, null=True),
),
migrations.AddField(
model_name='payment',
name='refund_reference',
field=models.CharField(blank=True, editable=False, max_length=64, null=True),
),
migrations.AddField(
model_name='payment',
name='refund_status',
field=models.CharField(choices=[('none', 'No refund required'), ('pending', 'Refund pending'), ('succeeded', 'Refund completed'), ('manual_review', 'Refund needs review')], default='none', editable=False, max_length=20),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 5.2.5 on 2026-10-01 04:42
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('payments', '0006_payment_refund_attempts_and_more'),
]
operations = [
migrations.AddField(
model_name='payment',
name='gateway_paid_at',
field=models.DateTimeField(blank=True, editable=False, null=True),
),
]