"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from paygentic_sdk.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class CreateFeeRequestTypedDict(TypedDict):
    name: str
    r"""Human-readable label identifying the fee. Sample values: 'Setup Fee', 'Monthly Subscription', 'Compliance Update', 'Annual License'"""
    description: str
    r"""Explanatory text describing what the fee represents. Sample values: 'One-time setup fee for new customers', 'Monthly base subscription charge', 'Yearly compliance and security update fee'"""
    merchant_id: str
    r"""Unique identifier for an organization"""
    product_id: str
    r"""Unique identifier for a product"""


class CreateFeeRequest(BaseModel):
    name: str
    r"""Human-readable label identifying the fee. Sample values: 'Setup Fee', 'Monthly Subscription', 'Compliance Update', 'Annual License'"""

    description: str
    r"""Explanatory text describing what the fee represents. Sample values: 'One-time setup fee for new customers', 'Monthly base subscription charge', 'Yearly compliance and security update fee'"""

    merchant_id: Annotated[str, pydantic.Field(alias="merchantId")]
    r"""Unique identifier for an organization"""

    product_id: Annotated[str, pydantic.Field(alias="productId")]
    r"""Unique identifier for a product"""


try:
    CreateFeeRequest.model_rebuild()
except NameError:
    pass
