from sqlalchemy import create_engine, Column, Integer, String, DateTime, Float, JSON from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from datetime import datetime from config import DATABASE_URL, HISTORY_LIMIT Base = declarative_base() class Report(Base): __tablename__ = 'reports' id = Column(Integer, primary_key=True) report_id = Column(String, unique=True) defect_type = Column(String) description = Column(String) features = Column(JSON) created_at = Column(DateTime, default=datetime.utcnow) engine = create_engine(DATABASE_URL) Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) def save_report(report): session = Session() new_report = Report( report_id=report['编号'], defect_type=report['缺陷类型'], description=report['缺陷描述'], features=report['特征详情'] ) session.add(new_report) session.commit() session.close() def get_report_history(): session = Session() reports = session.query(Report).order_by( Report.created_at.desc()).limit(HISTORY_LIMIT).all() session.close() return reports