42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
from typing import List, Optional, Union
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class CommandResponse(BaseModel):
|
|
"""Generic envelope returned for command-style endpoints — mirrors the
|
|
string the Telegram handler would have replied with, plus a parsed flag."""
|
|
ok: bool
|
|
message: str
|
|
|
|
|
|
class AddUserRequest(BaseModel):
|
|
username: str = Field(..., min_length=1)
|
|
|
|
|
|
class CreateGroupRequest(BaseModel):
|
|
name: str = Field(..., min_length=1)
|
|
description: Optional[str] = None
|
|
user_ids: Optional[List[int]] = None
|
|
full_admin: Optional[bool] = None
|
|
|
|
|
|
class AddUsersToGroupRequest(BaseModel):
|
|
user_ids: List[int] = Field(..., min_items=1)
|
|
|
|
|
|
class UserIdsRequest(BaseModel):
|
|
user_ids: List[Union[int, str]] = Field(..., min_items=1)
|
|
|
|
|
|
class QrBackupRequest(BaseModel):
|
|
qr_data: str = Field(..., min_length=1)
|
|
qr_group: Optional[str] = None
|
|
|
|
|
|
class QrGroupAssignmentRequest(BaseModel):
|
|
group_ids: List[Union[int, str]] = Field(..., min_items=1)
|
|
|
|
|
|
class QrSyncRequest(BaseModel):
|
|
qr_group: str = "default"
|