support-bot-saas/backend/app/models/schemas.py
ed0ss 0063df0a87
Some checks are pending
CI / lint-backend (push) Waiting to run
CI / lint-frontend (push) Waiting to run
CI / build-backend (push) Blocked by required conditions
CI / build-frontend (push) Blocked by required conditions
Реструктуризация проекта в SaaS: FastAPI бэкенд, React SPA фронтенд, Helm-чарт, CI/CD
- Бэкенд: FastAPI + SQLAlchemy async + PostgreSQL, JWT-аутентификация,
  Qdrant multi-tenant векторное хранилище, Celery воркер
- Фронтенд: React + Vite + TypeScript SPA (логин, регистрация,
  дашборд, поиск по коллекциям, настройки)
- Инфраструктура: docker-compose, Helm-чарт, GitHub Actions CI,
  Prometheus/Grafana мониторинг
- Embedding через OpenRouter (nvidia/llama-nemotron-embed-vl-1b-v2:free)
- LLM: google/gemma-4-31b-it:free через OpenRouter
2026-06-20 17:40:27 +03:00

66 lines
1.1 KiB
Python

import uuid
from datetime import datetime
from pydantic import BaseModel, EmailStr
class RegisterRequest(BaseModel):
email: EmailStr
password: str
class LoginRequest(BaseModel):
email: EmailStr
password: str
class TokenResponse(BaseModel):
access_token: str
token_type: str = "bearer"
class UserResponse(BaseModel):
id: uuid.UUID
email: str
api_key: str
plan: str
created_at: datetime
model_config = {"from_attributes": True}
class CollectionCreate(BaseModel):
name: str
class CollectionResponse(BaseModel):
id: uuid.UUID
user_id: uuid.UUID
name: str
ticket_count: int
created_at: datetime
model_config = {"from_attributes": True}
class TicketMessage(BaseModel):
role: str
text: str
class TicketInput(BaseModel):
ticket_id: str
category: str = ""
description: str = ""
client: str = ""
messages: list[TicketMessage] = []
class TicketsUpload(BaseModel):
tickets: list[TicketInput]
class TicketsUploadResponse(BaseModel):
processed: int
skipped: int
collection_ticket_count: int