31 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
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'
 | 
						|
    key: Mapped[str] = mapped_column(primary_key=True)
 | 
						|
    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)
 |