"""
Modele comune pentru toate aplicațiile ROA2WEB
"""
from pydantic import BaseModel, Field
from typing import List, Optional, Dict
from datetime import datetime

class Company(BaseModel):
    """Model pentru firma/schema Oracle"""
    code: str = Field(description="Codul firmei (schema Oracle)")
    name: str = Field(description="Numele firmei")
    fiscal_code: Optional[str] = Field(description="Codul fiscal")
    is_active: bool = Field(default=True, description="Firma activă")

class User(BaseModel):
    """Model pentru utilizator"""
    username: str = Field(description="Numele utilizatorului")
    email: Optional[str] = Field(description="Email utilizator")
    companies: List[str] = Field(description="Lista codurilor firmelor la care are acces")
    is_active: bool = Field(default=True, description="Utilizator activ")
    last_login: Optional[datetime] = Field(description="Ultima autentificare")

class DatabaseConfig(BaseModel):
    """Configurare conexiune bază de date"""
    user: str
    password: str
    dsn: str
    min_connections: int = 2
    max_connections: int = 10
    increment: int = 1