Source code for pypresscart.models.outlets

"""Outlet models."""

from __future__ import annotations

from datetime import datetime

from pypresscart.models._common import (
    ChannelType,
    PlacementType,
    PresscartModel,
    Price,
    Tag,
)


[docs] class OutletChannelSummary(PresscartModel): """Channel summary included in outlet listings.""" channel_type: ChannelType | str | None = None placement_type: PlacementType | str | None = None is_do_follow: bool | None = None domain_authority: int | None = None domain_ranking: int | None = None disclaimer_name: str | None = None disclaimer_description: str | None = None
[docs] class OutletChannel(PresscartModel): """Full outlet channel (from ``GET /outlets/{id}``).""" id: str outlet_id: str | None = None channel_type: ChannelType | str | None = None placement_type: PlacementType | str | None = None channel_handle: str | None = None channel_url: str | None = None social_links: list[str] = [] is_do_follow: bool | None = None domain_authority: int | None = None domain_ranking: int | None = None do_follow_links_allowed: bool | str | None = None disclaimer_name: str | None = None disclaimer_description: str | None = None
[docs] class OutletListing(PresscartModel): """An item in the ``GET /outlets`` list. Note: ``id`` here is a **product id** (what you pass to checkout). ``outlet_id`` is what you pass to ``GET /outlets/{outlet_id}``. """ id: str outlet_id: str | None = None name: str description: str | None = None requirements: str | None = None min_delivery_days: int | None = None max_delivery_days: int | None = None is_featured: bool | None = None created_at: datetime | None = None outlet_name: str | None = None website_url: str | None = None logo: str | None = None city: str | None = None state: str | None = None country: str | None = None channels: list[OutletChannelSummary] = [] tags: list[Tag] = [] prices: list[Price] = []
[docs] class Outlet(PresscartModel): """Response from ``GET /outlets/{outlet_id}``.""" id: str name: str description: str | None = None website_url: str | None = None logo: str | None = None country: str | None = None state: str | None = None city: str | None = None is_indexed: bool | None = None tags: list[Tag] = [] outlet_channels: list[OutletChannel] = [] created_at: datetime | None = None updated_at: datetime | None = None
[docs] class CountriesResponse(PresscartModel): countries: list[str] = []
[docs] class StatesResponse(PresscartModel): states: list[str] = []
[docs] class CitiesResponse(PresscartModel): cities: list[str] = []
[docs] class DisclaimerRecord(PresscartModel): id: str name: str | None = None description: str | None = None
__all__ = [ "CitiesResponse", "CountriesResponse", "DisclaimerRecord", "Outlet", "OutletChannel", "OutletChannelSummary", "OutletListing", "StatesResponse", ]