28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
"""Review Event model - хранение событий процесса review"""
|
|
|
|
from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey, JSON
|
|
from sqlalchemy.orm import relationship
|
|
from datetime import datetime
|
|
|
|
from app.database import Base
|
|
|
|
|
|
class ReviewEvent(Base):
|
|
"""Событие процесса review"""
|
|
__tablename__ = "review_events"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
review_id = Column(Integer, ForeignKey("reviews.id", ondelete="CASCADE"), nullable=False, index=True)
|
|
event_type = Column(String(50), nullable=False) # agent_step, llm_message, review_started, etc.
|
|
step = Column(String(100), nullable=True) # fetch_pr_info, analyze_files, etc.
|
|
message = Column(Text, nullable=True)
|
|
data = Column(JSON, nullable=True) # Дополнительные данные события
|
|
created_at = Column(DateTime, default=datetime.utcnow, nullable=False, index=True)
|
|
|
|
# Relationships
|
|
review = relationship("Review", back_populates="events")
|
|
|
|
def __repr__(self):
|
|
return f"<ReviewEvent(id={self.id}, review_id={self.review_id}, type={self.event_type})>"
|
|
|