Init first files
This commit is contained in:
1
backend/app/schemas/__init__.py
Normal file
1
backend/app/schemas/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
16
backend/app/schemas/auth.py
Normal file
16
backend/app/schemas/auth.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from pydantic import BaseModel, EmailStr
|
||||
|
||||
|
||||
class LoginRequest(BaseModel):
|
||||
email: EmailStr
|
||||
password: str
|
||||
|
||||
|
||||
class RefreshRequest(BaseModel):
|
||||
refresh_token: str
|
||||
|
||||
|
||||
class TokenResponse(BaseModel):
|
||||
access_token: str
|
||||
refresh_token: str
|
||||
token_type: str = "bearer"
|
||||
19
backend/app/schemas/metric.py
Normal file
19
backend/app/schemas/metric.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class MetricOut(BaseModel):
|
||||
ts: datetime
|
||||
metric_name: str
|
||||
value: float
|
||||
labels: dict
|
||||
|
||||
|
||||
class QueryStatOut(BaseModel):
|
||||
ts: datetime
|
||||
queryid: str
|
||||
calls: int
|
||||
total_time: float
|
||||
mean_time: float
|
||||
rows: int
|
||||
query_text: str | None
|
||||
34
backend/app/schemas/target.py
Normal file
34
backend/app/schemas/target.py
Normal file
@@ -0,0 +1,34 @@
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class TargetBase(BaseModel):
|
||||
name: str
|
||||
host: str
|
||||
port: int = 5432
|
||||
dbname: str
|
||||
username: str
|
||||
sslmode: str = "prefer"
|
||||
tags: dict = Field(default_factory=dict)
|
||||
|
||||
|
||||
class TargetCreate(TargetBase):
|
||||
password: str
|
||||
|
||||
|
||||
class TargetUpdate(BaseModel):
|
||||
name: str | None = None
|
||||
host: str | None = None
|
||||
port: int | None = None
|
||||
dbname: str | None = None
|
||||
username: str | None = None
|
||||
password: str | None = None
|
||||
sslmode: str | None = None
|
||||
tags: dict | None = None
|
||||
|
||||
|
||||
class TargetOut(TargetBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
23
backend/app/schemas/user.py
Normal file
23
backend/app/schemas/user.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel, EmailStr
|
||||
|
||||
|
||||
class UserOut(BaseModel):
|
||||
id: int
|
||||
email: EmailStr
|
||||
role: str
|
||||
created_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class UserCreate(BaseModel):
|
||||
email: EmailStr
|
||||
password: str
|
||||
role: str = "viewer"
|
||||
|
||||
|
||||
class UserUpdate(BaseModel):
|
||||
email: EmailStr | None = None
|
||||
password: str | None = None
|
||||
role: str | None = None
|
||||
Reference in New Issue
Block a user