feat(card): 卡片展示/隐藏调整为批量接口

This commit is contained in:
xingc
2025-04-28 14:56:20 +08:00
parent eec6b00685
commit 9f91cbe0d3
2 changed files with 10 additions and 5 deletions

View File

@@ -274,19 +274,19 @@ async def update_card_price_info(
return {'message': 'ok' if result is not None else 'fail'}
@card_router.post('/{card_id}/display/', summary='卡片展示/隐藏', response_model=base_schema.BaseResponse)
@card_router.post('/display/', summary='卡片展示/隐藏', response_model=base_schema.BaseResponse)
async def display_card_status(
card_id: int,
action: Literal['displayed', 'undisplayed'],
payload: schema.DisplayCardIn,
login_user: LoginUser = Depends(get_current_user_form_http),
db_session: AsyncSession = Depends(get_async_session)
):
db_crud = CRUD(db_session, UserCollection)
result = await db_crud.update(
result = await db_crud.updates(
data={
'displayed': (action == 'displayed'),
},
filters={'card_id': card_id, 'user_id': login_user.user_id}
filters={'card_id__in': payload.card_ids, 'user_id': login_user.user_id}
)
return {'message': 'ok' if result is not None else 'fail'}

View File

@@ -49,7 +49,7 @@ class Card(BaseModel):
class CardIn(Card):
category: CardCategoryType
source: PlatformSourceType
diy_source: Optional[str] = None
diy_source: Optional[constr(max_length=50)] = None
reward: Optional[bool] = False
@@ -71,8 +71,13 @@ class CardOut(CardVisitOut):
card_year: str | None
purchase_price: Optional[condecimal(max_digits=10, decimal_places=2)] = None
display_price: Optional[condecimal(max_digits=10, decimal_places=2)] = None
displayed: Optional[bool] = True
diy_source: Optional[str] = None
class DisplayCardIn(BaseModel):
card_ids: list[int]
class DeleteCardIn(BaseModel):
card_ids: list[int]