86 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from typing import List
 | 
						|
 | 
						|
from schemas.base import BaseSchema, OkMessageSchema
 | 
						|
from schemas.client import ClientSchema
 | 
						|
 | 
						|
 | 
						|
# region Entities
 | 
						|
class BaseMarketplaceSchema(BaseSchema):
 | 
						|
    key: str
 | 
						|
    name: str
 | 
						|
    icon_url: str
 | 
						|
 | 
						|
 | 
						|
class MarketplaceMixin(BaseSchema):
 | 
						|
    name: str
 | 
						|
    base_marketplace: BaseMarketplaceSchema
 | 
						|
    client: ClientSchema
 | 
						|
    auth_data: dict
 | 
						|
 | 
						|
 | 
						|
class MarketplaceCreateSchema(BaseSchema):
 | 
						|
    name: str
 | 
						|
    client_id: int
 | 
						|
    base_marketplace_key: str
 | 
						|
    auth_data: dict
 | 
						|
 | 
						|
 | 
						|
class MarketplaceSchema(MarketplaceMixin):
 | 
						|
    id: int
 | 
						|
 | 
						|
 | 
						|
class YandexMarketCampaignSchema(BaseSchema):
 | 
						|
    id: int
 | 
						|
    name: str
 | 
						|
 | 
						|
 | 
						|
# endregion
 | 
						|
 | 
						|
# region Requests
 | 
						|
class GetClientMarketplacesRequest(BaseSchema):
 | 
						|
    client_id: int
 | 
						|
 | 
						|
 | 
						|
class CreateMarketplaceRequest(BaseSchema):
 | 
						|
    marketplace: MarketplaceCreateSchema
 | 
						|
 | 
						|
 | 
						|
class DeleteMarketplaceRequest(BaseSchema):
 | 
						|
    marketplace_id: int
 | 
						|
 | 
						|
 | 
						|
class UpdateMarketplaceRequest(BaseSchema):
 | 
						|
    marketplace: MarketplaceSchema
 | 
						|
 | 
						|
 | 
						|
class GetYandexMarketCampaignsRequest(BaseSchema):
 | 
						|
    api_key: str
 | 
						|
 | 
						|
 | 
						|
# endregion
 | 
						|
 | 
						|
# region Responses
 | 
						|
class GetAllBaseMarketplacesResponse(BaseSchema):
 | 
						|
    base_marketplaces: List[BaseMarketplaceSchema]
 | 
						|
 | 
						|
 | 
						|
class GetClientMarketplacesResponse(BaseSchema):
 | 
						|
    marketplaces: List[MarketplaceSchema]
 | 
						|
 | 
						|
 | 
						|
class CreateMarketplaceResponse(OkMessageSchema):
 | 
						|
    pass
 | 
						|
 | 
						|
 | 
						|
class DeleteMarketplaceResponse(OkMessageSchema):
 | 
						|
    pass
 | 
						|
 | 
						|
 | 
						|
class UpdateMarketplaceResponse(OkMessageSchema):
 | 
						|
    pass
 | 
						|
 | 
						|
 | 
						|
class GetYandexMarketCampaignsResponse(BaseSchema):
 | 
						|
    campaigns: List[YandexMarketCampaignSchema]
 | 
						|
# endregion
 |