# Copyright 2026 zhaoxi826 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from enum import IntEnum from sqlalchemy import String, Integer, text from sqlalchemy.orm import Mapped, mapped_column from .base import BaseDataModel class UserAuthority(IntEnum): """ 权限枚举类 """ SUPER_ADMINISTRATOR = 100 ADMINISTRATOR = 50 USER = 20 UNAUTHORIZED_USER = 10 GUEST = 0 class User(BaseDataModel): """ 数据库user表模型 """ __tablename__ = "user" user_id: Mapped[str] = mapped_column(String(64), primary_key=True) user_name: Mapped[str] = mapped_column(String(100), index=True, nullable=False) hashed_password: Mapped[str] = mapped_column(String(255), nullable=False) user_authority: Mapped[UserAuthority] = mapped_column( Integer, default=UserAuthority.USER, server_default=text("20") )