feat(fase4): add FlowTemplate model and API

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Claude AI
2026-01-29 11:10:54 +00:00
parent 835c4aa387
commit b8d97e2557
5 changed files with 142 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ from app.models.flow import Flow, FlowSession, TriggerType
from app.models.queue import Queue, QueueAgent, AssignmentMethod
from app.models.quick_reply import QuickReply
from app.models.global_variable import GlobalVariable
from app.models.flow_template import FlowTemplate
__all__ = [
"User",
@@ -19,4 +20,5 @@ __all__ = [
"AssignmentMethod",
"QuickReply",
"GlobalVariable",
"FlowTemplate",
]

View File

@@ -0,0 +1,21 @@
import uuid
from datetime import datetime
from sqlalchemy import Column, String, Text, DateTime, Boolean, ForeignKey
from sqlalchemy.dialects.postgresql import UUID, JSONB
from app.core.database import Base
class FlowTemplate(Base):
__tablename__ = "flow_templates"
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
name = Column(String(100), nullable=False)
description = Column(Text, nullable=True)
category = Column(String(50), default="general", nullable=False)
nodes = Column(JSONB, default=list)
edges = Column(JSONB, default=list)
variables = Column(JSONB, default=dict)
preview_image = Column(String(500), nullable=True)
is_public = Column(Boolean, default=True, nullable=False)
created_by = Column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=False)
created_at = Column(DateTime, default=datetime.utcnow, nullable=False)