Artifex/control_plane/trading_studio/migrations/0002_qualification_replay_v1.py
2026-08-18 02:00:53 +07:00

102 lines
3.9 KiB
Python

# Generated manually for QualificationReplayV1.
import uuid
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [("trading_studio", "0001_initial")]
operations = [
migrations.CreateModel(
name="QualificationReplayRun",
fields=[
(
"id",
models.UUIDField(
default=uuid.uuid4, editable=False, primary_key=True, serialize=False
),
),
("created_at", models.DateTimeField(auto_now_add=True)),
("updated_at", models.DateTimeField(auto_now=True)),
("fold", models.CharField(max_length=120)),
("scenario_name", models.CharField(max_length=160)),
("runner_name", models.CharField(max_length=160)),
("replay_mode", models.CharField(default="CANARY_ONLY", max_length=32)),
("input_hash", models.CharField(max_length=128)),
("calibration", models.JSONField(default=dict)),
("configuration", models.JSONField(default=dict)),
("summary", models.JSONField(default=dict)),
(
"dataset_version",
models.ForeignKey(
on_delete=django.db.models.deletion.PROTECT,
related_name="qualification_runs",
to="trading_studio.marketdatasetversion",
),
),
(
"strategy_version",
models.ForeignKey(
on_delete=django.db.models.deletion.PROTECT,
related_name="qualification_runs",
to="trading_studio.strategyversion",
),
),
],
),
migrations.CreateModel(
name="QualificationReplayLedger",
fields=[
(
"id",
models.UUIDField(
default=uuid.uuid4, editable=False, primary_key=True, serialize=False
),
),
("created_at", models.DateTimeField(auto_now_add=True)),
("updated_at", models.DateTimeField(auto_now=True)),
("sequence", models.PositiveIntegerField()),
("identity", models.CharField(max_length=512)),
("result", models.JSONField(default=dict)),
(
"qualification_run",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="ledger_rows",
to="trading_studio.qualificationreplayrun",
),
),
],
),
migrations.AddConstraint(
model_name="qualificationreplayrun",
constraint=models.UniqueConstraint(
fields=(
"strategy_version",
"dataset_version",
"fold",
"scenario_name",
"runner_name",
"input_hash",
),
name="unique_qualification_replay_identity",
),
),
migrations.AddConstraint(
model_name="qualificationreplayledger",
constraint=models.UniqueConstraint(
fields=("qualification_run", "sequence"),
name="unique_qualification_ledger_sequence",
),
),
migrations.AddConstraint(
model_name="qualificationreplayledger",
constraint=models.UniqueConstraint(
fields=("qualification_run", "identity"),
name="unique_qualification_ledger_identity",
),
),
]