from pydantic import BaseModel from datetime import datetime from typing import Optional class UserBase(BaseModel): username: str email: str class UserCreate(UserBase): password: str class User(UserBase): id: int is_active: bool created_at: datetime class Config: from_attributes = True class APIKeyBase(BaseModel): name: str class APIKeyCreate(APIKeyBase): user_id: int class APIKey(APIKeyBase): id: int key: str user_id: int is_active: bool created_at: datetime class Config: from_attributes = True class QuotaBase(BaseModel): daily_tokens: Optional[int] = None monthly_tokens: Optional[int] = None daily_requests: Optional[int] = None monthly_requests: Optional[int] = None class QuotaCreate(QuotaBase): user_id: int class Quota(QuotaBase): id: int user_id: int reset_at: Optional[datetime] = None class Config: from_attributes = True class UsageStats(BaseModel): tokens_used: int = 0 requests_count: int = 0 last_reset: Optional[datetime] = None class Config: from_attributes = True