Add notification sender and update item routes

This commit is contained in:
2025-10-06 01:03:52 +08:00
parent cd35c6fbed
commit a71cde7b82
12 changed files with 243 additions and 107 deletions

View File

@@ -196,5 +196,6 @@ class UUIDTableBase(TableBase):
"""override"""
@override
@classmethod
async def get_exist_one(cls: Type[T], session: AsyncSession, id: uuid.UUID, load: Union[Relationship, None] = None) -> T:
return super().get_exist_one(session, id, load) # type: ignore
return await super().get_exist_one(session, id, load)

View File

@@ -1,6 +1,6 @@
from datetime import datetime
from enum import StrEnum
from typing import TYPE_CHECKING, Self, Optional
from typing import TYPE_CHECKING, Optional
from uuid import UUID
from sqlmodel import Field, Relationship
@@ -52,12 +52,19 @@ class Item(ItemBase, UUIDTableBase, table=True):
user: 'User' = Relationship(back_populates='items')
parent_item_id: UUID | None = Field(foreign_key='item.id', ondelete='RESTRICT')
parent_item_id: UUID | None = Field(foreign_key='item.id', ondelete='RESTRICT', default=None)
parent_item: Optional['Item'] = Relationship(back_populates='sub_items', sa_relationship_kwargs={'remote_side': 'Item.id'})
sub_items: list['Item'] = Relationship(back_populates='parent_item', passive_deletes='all')
class ItemDataUpdateRequest(ItemBase):
pass
type: ItemTypeEnum | None = None
"""物品的类型"""
name: str | None = None
"""物品名称"""
status: ItemStatusEnum | None = None
"""物品状态"""
class ItemDataResponse(ItemBase):
expires_at: datetime | None = None

View File

@@ -4,9 +4,11 @@ from .user import User, UserTypeEnum
from pkg import Password
default_settings: list[Setting] = [
Setting(type='string', name='version', value='2.0.0'), # 版本号,用于考虑是否需要数据迁移
Setting(type='int', name='jwt_token_exp', value='30'), # JWT Token 访问令牌
Setting(type='string', name='server_chan_key', value=''), # Server 酱推送密钥
Setting(type='string', name='version', value='2.0.0'), # 版本号,用于考虑是否需要数据迁移
Setting(type='int', name='jwt_token_exp', value='30'), # JWT Token 访问令牌
Setting(type='int', name='mentioned_channel', value='wechat_bot'), # 通知推送通道
Setting(type='string', name='server_chan_key', value=''), # Server 酱推送密钥
Setting(type='string', name='wechat_bot_key', value=''), # 企业微信机器人推送密钥
]
async def migration(session):

View File

@@ -1,10 +1,11 @@
from datetime import datetime
from pydantic import BaseModel
from model.base import SQLModelBase
class DefaultResponse(BaseModel):
code: int = 0
data: dict | list | bool | None
data: dict | list | bool | SQLModelBase | None = None
msg: str = ""
# FastAPI 鉴权返回模型