24 lines
1.0 KiB
Python
24 lines
1.0 KiB
Python
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, Text
|
|
from sqlalchemy.orm import relationship
|
|
from app.db.database import Base
|
|
import datetime
|
|
|
|
class Evidence(Base):
|
|
__tablename__ = "evidences"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
activity_id = Column(Integer, ForeignKey("activities.id"), nullable=True)
|
|
non_conformity_id = Column(Integer, ForeignKey("non_conformities.id"), nullable=True)
|
|
|
|
file_path = Column(String, nullable=False)
|
|
media_type = Column(String) # image, video, document
|
|
description = Column(String)
|
|
captured_at = Column(DateTime, default=datetime.datetime.utcnow)
|
|
|
|
# Transcription fields for audio
|
|
transcription = Column(Text, nullable=True)
|
|
transcription_status = Column(String, default="none") # none, pending, processing, completed, error
|
|
|
|
activity = relationship("app.models.activity.Activity", back_populates="evidences")
|
|
non_conformity = relationship("app.models.non_conformity.NonConformity", back_populates="evidences")
|