feat: image upload on product

This commit is contained in:
2024-05-26 09:28:56 +03:00
parent 88679089b6
commit 8e7812fb66
4 changed files with 26 additions and 4 deletions

View File

@@ -1,11 +1,17 @@
from typing import List
from schemas.barcode import BarcodeTemplateSchema
from schemas.base import CustomModelCamel, PaginationInfoSchema, OkMessageSchema
from pydantic import field_validator
from pydantic import field_validator, model_validator
from models import ProductBarcode
# region Entities
class ProductImageSchema(CustomModelCamel):
id: int
product_id: int
image_url: str
class BaseProductSchema(CustomModelCamel):
name: str
article: str | None = ''
@@ -19,6 +25,8 @@ class BaseProductSchema(CustomModelCamel):
composition: str | None = None
size: str | None = None
additional_info: str | None = None
image_url: str | None = None
images: list[ProductImageSchema]
@field_validator('barcodes', mode="before")
def barcodes_to_list(cls, v):
@@ -26,6 +34,15 @@ class BaseProductSchema(CustomModelCamel):
return [barcode.barcode for barcode in v]
return v
@model_validator(mode="after")
def image_url_to_list(cls, values):
images = values.images
if not images:
return values
latest_image = images[-1]
values.image_url = latest_image.image_url
return values
class ProductSchema(BaseProductSchema):
id: int