File size: 839 Bytes
aac350d
 
 
 
 
 
23d337e
aac350d
 
 
 
 
 
 
23d337e
 
aac350d
 
 
 
 
 
 
 
23d337e
aac350d
 
 
 
 
 
 
23d337e
aac350d
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"""API response wrapper models."""

from __future__ import annotations

from typing import Any, List, Optional

from pydantic import BaseModel, Field


class APIResponse(BaseModel):
    """Standard envelope for successful responses."""
    success: bool = True
    data: Any
    message: str = ""
    request_id: Optional[str] = None
    timestamp: Optional[str] = None


class PaginatedResponse(BaseModel):
    success: bool = True
    data: List[Any]
    total: int
    page: int = 1
    page_size: int = 50
    request_id: Optional[str] = None


class ErrorResponse(BaseModel):
    success: bool = False
    error: str
    error_type: str = ""
    details: Optional[dict] = None
    request_id: Optional[str] = None


class HealthResponse(BaseModel):
    status: str
    version: str
    providers: List[dict]
    uptime_seconds: float