"""企微用户映射模型。""" from sqlalchemy import Column, Integer, String, Text, TIMESTAMP, func from insurance.db.compat import db class WeComUserMapping(db.Model): """企微用户与系统用户的映射关系。""" __tablename__ = "wecom_user_mapping" id = Column(Integer, primary_key=True, autoincrement=True) wecom_userid = Column(String(64), unique=True, nullable=False) internal_user_id = Column(String(64), nullable=False) username = Column(String(128)) email = Column(String(255)) real_name = Column(String(128)) email_verified = Column(String(16), default="false") department = Column(String(128)) role = Column(String(32), default="sales") status = Column(String(16), default="active") password_hash = Column(Text) created_at = Column(TIMESTAMP, server_default=func.now()) last_active_at = Column(TIMESTAMP) def to_dict(self): return { "id": str(self.id), "wecom_userid": self.wecom_userid, "internal_user_id": self.internal_user_id, "username": self.username, "email": self.email, "real_name": self.real_name, "email_verified": self.email_verified, "department": self.department, "role": self.role, "status": self.status, "created_at": str(self.created_at) if self.created_at else None, "last_active_at": str(self.last_active_at) if self.last_active_at else None, }