phase 3 23 qr-scan-check

This commit is contained in:
2026-03-10 12:11:38 +00:00
parent 887a718a65
commit 3bf4a2189f
8 changed files with 377 additions and 8 deletions

View File

@@ -1,4 +1,5 @@
import enum
import uuid
from datetime import datetime, timezone
from sqlalchemy import String, Integer, ForeignKey, DateTime, Enum, Boolean
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship
@@ -55,6 +56,11 @@ class Ticket(Base):
)
idempotency_key: Mapped[str] = mapped_column(String, unique=True, nullable=True)
pdf_url: Mapped[str | None] = mapped_column(String, nullable=True)
# nullable=True — безопасно для существующих строк; новые билеты получают UUID автоматически
secret_token: Mapped[str | None] = mapped_column(
String, unique=True, index=True, nullable=True,
default=lambda: str(uuid.uuid4()),
)
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc))
updated_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True),