from datetime import datetime
from enum import Enum

from pydantic import BaseModel, Field


class AuthLogCreate(BaseModel):
    login: str = Field(..., example="user@example.com")
    ip: str = Field(..., example="192.168.1.1")

class AuthLogResponse(BaseModel):
    auth_log_id: int
    login: str
    ip: str
    date_added: datetime

    class Config:
        from_attributes = True

class LoginRequest(BaseModel):
    login: str
    password: str

class AuthTypeEnum(str, Enum):
    phone = "phone"
    google = "google"


class CustomerResponse(BaseModel):
    customer_id: int
    name: str
    phone: str
    comment: str | None = None
    logo: str | None = None
    date_added: datetime
    date_modify: datetime
    ip: str | None = None
    auth_type: AuthTypeEnum
    banned: bool

    model_config = {"from_attributes": True}


class UserRoleResponse(BaseModel):
    role_id: int
    name: str

    model_config = {"from_attributes": True}


class UserResponse(BaseModel):
    user_id: int
    role_id: int
    name: str
    login: str
    phone: str
    logo: str
    date_added: datetime
    date_modify: datetime
    role: UserRoleResponse

    model_config = {"from_attributes": True}