added yokassa
All checks were successful
Deploy / deploy (push) Successful in 48s

This commit is contained in:
2026-03-11 13:24:44 +00:00
parent d81e101a30
commit 1788a12cda
3 changed files with 24 additions and 33 deletions

View File

@@ -56,11 +56,17 @@ class Ticket(Base):
) )
idempotency_key: Mapped[str] = mapped_column(String, unique=True, nullable=True) idempotency_key: Mapped[str] = mapped_column(String, unique=True, nullable=True)
pdf_url: Mapped[str | None] = mapped_column(String, nullable=True) pdf_url: Mapped[str | None] = mapped_column(String, nullable=True)
# nullable=True — безопасно для существующих строк; новые билеты получают UUID автоматически
secret_token: Mapped[str | None] = mapped_column( secret_token: Mapped[str | None] = mapped_column(
String, unique=True, index=True, nullable=True, String, unique=True, index=True, nullable=True,
default=lambda: str(uuid.uuid4()), default=lambda: str(uuid.uuid4()),
) )
# --- Поля для эквайринга ---
payment_id: Mapped[str | None] = mapped_column(String, index=True, nullable=True)
payment_url: Mapped[str | None] = mapped_column(String, nullable=True)
expires_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
# ---------------------------
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)) created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc))
updated_at: Mapped[datetime] = mapped_column( updated_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), DateTime(timezone=True),

View File

@@ -13,3 +13,4 @@ reportlab
aioboto3 aioboto3
pydantic[email]>=2.5.0 pydantic[email]>=2.5.0
qrcode[pil]==7.4.2 qrcode[pil]==7.4.2
yookassa==3.3.0

View File

@@ -1,15 +1,12 @@
version: '3.8'
services: services:
backend: backend:
build: ../backend build: ../backend
container_name: backend container_name: backend
# Пока приложения нет, просто держим контейнер живым, чтобы зайти в консоль
command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload
ports: ports:
- "8000:8000" - "8000:8000"
environment: environment:
# Параметры подключения к БД (внутри сети ticket-network)
DATABASE_URL: postgresql+asyncpg://admin:your_strong_password@postgres:5432/ticket_db DATABASE_URL: postgresql+asyncpg://admin:your_strong_password@postgres:5432/ticket_db
REDIS_URL: redis://redis:6379/0 REDIS_URL: redis://redis:6379/0
volumes: volumes:
@@ -42,12 +39,12 @@ services:
dockerfile: Dockerfile dockerfile: Dockerfile
container_name: frontend container_name: frontend
ports: ports:
- "3000:3000" # Пробиваем дыру напрямую для дебага - "3000:3000"
environment: environment:
- NEXT_PUBLIC_API_URL=http://192.168.149.101:8000/api - NEXT_PUBLIC_API_URL=http://192.168.149.101:8000/api
volumes: volumes:
- ../frontend-client:/app - ../frontend-client:/app
- /app/node_modules # Изолируем зависимости контейнера от хоста - /app/node_modules
networks: networks:
- ticket-network - ticket-network
@@ -76,7 +73,7 @@ services:
POSTGRES_PASSWORD: your_strong_password POSTGRES_PASSWORD: your_strong_password
POSTGRES_DB: ticket_db POSTGRES_DB: ticket_db
ports: ports:
- "5432:5432" # <-- Добавляем вот это - "5432:5432"
volumes: volumes:
- ~/ticket-system/data/postgres:/var/lib/postgresql/data - ~/ticket-system/data/postgres:/var/lib/postgresql/data
networks: networks:
@@ -94,10 +91,12 @@ services:
rabbitmq: rabbitmq:
image: rabbitmq:3-management-alpine image: rabbitmq:3-management-alpine
container_name: rabbitmq container_name: rabbitmq
restart: unless-stopped
environment: environment:
RABBITMQ_DEFAULT_USER: user RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER}
RABBITMQ_DEFAULT_PASS: password RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS}
ports: ports:
- "5672:5672"
- "15672:15672" - "15672:15672"
volumes: volumes:
- ~/ticket-system/data/rabbitmq:/var/lib/rabbitmq - ~/ticket-system/data/rabbitmq:/var/lib/rabbitmq
@@ -137,32 +136,17 @@ services:
networks: networks:
- ticket-network - ticket-network
cadvisor: docker-stats-exporter:
image: ghcr.io/google/cadvisor:v0.54.1 image: wywywywy/docker_stats_exporter:latest
container_name: cadvisor container_name: docker-stats-exporter
restart: unless-stopped restart: unless-stopped
privileged: true
ports: ports:
- "8080:8080" - "9487:9487"
devices:
- /dev/kmsg:/dev/kmsg
volumes: volumes:
- /:/rootfs:ro - /var/run/docker.sock:/var/run/docker.sock:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker:/var/lib/docker:ro
- /var/lib/containerd:/var/lib/containerd:ro
- /dev/disk:/dev/disk:ro
- /etc/machine-id:/etc/machine-id:ro
command:
- --housekeeping_interval=30s
- --docker_only=false
- --store_container_labels=false
networks: networks:
- ticket-network - ticket-network
networks: networks:
ticket-network: ticket-network:
driver: bridge driver: bridge