35 lines
692 B
Python
35 lines
692 B
Python
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}
|