49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
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"<TicketParticipant(ticket={self.ticket_id}, user={self.user_id})>"
|
|
'''
|
|
|
|
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")
|