from typing import Optional
from pydantic import Field
from src.apps.users.schemas.user_common import UserSchema
from src.apps.customers.schemas.customer_common import CustomerSchema
from src.apps.customers.schemas.customer_contact import CustomerContactSchema
from src.apps.base.schemas.common import ReminderBase


class PaymentRequestReminderSchema(ReminderBase):
    id: int = Field(description="Id of reminder resource")
    user: Optional[UserSchema] = Field(
        description="User Details of the PaymentRequest reminder"
    )
    customer: Optional[CustomerSchema] = Field(
        description="Customer details of the PaymentRequest reminder"
    )
    payer: Optional[CustomerContactSchema] = Field(
        description="Payer details of the PaymentRequest reminder"
    )
    approver: Optional[CustomerContactSchema] = Field(
        description="Approver details of the PaymentRequest reminder"
    )
