Schemas

class ccbenefits.schemas.BenefitTemplateOut(**data)[source]

Bases: BaseModel

Parameters:
  • id (int)

  • name (str)

  • description (str | None)

  • max_value (float)

  • period_type (str)

  • redemption_type (str)

  • category (str)

model_config: ClassVar[ConfigDict] = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: int
name: str
description: str | None
max_value: float
period_type: str
redemption_type: str
category: str
class ccbenefits.schemas.CardTemplateOut(**data)[source]

Bases: BaseModel

Parameters:
model_config: ClassVar[ConfigDict] = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: int
name: str
issuer: str
annual_fee: float
image_url: str | None
benefits: list[BenefitTemplateOut]
total_annual_value: float
class ccbenefits.schemas.CardTemplateListItem(**data)[source]

Bases: BaseModel

Parameters:
model_config: ClassVar[ConfigDict] = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: int
name: str
issuer: str
annual_fee: float
image_url: str | None
benefit_count: int
total_annual_value: float
class ccbenefits.schemas.UserCardCreate(**data)[source]

Bases: BaseModel

Parameters:
  • card_template_id (int)

  • nickname (str | None)

  • member_since_date (date | None)

card_template_id: int
nickname: str | None
member_since_date: date | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.UserCardOut(**data)[source]

Bases: BaseModel

Parameters:
  • id (int)

  • card_template_id (int)

  • card_name (str)

  • issuer (str)

  • annual_fee (float)

  • nickname (str | None)

  • member_since_date (date | None)

  • renewal_date (date | None)

  • closed_date (date | None)

  • is_active (bool)

  • created_at (datetime)

model_config: ClassVar[ConfigDict] = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: int
card_template_id: int
card_name: str
issuer: str
annual_fee: float
nickname: str | None
member_since_date: date | None
renewal_date: date | None
closed_date: date | None
is_active: bool
created_at: datetime
class ccbenefits.schemas.UserCardUpdate(**data)[source]

Bases: BaseModel

Parameters:

renewal_date (date | None)

renewal_date: date | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.CardCloseRequest(**data)[source]

Bases: BaseModel

Parameters:

closed_date (date)

closed_date: date
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.BenefitUsageCreate(**data)[source]

Bases: BaseModel

Parameters:
  • benefit_template_id (int)

  • amount_used (float)

  • notes (str | None)

  • target_date (date | None)

benefit_template_id: int
amount_used: float
notes: str | None
target_date: date | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.BenefitUsageUpdate(**data)[source]

Bases: BaseModel

Parameters:
  • amount_used (float | None)

  • notes (str | None)

amount_used: float | None
notes: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.BenefitUsageOut(**data)[source]

Bases: BaseModel

Parameters:
model_config: ClassVar[ConfigDict] = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: int
benefit_template_id: int
benefit_name: str
period_start_date: date
period_end_date: date
amount_used: float
notes: str | None
created_at: datetime
class ccbenefits.schemas.BenefitSettingUpdate(**data)[source]

Bases: BaseModel

Parameters:

perceived_max_value (float)

perceived_max_value: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.PeriodSegment(**data)[source]

Bases: BaseModel

Parameters:
label: str
period_start_date: date
period_end_date: date
amount_used: float
usage_id: int | None
is_used: bool
is_current: bool
is_future: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.BenefitStatusOut(**data)[source]

Bases: BaseModel

Parameters:
benefit_template_id: int
usage_id: int | None
name: str
description: str | None
max_value: float
period_type: str
redemption_type: str
category: str
period_start_date: date
period_end_date: date
days_remaining: int
amount_used: float
remaining: float
perceived_max_value: float
utilized_perceived_value: float
is_used: bool
periods: list[PeriodSegment]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.UserCardDetailOut(**data)[source]

Bases: BaseModel

Parameters:
model_config: ClassVar[ConfigDict] = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: int
card_template_id: int
card_name: str
issuer: str
annual_fee: float
nickname: str | None
member_since_date: date | None
renewal_date: date | None
closed_date: date | None
is_active: bool
available_years: list[int]
ytd_actual_used: float
utilization_pct: float
benefits_status: list[BenefitStatusOut]
class ccbenefits.schemas.UserCardSummaryOut(**data)[source]

Bases: BaseModel

Parameters:
  • id (int)

  • card_name (str)

  • issuer (str)

  • nickname (str | None)

  • annual_fee (float)

  • available_years (list[int])

  • total_max_annual_value (float)

  • total_perceived_annual_value (float)

  • ytd_actual_used (float)

  • ytd_perceived_value (float)

  • net_actual (float)

  • net_perceived (float)

  • utilization_pct (float)

  • benefit_count (int)

  • benefits_used_count (int)

