forked from cartsnitch/cartsnitch
39 lines
963 B
Python
39 lines
963 B
Python
"""PriceHistory Pydantic schemas."""
|
|
|
|
import uuid
|
|
from datetime import date, datetime
|
|
from decimal import Decimal
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from cartsnitch_common.constants import PriceSource
|
|
|
|
|
|
class PriceHistoryCreate(BaseModel):
|
|
normalized_product_id: uuid.UUID
|
|
store_id: uuid.UUID
|
|
observed_date: date
|
|
regular_price: Decimal
|
|
sale_price: Decimal | None = None
|
|
loyalty_price: Decimal | None = None
|
|
coupon_price: Decimal | None = None
|
|
source: PriceSource
|
|
purchase_item_id: uuid.UUID | None = None
|
|
|
|
|
|
class PriceHistoryRead(BaseModel):
|
|
model_config = {"from_attributes": True}
|
|
|
|
id: uuid.UUID
|
|
normalized_product_id: uuid.UUID
|
|
store_id: uuid.UUID
|
|
observed_date: date
|
|
regular_price: Decimal
|
|
sale_price: Decimal | None
|
|
loyalty_price: Decimal | None
|
|
coupon_price: Decimal | None
|
|
source: PriceSource
|
|
purchase_item_id: uuid.UUID | None
|
|
created_at: datetime
|
|
updated_at: datetime
|