78 lines
1.4 KiB
Python
78 lines
1.4 KiB
Python
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
|