id: int
card_name: str
issuer: str
nickname: str | None
annual_fee: float
available_years: list[int]
total_max_annual_value: float
total_perceived_annual_value: float
ytd_actual_used: float
ytd_perceived_value: float
net_actual: float
net_perceived: float
utilization_pct: float
benefit_count: int
benefits_used_count: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.UserRegister(**data)[source]

Bases: BaseModel

Parameters:
  • email (EmailStr)

  • password (str)

  • display_name (str)

email: EmailStr
password: str
display_name: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.UserLogin(**data)[source]

Bases: BaseModel

Parameters:
  • email (EmailStr)

  • password (str)

email: EmailStr
password: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.TokenResponse(**data)[source]

Bases: BaseModel

Parameters:
  • access_token (str)

  • refresh_token (str)

  • token_type (str)

access_token: str
refresh_token: str
token_type: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.RefreshRequest(**data)[source]

Bases: BaseModel

Parameters:

refresh_token (str)

refresh_token: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.PasswordResetRequest(**data)[source]

Bases: BaseModel

Parameters:

email (str)

email: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.PasswordReset(**data)[source]

Bases: BaseModel

Parameters:
  • token (str)

  • new_password (str)

token: str
new_password: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.PasswordChange(**data)[source]

Bases: BaseModel

Parameters:
  • current_password (str)

  • new_password (str)

current_password: str
new_password: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.ChannelPreferences(**data)[source]

Bases: BaseModel

Parameters:
  • expiring_credits (bool)

  • period_start (bool)

  • utilization_summary (bool)

  • unused_recap (bool)

  • fee_approaching (bool)

expiring_credits: bool
period_start: bool
utilization_summary: bool
unused_recap: bool
fee_approaching: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.NotificationPreferences(**data)[source]

Bases: BaseModel

Parameters:
email: ChannelPreferences
push: ChannelPreferences
notification_hour: int
classmethod validate_hour(v)[source]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.UserOut(**data)[source]

Bases: BaseModel

Parameters:
model_config: ClassVar[ConfigDict] = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: int
email: str
display_name: str
preferred_currency: str
timezone: str
notification_preferences: NotificationPreferences | None
is_active: bool
is_admin: bool
is_verified: bool
created_at: datetime
class ccbenefits.schemas.VerifyEmailRequest(**data)[source]

Bases: BaseModel

Parameters:

token (str)

token: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.UserUpdate(**data)[source]

Bases: BaseModel

Parameters:
display_name: str | None
preferred_currency: str | None
timezone: str | None
notification_preferences: NotificationPreferences | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.AuthResponse(**data)[source]

Bases: TokenResponse

Parameters:
user: UserOut
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.OAuthRequest(**data)[source]

Bases: BaseModel

Parameters:
  • provider (Literal['google', 'apple'])

  • id_token (str)

  • display_name (str | None)

provider: Literal['google', 'apple']
id_token: str
display_name: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.OAuthProviderOut(**data)[source]

Bases: BaseModel

Parameters:
provider: str
provider_email: str
created_at: datetime
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.OAuthLinkRequest(**data)[source]

Bases: BaseModel

Parameters:
  • provider (Literal['google', 'apple'])

  • id_token (str)

  • display_name (str | None)

provider: Literal['google', 'apple']
id_token: str
display_name: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.PushTokenBase(**data)[source]

Bases: BaseModel

Parameters:

token (str)

token: str
classmethod validate_token_format(v)[source]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.PushTokenCreate(**data)[source]

Bases: PushTokenBase

Parameters:
  • token (str)

  • device_name (str | None)

device_name: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.PushTokenUnregister(**data)[source]

Bases: PushTokenBase

Parameters:

token (str)

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.NotificationOut(**data)[source]

Bases: BaseModel

Parameters:
model_config: ClassVar[ConfigDict] = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: int
notification_type: str
title: str
body: str
data: dict | None
is_read: bool
created_at: datetime
class ccbenefits.schemas.FeedbackCreate(**data)[source]

Bases: BaseModel

Parameters:
  • category (str)

  • message (str)

category: str
message: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ccbenefits.schemas.FeedbackOut(**data)[source]

Bases: BaseModel

Parameters:
model_config: ClassVar[ConfigDict] = {'from_attributes': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: int
user_email: str
category: str
message: str
created_at: datetime