From 0ee9e87b7f5ab7d58f03d6798c668d318a080ae6 Mon Sep 17 00:00:00 2001 From: Siarhei Siniak Date: Fri, 18 Jul 2025 09:51:05 +0300 Subject: [PATCH] [+] update payloads.models --- .../payloads/models.py | 51 +++++++------------ 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v1/payloads/models.py b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v1/payloads/models.py index 38abbbb..05bba26 100644 --- a/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v1/payloads/models.py +++ b/deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v1/payloads/models.py @@ -1,5 +1,6 @@ import datetime import decimal +import json from sqlalchemy.orm import ( mapped_column, @@ -13,6 +14,7 @@ from sqlalchemy import ( Numeric, DateTime, UniqueConstraint, + JSON, ) from typing import (Optional,) @@ -20,44 +22,25 @@ from typing import (Optional,) class Base(DeclarativeBase): pass -class Market(Base): - __tablename__ = 'tickers_market' +class Payload(Base): + __tablename__ = 'payloads_payload' id: Mapped[int] = mapped_column(primary_key=True) - name: Mapped[str] = mapped_column(String(32)) - - tickers: Mapped[list['Ticker']] = relationship( - back_populates='market', - ) - - def __repr__(self) -> str: - return f"Market(id={self.id!r}, name={self.name!r})" - -class Ticker(Base): - __tablename__ = 'tickers_ticker' - - id: Mapped[int] = mapped_column(ForeignKey( - 'tickers_market.id', - ondelete='CASCADE', - )) - market: Mapped['Market'] = relationship( - back_populates='tickers' - ) - - timestamp: Mapped[datetime.datetime] = mapped_column( - DateTime(timezone=True,) - ) - value: Mapped[decimal.Decimal] = mapped_column(Numeric( - precision=32, scale=6, - )) + output: Mapped[list[str]] = mapped_column(JSON()) + list_1: Mapped[list[str]] = mapped_column(JSON()) + list_2: Mapped[list[str]] = mapped_column(JSON()) + input_hash: Mapped[str] = mapped_column() __table_args__ = ( - UniqueConstraint('id', 'timestamp'), - ) - - __mapper_args__ = dict( - primary_key=('id', 'timestamp',) + UniqueConstraint('input_hash'), ) def __repr__(self) -> str: - return f"Ticker(id={self.id!r}, timestamp={self.timestamp!r}, value={self.value!r})" + return json.dumps(dict( + model=str(type(self)), + id=self.id, + output=self.output, + list_1=self.list_1, + list_2=self.list_2, + input_hash=self.input_hash, + ))