parse_models.py 1.7 KB

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