Spaces:
Running
Running
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, JSON, Text, Enum | |
from sqlalchemy.ext.declarative import declarative_base | |
from sqlalchemy.orm import relationship | |
from datetime import datetime | |
import enum | |
Base = declarative_base() | |
class DocumentType(enum.Enum): | |
PDF = "pdf" | |
DOCX = "docx" | |
IMAGE = "image" | |
TEXT = "text" | |
class Document(Base): | |
__tablename__ = "documents" | |
id = Column(Integer, primary_key=True) | |
filename = Column(String(255), nullable=False) | |
file_type = Column(Enum(DocumentType), nullable=False) | |
content = Column(Text) | |
metadata = Column(JSON) | |
created_at = Column(DateTime, default=datetime.utcnow) | |
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) | |
test_cases = relationship("TestCase", back_populates="document") | |
class TestCase(Base): | |
__tablename__ = "test_cases" | |
id = Column(Integer, primary_key=True) | |
document_id = Column(Integer, ForeignKey("documents.id")) | |
title = Column(String(255), nullable=False) | |
description = Column(Text) | |
steps = Column(JSON) | |
expected_results = Column(JSON) | |
priority = Column(Integer) | |
status = Column(String(50)) | |
created_at = Column(DateTime, default=datetime.utcnow) | |
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) | |
document = relationship("Document", back_populates="test_cases") | |
test_scripts = relationship("TestScript", back_populates="test_case") | |
class TestScript(Base): | |
__tablename__ = "test_scripts" | |
id = Column(Integer, primary_key=True) | |
test_case_id = Column(Integer, ForeignKey("test_cases.id")) | |
language = Column(String(50)) | |
code = Column(Text) | |
framework = Column(String(50)) | |
created_at = Column(DateTime, default=datetime.utcnow) | |
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) | |
test_case = relationship("TestCase", back_populates="test_scripts") | |
class AIModelInteraction(Base): | |
__tablename__ = "ai_model_interactions" | |
id = Column(Integer, primary_key=True) | |
provider = Column(String(50), nullable=False) | |
model = Column(String(100), nullable=False) | |
prompt = Column(Text, nullable=False) | |
response = Column(Text) | |
metrics = Column(JSON) | |
created_at = Column(DateTime, default=datetime.utcnow) | |
def __repr__(self): | |
return f"<AIModelInteraction(provider={self.provider}, model={self.model})>" |