Initial commit

This commit is contained in:
2025-11-19 22:54:33 +07:00
commit 8f5b984598
18 changed files with 761 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
from datetime import datetime
from sqlalchemy import Column, Integer, String, DateTime, Enum as SQLEnum
from app.infrastructure import Base
import enum
class CallDirectionEnum(str, enum.Enum):
in_ = "in"
out = "out"
class CallEvent(Base):
"""Модель для хранения событий звонков"""
__tablename__ = "call_events"
id = Column(Integer, primary_key=True, index=True)
event_type = Column(String, nullable=False)
call_session_id = Column(String, unique=True, index=True, nullable=False)
direction = Column(SQLEnum(CallDirectionEnum), nullable=False)
employee_id = Column(Integer, nullable=False, index=True)
employee_full_name = Column(String, nullable=False)
contact_phone_number = Column(String, nullable=False)
called_phone_number = Column(String, nullable=False)
communication_group_name = Column(String)
start_time = Column(DateTime, nullable=False)
finish_time = Column(DateTime, nullable=False)
talk_time_duration = Column(Integer, nullable=False)
full_record_file_link = Column(String, nullable=False)
campaign_name = Column(String)
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
def __repr__(self):
return f"<CallEvent(id={self.id}, call_session_id={self.call_session_id})>"