Add Chzzk campaign and reward models, import command, and schemas
Some checks failed
Deploy to Server / deploy (push) Failing after 19s
Some checks failed
Deploy to Server / deploy (push) Failing after 19s
This commit is contained in:
parent
c852134338
commit
677aedf42b
14 changed files with 650 additions and 9 deletions
107
chzzk/schemas.py
Normal file
107
chzzk/schemas.py
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel
|
||||
from pydantic import Field
|
||||
|
||||
|
||||
class ChzzkRewardV1(BaseModel):
|
||||
"""Pydantic schema for Chzzk v1 reward object."""
|
||||
|
||||
title: str
|
||||
reward_no: int = Field(..., alias="rewardNo")
|
||||
image_url: str = Field(..., alias="imageUrl")
|
||||
reward_type: str = Field(..., alias="rewardType")
|
||||
condition_type: str = Field(..., alias="conditionType")
|
||||
condition_for_minutes: int = Field(..., alias="conditionForMinutes")
|
||||
ios_based_reward: bool = Field(..., alias="iosBasedReward")
|
||||
code_remaining_count: int = Field(..., alias="codeRemainingCount")
|
||||
|
||||
# Only in v1 API
|
||||
campaign_reward_type: str | None = Field(None, alias="campaignRewardType")
|
||||
|
||||
model_config = {"extra": "forbid"}
|
||||
|
||||
|
||||
class ChzzkRewardV2(BaseModel):
|
||||
"""Pydantic schema for Chzzk v2 reward object."""
|
||||
|
||||
title: str
|
||||
reward_no: int = Field(..., alias="rewardNo")
|
||||
image_url: str = Field(..., alias="imageUrl")
|
||||
reward_type: str = Field(..., alias="rewardType")
|
||||
condition_type: str = Field(..., alias="conditionType")
|
||||
condition_for_minutes: int = Field(..., alias="conditionForMinutes")
|
||||
ios_based_reward: bool = Field(..., alias="iosBasedReward")
|
||||
code_remaining_count: int = Field(..., alias="codeRemainingCount")
|
||||
|
||||
model_config = {"extra": "forbid"}
|
||||
|
||||
|
||||
class ChzzkCampaignV1(BaseModel):
|
||||
"""Pydantic schema for Chzzk v1 campaign object."""
|
||||
|
||||
title: str
|
||||
state: str
|
||||
description: str
|
||||
campaign_no: int = Field(..., alias="campaignNo")
|
||||
image_url: str = Field(..., alias="imageUrl")
|
||||
category_type: str = Field(..., alias="categoryType")
|
||||
category_id: str = Field(..., alias="categoryId")
|
||||
category_value: str = Field(..., alias="categoryValue")
|
||||
pc_link_url: str = Field(..., alias="pcLinkUrl")
|
||||
mobile_link_url: str = Field(..., alias="mobileLinkUrl")
|
||||
service_id: str = Field(..., alias="serviceId")
|
||||
start_date: str = Field(..., alias="startDate")
|
||||
end_date: str = Field(..., alias="endDate")
|
||||
reward_list: list[ChzzkRewardV1] = Field(..., alias="rewardList")
|
||||
has_ios_based_reward: bool = Field(..., alias="hasIosBasedReward")
|
||||
drops_campaign_not_started: bool = Field(..., alias="dropsCampaignNotStarted")
|
||||
campaign_reward_type: str | None = Field(None, alias="campaignRewardType")
|
||||
account_link_url: str = Field(..., alias="accountLinkUrl")
|
||||
|
||||
model_config = {"extra": "forbid"}
|
||||
|
||||
|
||||
class ChzzkCampaignV2(BaseModel):
|
||||
"""Pydantic schema for Chzzk v2 campaign object."""
|
||||
|
||||
title: str
|
||||
state: str
|
||||
campaign_no: int = Field(..., alias="campaignNo")
|
||||
image_url: str = Field(..., alias="imageUrl")
|
||||
description: str
|
||||
category_type: str = Field(..., alias="categoryType")
|
||||
category_id: str = Field(..., alias="categoryId")
|
||||
category_value: str = Field(..., alias="categoryValue")
|
||||
pc_link_url: str = Field(..., alias="pcLinkUrl")
|
||||
mobile_link_url: str = Field(..., alias="mobileLinkUrl")
|
||||
service_id: str = Field(..., alias="serviceId")
|
||||
start_date: str = Field(..., alias="startDate")
|
||||
end_date: str = Field(..., alias="endDate")
|
||||
reward_list: list[ChzzkRewardV2] = Field(..., alias="rewardList")
|
||||
has_ios_based_reward: bool = Field(..., alias="hasIosBasedReward")
|
||||
drops_campaign_not_started: bool = Field(..., alias="dropsCampaignNotStarted")
|
||||
reward_type: str | None = Field(None, alias="rewardType")
|
||||
account_link_url: str = Field(..., alias="accountLinkUrl")
|
||||
|
||||
model_config = {"extra": "forbid"}
|
||||
|
||||
|
||||
class ChzzkApiResponseV1(BaseModel):
|
||||
"""Pydantic schema for Chzzk v1 API response."""
|
||||
|
||||
code: int
|
||||
message: Any | None
|
||||
content: ChzzkCampaignV1
|
||||
|
||||
model_config = {"extra": "forbid"}
|
||||
|
||||
|
||||
class ChzzkApiResponseV2(BaseModel):
|
||||
"""Pydantic schema for Chzzk v2 API response."""
|
||||
|
||||
code: int
|
||||
message: Any | None
|
||||
content: ChzzkCampaignV2
|
||||
|
||||
model_config = {"extra": "forbid"}
|
||||
Loading…
Add table
Add a link
Reference in a new issue