Refactor API

This commit is contained in:
Lev 2026-04-16 00:07:48 +03:00
parent 9c813cdfbe
commit 8aa4828239
21 changed files with 731 additions and 363 deletions

20
API/schemas/config.py Normal file
View file

@ -0,0 +1,20 @@
from datetime import datetime
from pydantic import BaseModel, Field
class ConfigCreate(BaseModel):
name: str = Field(..., max_length=64)
class ConfigResponse(BaseModel):
name: str
config: str
created_at: datetime
bytes_used: int = 0
class Config:
from_attributes = True
class ConfigDelete(BaseModel):
name: str
class ConfigListResponse(BaseModel):
configs: list[ConfigResponse]

21
API/schemas/server.py Normal file
View file

@ -0,0 +1,21 @@
from datetime import datetime
from pydantic import BaseModel, Field
class ServerBase(BaseModel):
name: str = Field(max_length=64)
user: str = Field(max_length=64)
password: str = Field(max_length=64)
class ServerAdd(ServerBase):
port: int = Field(ge=1, le=65536)
code: str = Field(max_length=128)
inbound_id: int
class ServerDel(ServerBase):
pass
class ServerInfo(BaseModel):
id: int
name: str = Field(max_length=64)
code: str
created_at: datetime

21
API/schemas/user.py Normal file
View file

@ -0,0 +1,21 @@
from datetime import datetime
from pydantic import BaseModel, EmailStr, Field
class UserCreate(BaseModel):
email: EmailStr = Field(max_length=256)
password: str = Field(min_length=6, max_length=128)
promo_code: str | None = Field(default="", max_length=128)
class UserLogin(BaseModel):
email: EmailStr
password: str
class UserTokenRevoke(BaseModel):
token_to_revoke: str
class UserResponse(BaseModel):
id: int
email: EmailStr
created_at: datetime
access_token: str
token_type: str = "bearer"