label_model.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from datetime import datetime
  2. from typing import Optional
  3. from pydantic import BaseModel, constr
  4. from sqlalchemy import Column, Integer, String, DateTime, Table, ForeignKey, UniqueConstraint
  5. from sqlalchemy.orm import relationship, backref
  6. from app.models.base_model import Base
  7. class LabelModel(Base):
  8. __tablename__ = 'label'
  9. id = Column(Integer, primary_key=True, index=True)
  10. created_at = Column(DateTime, default=datetime.now())
  11. updated_at = Column(DateTime, default=datetime.now(), onupdate=datetime.now())
  12. name = Column(String(128), unique=True, nullable=False, index=True)
  13. status = Column(String(10), default="1")
  14. creator = Column(Integer)
  15. label_type = Column(Integer, default=1)
  16. def to_json(self):
  17. return {
  18. 'labelId': self.id,
  19. 'labelName': self.name,
  20. 'labelType': self.label_type
  21. }
  22. class LabelWorkerModel(Base):
  23. __tablename__ = 'label_worker'
  24. __table_args__ = (UniqueConstraint('label_id', 'object_id', name='label_object_id_ix'),)
  25. id = Column(Integer, primary_key=True, index=True)
  26. label_id = Column(Integer)
  27. object_id = Column(String(36))
  28. class LabelData(BaseModel):
  29. labelName: str
  30. labelType: Optional[int] = 1
  31. class SignLabelData(BaseModel):
  32. labelIdList: list
  33. objectId:str