feat: a lot of a lot

This commit is contained in:
2024-09-01 01:05:11 +03:00
parent 867dfbe597
commit 4ae03284a3
43 changed files with 700 additions and 13 deletions

View File

@@ -1,7 +1,12 @@
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy import ForeignKey, JSON
from sqlalchemy.orm import Mapped, mapped_column, relationship
from typing_extensions import TYPE_CHECKING
from models import BaseModel
if TYPE_CHECKING:
from models import Client
class BaseMarketplace(BaseModel):
__tablename__ = 'base_marketplaces'
@@ -9,3 +14,17 @@ class BaseMarketplace(BaseModel):
name: Mapped[str] = mapped_column()
icon_url: Mapped[str] = mapped_column()
class Marketplace(BaseModel):
__tablename__ = 'marketplaces'
id: Mapped[int] = mapped_column(primary_key=True)
base_marketplace_key: Mapped[str] = mapped_column(ForeignKey("base_marketplaces.key"), nullable=False)
base_marketplace: Mapped["BaseMarketplace"] = relationship(lazy="joined")
client_id: Mapped[int] = mapped_column(ForeignKey('clients.id'), nullable=False, comment='ID клиента')
client: Mapped["Client"] = relationship('Client')
name: Mapped[str] = mapped_column(nullable=False)
auth_data: Mapped[dict] = mapped_column(type_=JSON)