# Data Model: Fix UI Styling, WebSocket Port Mismatch, and URL Validation ## Entities ### ServiceConnection Represents the configuration for an external service. | Field | Type | Description | Validation | |-------|------|-------------|------------| | `base_url` | `AnyHttpUrl` | The base URL of the service. | Normalized to include `/api/v1` if missing. | | `name` | `string` | Friendly name for the connection. | Required. | | `status` | `string` | Connection status (connected, failed, etc.). | Read-only. | ### TaskLogMessage The structure of messages sent over the WebSocket for real-time logs. | Field | Type | Description | |-------|------|-------------| | `task_id` | `string` | Unique identifier for the task. | | `message` | `string` | The log message text. | | `timestamp` | `datetime` | When the log was generated. | | `level` | `string` | Log level (INFO, ERROR, etc.). | ## State Transitions ### Connection Validation 1. User inputs `base_url`. 2. System validates URL format. 3. System checks for `/api/v1` suffix. 4. If missing, system appends `/api/v1`. 5. System attempts connection and updates `status`.