parse_models.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334
  1. from app import db
  2. from datetime import datetime
  3. class ParseTaskRepository(db.Model):
  4. __tablename__ = 'parse_task_repository'
  5. id = db.Column(db.Integer, primary_key=True, autoincrement=True)
  6. task_name = db.Column(db.String(100), nullable=False)
  7. task_status = db.Column(db.String(10), nullable=False)
  8. task_type = db.Column(db.String(50), nullable=False)
  9. task_source = db.Column(db.JSON, nullable=False) # Changed to JSON to match jsonb
  10. collection_count = db.Column(db.Integer, default=0, nullable=False)
  11. parse_count = db.Column(db.Integer, default=0, nullable=False)
  12. parse_result = db.Column(db.JSON) # Changed to JSON to match jsonb
  13. created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) # Changed to utcnow to match CURRENT_TIMESTAMP
  14. created_by = db.Column(db.String(50), nullable=False)
  15. updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False) # Changed to utcnow
  16. updated_by = db.Column(db.String(50), nullable=False)
  17. def to_dict(self):
  18. return {
  19. 'id': self.id,
  20. 'task_name': self.task_name,
  21. 'task_status': self.task_status,
  22. 'task_type': self.task_type,
  23. 'task_source': self.task_source,
  24. 'collection_count': self.collection_count,
  25. 'parse_count': self.parse_count,
  26. 'parse_result': self.parse_result,
  27. 'created_at': self.created_at.strftime('%Y-%m-%d %H:%M:%S') if self.created_at else None,
  28. 'created_by': self.created_by,
  29. 'updated_at': self.updated_at.strftime('%Y-%m-%d %H:%M:%S') if self.updated_at else None,
  30. 'updated_by': self.updated_by
  31. }