initial commit

This commit is contained in:
2026-02-12 18:45:10 +01:00
commit be7bbba456
42 changed files with 3767 additions and 0 deletions

86
backend/app/schemas.py Normal file
View File

@@ -0,0 +1,86 @@
"""FluentGerman.ai — Pydantic request/response schemas."""
from datetime import datetime
from pydantic import BaseModel, EmailStr
# ── Auth ──────────────────────────────────────────────────────────────
class Token(BaseModel):
access_token: str
token_type: str = "bearer"
class LoginRequest(BaseModel):
username: str
password: str
# ── User ──────────────────────────────────────────────────────────────
class UserCreate(BaseModel):
username: str
email: EmailStr
password: str
class UserUpdate(BaseModel):
username: str | None = None
email: EmailStr | None = None
password: str | None = None
is_active: bool | None = None
class UserOut(BaseModel):
id: int
username: str
email: str
is_admin: bool
is_active: bool
created_at: datetime
model_config = {"from_attributes": True}
# ── Instruction ───────────────────────────────────────────────────────
class InstructionCreate(BaseModel):
user_id: int | None = None
title: str
content: str
type: str = "personal" # global | personal | homework
class InstructionUpdate(BaseModel):
title: str | None = None
content: str | None = None
type: str | None = None
class InstructionOut(BaseModel):
id: int
user_id: int | None
title: str
content: str
type: str
created_at: datetime
model_config = {"from_attributes": True}
# ── Chat ──────────────────────────────────────────────────────────────
class ChatMessage(BaseModel):
role: str # "user" | "assistant"
content: str
class ChatRequest(BaseModel):
message: str
history: list[ChatMessage] = []
# ── Voice / Admin ────────────────────────────────────────────────────
class VoiceInstructionRequest(BaseModel):
raw_text: str
class VoiceConfigOut(BaseModel):
voice_mode: str # "api" | "browser"