1234567891011121314151617181920212223242526272829303132 |
- import enum
- from sqlalchemy import func
- from sqlalchemy.orm import Mapped, mapped_column
- from .engine import db
- from .types import StringUUID
- class DeptStatus(enum.StrEnum):
- ACTIVE = "active"
- CLOSED = "closed"
- class Dept(db.Model):
- __tablename__ = "dept"
- __table_args__ = (
- db.PrimaryKeyConstraint("dept_id", name="dept_pkey"),
- )
- dept_id: Mapped[str] = mapped_column(StringUUID, server_default=db.text("uuid_generate_v4()"))
- dept_name = db.Column(db.String(255), nullable=False)
- parent_dept_id = db.Column(db.String(255))
- timezone = db.Column(db.String(255))
- status = db.Column(db.String(16), nullable=False, server_default=db.text("'active'::character varying"))
- created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
- updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
- def get_status(self) -> DeptStatus:
- status_str = self.status
- return DeptStatus(status_str)
|