"""Article models."""
from __future__ import annotations
from datetime import datetime
from typing import Any
from pypresscart.models._common import IncludeItem, PresscartModel
from pypresscart.models.campaigns import ArticleStatus
from pypresscart.models.orders import OutletRef
[docs]
class ArticleWriter(PresscartModel):
id: str | None = None
first_name: str | None = None
last_name: str | None = None
[docs]
class ArticleOrderItem(PresscartModel):
name: str | None = None
outlet: OutletRef | None = None
addons: list[dict[str, Any]] = []
includes: list[IncludeItem] = []
[docs]
class CampaignArticleRow(PresscartModel):
"""Entry in ``GET /campaigns/{id}/articles``."""
id: str
name: str | None = None
live_url: str | None = None
brief_google_doc_url: str | None = None
draft_google_doc_url: str | None = None
campaign_id: str | None = None
order_item_id: str | None = None
created_at: datetime | None = None
updated_at: datetime | None = None
deleted_at: datetime | None = None
total_images: int | None = None
writer: ArticleWriter | None = None
status: list[ArticleStatus] = []
order_item: ArticleOrderItem | None = None
[docs]
class ArticleStatusRef(PresscartModel):
name: str | None = None
prefix: str | None = None
color: str | None = None
[docs]
class Article(PresscartModel):
"""Response from ``GET /articles/{article_id}``."""
id: str
name: str | None = None
brief_google_doc_url: str | None = None
draft_google_doc_url: str | None = None
live_url: str | None = None
campaign_id: str | None = None
product_id: str | None = None
profile_id: str | None = None
updated_at: datetime | None = None
writer: ArticleWriter | None = None
support_agent: dict[str, Any] | None = None
status: ArticleStatusRef | None = None
files: list[dict[str, Any]] = []
expected_completion_date: datetime | None = None
expected_completion_date_title: str | None = None
[docs]
class ArticleUpdateRequest(PresscartModel):
"""Body for ``PUT /articles/{id}``."""
brief_google_doc_url: str | None = None
name: str | None = None
[docs]
class ApproveDraftRequest(PresscartModel):
"""Body for ``PATCH /articles/{id}/approve-draft``."""
draft_google_doc_url: str | None = None
__all__ = [
"ApproveDraftRequest",
"Article",
"ArticleOrderItem",
"ArticleStatusRef",
"ArticleUpdateRequest",
"ArticleWriter",
"CampaignArticleRow",
]