from __future__ import annotations from pydantic import BaseModel from datetime import datetime class User(BaseModel): id: str = "" telegram_id: int username: str | None = None invited_by: str | None = None has_invited_user: bool = False registered: bool = False status: str = "active" created_at: datetime | None = None last_activity: datetime | None = None class Invite(BaseModel): id: str = "" inviter_user_id: str invited_user_id: str | None = None code: str status: str = "pending" created_at: datetime | None = None class Channel(BaseModel): id: str = "" telegram_channel_id: int name: str is_required: bool = True created_at: datetime | None = None class Document(BaseModel): id: str = "" name: str file_path: str | None = None uploaded_by: str | None = None created_at: datetime | None = None status: str = "processing" class DocumentChunk(BaseModel): id: str = "" document_id: str text: str embedding: list[float] | None = None page_number: int | None = None chunk_index: int created_at: datetime | None = None class Log(BaseModel): id: str = "" type: str message: str user_id: str | None = None metadata: dict = {} created_at: datetime | None = None