Store need_manual_retry flag for failed sync attempts

This commit is contained in:
Mira Weller
2025-06-26 20:05:05 +02:00
parent 87ee6fbce4
commit ec64c0fc1b
4 changed files with 65 additions and 100 deletions

View File

@@ -1,96 +0,0 @@
# Generated by Django 4.2.16 on 2025-05-07 13:01
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("pretixbase", "0281_event_is_remote"),
]
operations = [
migrations.CreateModel(
name="OrderSyncResult",
fields=[
(
"id",
models.BigAutoField(
auto_created=True, primary_key=True, serialize=False
),
),
("sync_provider", models.CharField(max_length=128)),
("external_object_type", models.CharField(max_length=128)),
("external_id_field", models.CharField(max_length=128)),
("id_value", models.CharField(max_length=128)),
("external_link_href", models.CharField(max_length=255, null=True)),
(
"external_link_display_name",
models.CharField(max_length=255, null=True),
),
("transmitted", models.DateTimeField(auto_now_add=True)),
(
"order",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="sync_results",
to="pretixbase.order",
),
),
(
"order_position",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="sync_results",
to="pretixbase.orderposition",
),
),
],
options={
"indexes": [
models.Index(
fields=["order", "sync_provider"],
name="pretixbase__order_i_3e3c84_idx",
)
],
},
),
migrations.CreateModel(
name="OrderSyncQueue",
fields=[
(
"id",
models.BigAutoField(
auto_created=True, primary_key=True, serialize=False
),
),
("sync_provider", models.CharField(max_length=128)),
("triggered_by", models.CharField(max_length=128)),
("triggered", models.DateTimeField(auto_now_add=True)),
("failed_attempts", models.PositiveIntegerField(default=0)),
("not_before", models.DateTimeField(db_index=True)),
(
"event",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="queued_sync_jobs",
to="pretixbase.event",
),
),
(
"order",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="queued_sync_jobs",
to="pretixbase.order",
),
),
],
options={
"ordering": ("triggered",),
"unique_together": {("order", "sync_provider")},
},
),
]

View File

@@ -0,0 +1,50 @@
# Generated by Django 4.2.21 on 2025-06-26 16:59
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('pretixbase', '0281_event_is_remote'),
]
operations = [
migrations.CreateModel(
name='OrderSyncResult',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
('sync_provider', models.CharField(max_length=128)),
('external_object_type', models.CharField(max_length=128)),
('external_id_field', models.CharField(max_length=128)),
('id_value', models.CharField(max_length=128)),
('external_link_href', models.CharField(max_length=255, null=True)),
('external_link_display_name', models.CharField(max_length=255, null=True)),
('transmitted', models.DateTimeField(auto_now_add=True)),
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sync_results', to='pretixbase.order')),
('order_position', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sync_results', to='pretixbase.orderposition')),
],
options={
'indexes': [models.Index(fields=['order', 'sync_provider'], name='pretixbase__order_i_3e3c84_idx')],
},
),
migrations.CreateModel(
name='OrderSyncQueue',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
('sync_provider', models.CharField(max_length=128)),
('triggered_by', models.CharField(max_length=128)),
('triggered', models.DateTimeField(auto_now_add=True)),
('failed_attempts', models.PositiveIntegerField(default=0)),
('not_before', models.DateTimeField(db_index=True)),
('need_manual_retry', models.CharField(null=True)),
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='queued_sync_jobs', to='pretixbase.event')),
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='queued_sync_jobs', to='pretixbase.order')),
],
options={
'ordering': ('triggered',),
'unique_together': {('order', 'sync_provider')},
},
),
]