forked from cartsnitch/cartsnitch
41 lines
973 B
Python
41 lines
973 B
Python
"""ShrinkflationEvent Pydantic schemas."""
|
|
|
|
import uuid
|
|
from datetime import date, datetime
|
|
from decimal import Decimal
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from cartsnitch_common.constants import SizeUnit
|
|
|
|
|
|
class ShrinkflationEventCreate(BaseModel):
|
|
normalized_product_id: uuid.UUID
|
|
detected_date: date
|
|
old_size: str
|
|
new_size: str
|
|
old_unit: SizeUnit
|
|
new_unit: SizeUnit
|
|
price_at_old_size: Decimal | None = None
|
|
price_at_new_size: Decimal | None = None
|
|
confidence: Decimal = Decimal("1.00")
|
|
notes: str | None = None
|
|
|
|
|
|
class ShrinkflationEventRead(BaseModel):
|
|
model_config = {"from_attributes": True}
|
|
|
|
id: uuid.UUID
|
|
normalized_product_id: uuid.UUID
|
|
detected_date: date
|
|
old_size: str
|
|
new_size: str
|
|
old_unit: SizeUnit
|
|
new_unit: SizeUnit
|
|
price_at_old_size: Decimal | None
|
|
price_at_new_size: Decimal | None
|
|
confidence: Decimal
|
|
notes: str | None
|
|
created_at: datetime
|
|
updated_at: datetime
|