[+] update payloads.models
This commit is contained in:
parent
cfdd6b72f0
commit
0ee9e87b7f
51
deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v1/payloads/models.py
vendored
51
deps/test-task-2025-07-17-v2/python/online/fxreader/pr34/test_task_2025_07_17_v1/payloads/models.py
vendored
@ -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,
|
||||
))
|
||||
|
Loading…
Reference in New Issue
Block a user