| 123456789101112131415161718192021222324252627282930313233 |
- from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, Text, text
- from sqlalchemy.dialects.postgresql import UUID
- from sqlalchemy.orm import relationship
- from sqlalchemy.sql import func
- from backend.app.db.base import Base
- class User(Base):
- __tablename__ = "users"
- id = Column(UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()"))
- name = Column(String, nullable=False)
- account = Column(String, unique=True, nullable=False)
- phone = Column(String)
- title = Column(String)
- avatar = Column(Text)
- external_user_id = Column(String)
- tenant_id = Column(String)
- tenant_name = Column(String)
- hosp_id = Column(String)
- hosp_name = Column(String)
- role_id = Column(UUID(as_uuid=True), ForeignKey("roles.id", ondelete="RESTRICT"), nullable=False)
- campus_id = Column(UUID(as_uuid=True), ForeignKey("campuses.id", ondelete="SET NULL"))
- dept_id = Column(UUID(as_uuid=True), ForeignKey("departments.id", ondelete="SET NULL"))
- status = Column(String, nullable=False, server_default="active")
- password_hash = Column(String, nullable=False)
- token_version = Column(Integer, nullable=False, server_default="1")
- created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
- updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now(), nullable=False)
- role = relationship("Role", lazy="joined")
- campus = relationship("Campus", lazy="joined")
- department = relationship("Department", lazy="joined")
|