PamGram/core/sign/models.py

27 lines
1015 B
Python

import enum
from datetime import datetime
from typing import Optional
from sqlalchemy import func
from sqlmodel import SQLModel, Field, Enum, Column, DateTime
class SignStatusEnum(int, enum.Enum):
STATUS_SUCCESS = 0 # 签到成功
INVALID_COOKIES = 1 # Cookie无效
ALREADY_CLAIMED = 2 # 已经获取奖励
NEED_CHALLENGE = 3 # 需要验证码
GENSHIN_EXCEPTION = 4 # API异常
TIMEOUT_ERROR = 5 # 请求超时
BAD_REQUEST = 6 # 请求失败
FORBIDDEN = 7 # 这错误一般为通知失败 机器人被用户BAN
class Sign(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
user_id: int = Field()
chat_id: int = Field()
time_created: Optional[datetime] = Field(sa_column=Column(DateTime(timezone=True), server_default=func.now()))
time_updated: Optional[datetime] = Field(sa_column=Column(DateTime(timezone=True), onupdate=func.now()))
status: Optional[SignStatusEnum] = Field(sa_column=Column(Enum(SignStatusEnum)))