| 12345678910111213141516171819202122232425262728293031 |
- from datetime import datetime
- from app import db
- class Report(db.Model):
- """Report model for generated Word documents"""
- __tablename__ = 'reports'
-
- id = db.Column(db.Integer, primary_key=True)
- task_id = db.Column(db.Integer, db.ForeignKey('tasks.id'), nullable=False, unique=True)
- file_name = db.Column(db.String(255), nullable=False)
- file_path = db.Column(db.String(500), nullable=False)
- file_size = db.Column(db.Integer)
- created_at = db.Column(db.DateTime, default=datetime.utcnow, index=True)
-
- # Relationships
- task = db.relationship('Task', back_populates='report')
-
- def to_dict(self) -> dict:
- """Convert report to dictionary"""
- return {
- 'id': self.id,
- 'task_id': self.task_id,
- 'file_name': self.file_name,
- 'file_size': self.file_size,
- 'created_at': self.created_at.isoformat() if self.created_at else None,
- 'download_url': f'/api/reports/download?id={self.id}'
- }
-
- def __repr__(self):
- return f'<Report {self.id} {self.file_name}>'
|