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


class CompanyCreate(BaseModel):
    name: str
    bank_name: Optional[str] = None
    account_number: Optional[str] = None
    city: Optional[str] = None
    district: Optional[str] = None
    province: Optional[str] = None
    email: Optional[str] = None
    relationship_type: str = "IBU"


class CompanyUpdate(BaseModel):
    name: Optional[str] = None
    bank_name: Optional[str] = None
    account_number: Optional[str] = None
    city: Optional[str] = None
    district: Optional[str] = None
    province: Optional[str] = None
    email: Optional[str] = None
    relationship_type: Optional[str] = None


class CompanyOut(BaseModel):
    id: str
    name: str
    bank_name: Optional[str] = None
    account_number: Optional[str] = None
    city: Optional[str] = None
    district: Optional[str] = None
    province: Optional[str] = None
    email: Optional[str] = None
    relationship_type: str
    created_at: datetime
    updated_at: datetime

    model_config = {"from_attributes": True}
