from typing import Optional from modules.clients.schemas.client import ClientSchema from schemas.base import BaseSchema, BaseResponse # region Entity class BaseMarketplaceSchema(BaseSchema): id: int name: str icon_url: str class MarketplaceSchema(BaseSchema): id: int base_marketplace_id: int base_marketplace: BaseMarketplaceSchema client: ClientSchema name: str auth_data: dict class CreateMarketplaceSchema(BaseSchema): base_marketplace: BaseMarketplaceSchema client: ClientSchema name: str auth_data: dict class UpdateMarketplaceSchema(BaseSchema): base_marketplace: Optional[BaseMarketplaceSchema] = None client: Optional[ClientSchema] = None name: Optional[str] = None auth_data: Optional[dict] = None # endregion # region Request class CreateMarketplaceRequest(BaseSchema): entity: CreateMarketplaceSchema class UpdateMarketplaceRequest(BaseSchema): entity: UpdateMarketplaceSchema # endregion # region Response class GetBaseMarketplacesResponse(BaseSchema): items: list[BaseMarketplaceSchema] class GetMarketplacesResponse(BaseSchema): items: list[MarketplaceSchema] class CreateMarketplaceResponse(BaseResponse): entity: MarketplaceSchema class UpdateMarketplaceResponse(BaseResponse): pass class DeleteMarketplaceResponse(BaseResponse): pass # endregion