from typing import List, Optional
from pydantic import BaseModel, EmailStr
from datetime import datetime


class BuyerLocationCreate(BaseModel):
    location: str


class BuyerIndustryCreate(BaseModel):
    industry: str


class BuyerLocationOut(BaseModel):
    id: int
    location: str


class BuyerIndustryOut(BaseModel):
    id: int
    industry: str


class BuyerCreate(BaseModel):
    first_name: str
    last_name: str
    email: EmailStr
    phone: str
    additional_info: Optional[str] = None
    deal_size: Optional[str] = None
    revenue_multiple: Optional[str] = None
    ebidta_multiple: Optional[str] = None
    irr: Optional[str] = None
    is_financing_needed: bool
    time_frame: Optional[str] = None

    locations: List[str]
    industries: List[str]


class BuyerOut(BaseModel):
    id: int
    first_name: str
    last_name: str
    email: EmailStr
    phone: str
    additional_info: Optional[str] = None
    deal_size: Optional[str] = None
    revenue_multiple: Optional[str] = None
    ebidta_multiple: Optional[str] = None
    irr: Optional[str] = None
    is_financing_needed: bool
    time_frame: Optional[str] = None

    created_at: datetime
    modified_at: datetime
    created_by: Optional[str] = None
    modified_by: Optional[str] = None

    locations: List[str]
    industries: List[str]
