feat: database models and Alembic migrations — User, Recording, Transcription, Protocol, PromptTemplate, ExportFile

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-03 22:03:20 +05:00
parent 296538b0ea
commit 5b92553148
14 changed files with 344 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
import enum
from sqlalchemy import Boolean, Enum, String, Text
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.models.base import Base, TimestampMixin, UUIDMixin
class TemplateType(str, enum.Enum):
client_survey = "client_survey"
client_intro = "client_intro"
internal = "internal"
custom = "custom"
class PromptTemplate(UUIDMixin, TimestampMixin, Base):
__tablename__ = "prompt_templates"
name: Mapped[str] = mapped_column(String(255))
description: Mapped[str] = mapped_column(String(1000), default="")
type: Mapped[TemplateType] = mapped_column(Enum(TemplateType))
system_prompt: Mapped[str] = mapped_column(Text)
user_prompt: Mapped[str] = mapped_column(Text)
output_schema: Mapped[dict] = mapped_column(JSONB, default=dict)
is_default: Mapped[bool] = mapped_column(Boolean, default=False)
protocols: Mapped[list["Protocol"]] = relationship(back_populates="template")