53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
|
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", '注册邮箱域名')
|
||
|
|