Files
monitor-shared-utils/monitor_utils/models.py
T
2026-06-16 18:53:49 -07:00

50 lines
1.3 KiB
Python

from datetime import datetime
from dataclasses import field
from pydantic.dataclasses import dataclass
@dataclass
class PricingInfo:
original_price: float
current_price: float
price_before_drop: float | None = None
edu_price: float | None = None
@dataclass
class AvailabilityInfo:
available: bool | None = None
condition: str | None = None
app_exclusive: bool | None = None
member_pick: bool | None = None
member_deal: bool | None = None
@dataclass
class ProductMetadata:
image_url: str | None = None
channel_id: str | None = None
customization_index: str | None = None
member_non_member_comparison: str | None = None
overstock_text: str | None = None
percentage: int | None = None
affiliate_url: str | None = None
@dataclass
class ProductTiming:
discovered_date: datetime | None = None
start_date: datetime | None = None
end_date: datetime | None = None
@dataclass
class Product:
product_id: str
title: str
url: str
metadata: ProductMetadata = field(default_factory=ProductMetadata)
timing: ProductTiming = field(default_factory=ProductTiming)
pricing: PricingInfo = field(default_factory=PricingInfo)
availability: AvailabilityInfo = field(default_factory=AvailabilityInfo)