46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
"""Configuration schemas"""
|
|
from pydantic import BaseModel
|
|
from datetime import datetime
|
|
from typing import Optional, List, Dict, Any
|
|
from app.models.configuration import ConfigStatus
|
|
|
|
|
|
class ValidationResult(BaseModel):
|
|
"""Validation result"""
|
|
is_valid: bool
|
|
errors: List[str]
|
|
warnings: List[str]
|
|
|
|
|
|
class ConfigurationBase(BaseModel):
|
|
"""Base configuration schema"""
|
|
name: str
|
|
config_data: Optional[Dict[str, Any]] = None
|
|
status: ConfigStatus = ConfigStatus.DRAFT
|
|
|
|
|
|
class ConfigurationCreate(ConfigurationBase):
|
|
"""Configuration creation schema"""
|
|
project_id: int
|
|
device_id: int
|
|
|
|
|
|
class ConfigurationUpdate(ConfigurationBase):
|
|
"""Configuration update schema"""
|
|
pass
|
|
|
|
|
|
class ConfigurationResponse(ConfigurationBase):
|
|
"""Configuration response schema"""
|
|
id: int
|
|
project_id: int
|
|
device_id: int
|
|
generated_cli: Optional[str] = None
|
|
validation_errors: Optional[List[str]] = None
|
|
validation_warnings: Optional[List[str]] = None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|