Malware-detection / app /models /analysis.py
kumar-aditya's picture
Upload 60 files
c8f4a46 verified
Raw
History Blame Contribute Delete
1.05 kB
"""
SQLAlchemy analysis model (Phase 5).
"""
import uuid
from datetime import datetime, timezone
from sqlalchemy import Column, DateTime, ForeignKey, String, Text
from sqlalchemy.dialects.sqlite import JSON as SQLiteJSON
from sqlalchemy.types import JSON
from app.core.db import Base, engine
def _new_id() -> str:
return f"an_{uuid.uuid4().hex[:12]}"
# Handle JSON fallback for SQLite vs Postgres
JsonType = SQLiteJSON if engine.url.drivername == "sqlite" else JSON
class AnalysisRecord(Base):
__tablename__ = "analyses"
id = Column(String, primary_key=True, default=_new_id)
resume_id = Column(String, ForeignKey("resumes.id", ondelete="CASCADE"), nullable=False, index=True)
session_id = Column(String, index=True, nullable=False)
job_description = Column(Text, nullable=False)
target_role = Column(String, nullable=False)
result = Column(JsonType, nullable=False)
created_at = Column(
DateTime(timezone=True),
default=lambda: datetime.now(timezone.utc),
nullable=False
)