usermod/CrudModel/AllowedEmail.py

53 lines
1.3 KiB
Python
Raw Permalink Normal View History

2023-02-20 10:20:22 +08:00
from typing import Union
from sqlalchemy import Column, String, Integer, Boolean
from pydantic import BaseModel
from Utils.CrudUtils import CRUDBase, QueryBase
from Utils.SqlAlchemyUtils import Base
class AllowedEmailCreate(BaseModel):
email: str
allowed: bool
class AllowedEmail(AllowedEmailCreate):
id: int
class AllowedEmailId(BaseModel):
id: int
class AllowedEmailQuery(QueryBase):
id: Union[int, None]
email: Union[str, None]
allowed: Union[bool, None]
class AllowedEmailUpdate(BaseModel):
id: int
email: Union[str, None]
allowed: Union[bool, None]
class AllowedEmailModel(Base):
__tablename__ = 'ALLOWED_EMAIL_TABLE'
id = Column(Integer, primary_key=True, index=True)
email = Column(String(255), unique=True)
allowed = Column(Boolean)
def to_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class AllowedEmailCrud(
CRUDBase[
AllowedEmailModel, AllowedEmail, AllowedEmailCreate, AllowedEmailId, AllowedEmailUpdate, AllowedEmailQuery]):
pass
allowed_email_crud = AllowedEmailCrud(AllowedEmailModel, AllowedEmail, AllowedEmailId, AllowedEmailCreate,
AllowedEmailUpdate,
AllowedEmailQuery, "allowed_email", '注册邮箱域名')