"""
Company-related schemas
"""
from pydantic import BaseModel
from typing import Optional
from uuid import UUID
from datetime import datetime, time


class CompanyBase(BaseModel):
    company_name: str
    address: str
    province: str
    city: str
    postal_code: str
    phone: str
    mobile: Optional[str] = None
    fax: Optional[str] = None
    email: str
    registration_number: Optional[str] = None
    vat_number: Optional[str] = None
    tax_office: Optional[str] = None
    website: Optional[str] = None
    remarks: Optional[str] = None
    company_logo_path: Optional[str] = None
    company_status: str = 'pending'
    send_time_reports: time = time(9, 0, 0)


class CompanyCreate(CompanyBase):
    country_id: int


class CompanyUpdate(CompanyBase):
    country_id: Optional[int] = None


class Company(CompanyBase):
    company_id: UUID
    country_id: int
    create_date: datetime
    update_date: datetime

    class Config:
        orm_mode = True


class UserCompanyBase(BaseModel):
    role: str = 'owner'
    is_active: bool = True


class UserCompanyCreate(UserCompanyBase):
    user_id: UUID
    company_id: UUID


class UserCompanyUpdate(UserCompanyBase):
    user_id: Optional[UUID] = None
    company_id: Optional[UUID] = None


class UserCompany(UserCompanyBase):
    user_company_id: int
    user_id: UUID
    company_id: UUID
    created_at: datetime

    class Config:
        orm_mode = True