from pydantic import BaseModel, Field, field_validator class SwosBetaCredentials(BaseModel): host: str = Field(min_length=1, max_length=255) port: int = Field(default=80, ge=1, le=65535) username: str = Field(default='admin', min_length=1, max_length=120) password: str = Field(default='', max_length=255) label: str | None = Field(default=None, max_length=120) @field_validator('host', 'username', 'password', mode='before') @classmethod def normalize_text(cls, value: str | None) -> str: return (value or '').strip() @field_validator('label', mode='before') @classmethod def normalize_label(cls, value: str | None) -> str | None: normalized = (value or '').strip() return normalized or None class SwosBetaProbeResponse(BaseModel): success: bool base_url: str status_code: int auth_mode: str page_title: str | None = None content_type: str | None = None server: str | None = None save_backup_visible: bool = False backup_endpoint_ok: bool = False note: str | None = None