from typing import Optional from schemas.base import BaseSchema, BaseResponse # region Entity class ProductImageSchema(BaseSchema): id: int product_id: int image_url: str class CreateProductSchema(BaseSchema): name: str article: str factory_article: str brand: Optional[str] color: Optional[str] composition: Optional[str] size: Optional[str] additional_info: Optional[str] class ProductSchema(CreateProductSchema): id: int class UpdateProductSchema(BaseSchema): name: Optional[str] = None article: Optional[str] = None factory_article: Optional[str] = None brand: Optional[str] = None color: Optional[str] = None composition: Optional[str] = None size: Optional[str] = None additional_info: Optional[str] = None images: list[ProductImageSchema] | None = [] # endregion # region Request class CreateProductRequest(BaseSchema): entity: CreateProductSchema class UpdateProductRequest(BaseSchema): entity: UpdateProductSchema # endregion # region Response class GetProductsResponse(BaseSchema): items: list[ProductSchema] class CreateProductResponse(BaseResponse): entity: ProductSchema class UpdateProductResponse(BaseResponse): pass class DeleteProductResponse(BaseResponse): pass # endregion