from typing import Optional, List

from pydantic import BaseModel, EmailStr, ConfigDict


class StudentSearch(BaseModel):
    name:str =None
    mobile_number:str =None
    email:EmailStr =None
    academic_year_id:int=None
    age_group_id:int=None
    course_id:int=None
    term_id:int=None

class RefundBaseSchema(BaseModel):
    payment_detail_id: int
    refund_amount: float
    refund_type:str
    note:str
    note: Optional[str]


class RefundInstanceSchema(RefundBaseSchema):
    id:int
    is_refund_completed: bool
    model_config = ConfigDict(from_attributes=True)


class RefundGroupRequest(BaseModel):
    refunds: List[RefundBaseSchema]

class RefundResponseSchema(RefundInstanceSchema):
    data: List[RefundInstanceSchema]

class RefundFilter(BaseModel):
    participant_name:Optional[str] =None
    email:Optional[str] =None
    mobile_number:Optional[str] =None

