import asyncio from app.core.database import AsyncSessionLocal, Base, engine from app.models.ticket import Ticket from sqlalchemy import String, ForeignKey, UniqueConstraint from sqlalchemy.orm import Mapped, mapped_column, relationship from app.core.database import GUID import uuid # Agregar modelo al archivo ticket.py new_model = ''' class TicketParticipant(Base): """Participantes asignados a un ticket""" __tablename__ = "ticket_participants" ticket_id: Mapped[uuid.UUID] = mapped_column( GUID(), ForeignKey("tickets.id", ondelete="CASCADE"), nullable=False ) user_id: Mapped[uuid.UUID] = mapped_column( GUID(), ForeignKey("users.id", ondelete="CASCADE"), nullable=False ) role: Mapped[str] = mapped_column(String(50), nullable=False, default="participant") ticket: Mapped["Ticket"] = relationship("Ticket", back_populates="participants") user: Mapped["User"] = relationship("User") __table_args__ = ( UniqueConstraint("ticket_id", "user_id", name="uq_ticket_participant"), ) def __repr__(self): return f"" ''' with open("/app/app/models/ticket.py", "r") as f: content = f.read() if "TicketParticipant" in content: print("Ya existe TicketParticipant") else: content += new_model with open("/app/app/models/ticket.py", "w") as f: f.write(content) print("OK: TicketParticipant agregado")