from pydantic import BaseModel
from datetime import datetime
from typing import Optional

class MemberBase(BaseModel):
    project_id: int = None
    member_hrms_user_id: int = None
    is_active: Optional[bool] = True

class MemberCreateRequest(MemberBase):
    project_id: int
    member_hrms_user_id: int

class MemberUpdateRequest(MemberBase):
    pass

class MemberResponse(MemberBase):
    id: int
    created_at: datetime
    updated_at: datetime
    created_by: Optional[int] = None
    updated_by: Optional[int] = None
    created_by_name: Optional[str] = None
    updated_by_name: Optional[str] = None

    class Config:
        orm_mode = True
        
class MemberWithProject(BaseModel):
    member_id: int
    user_id: int
    member_name: str
    is_active: bool
    project_id: int
    project_name: str
    
    class Config:
        orm_mode = True 
        
class MemberDDLReponse(BaseModel):
    id: int
    name: str
    
    class Config:
        orm_mode = True               

