from __future__ import annotations from datetime import datetime from typing import Optional, Dict, Any from pydantic import BaseModel, Field, ConfigDict class LogCreate(BaseModel): level: str = Field(..., description="Log level: info/warning/error/debug") source: Optional[str] = None message: str details: Optional[Dict[str, Any]] = None host_id: Optional[str] = None task_id: Optional[str] = None schedule_id: Optional[str] = None class LogOut(LogCreate): id: int created_at: datetime model_config = ConfigDict(from_attributes=True)