use axum::Json; use axum::extract::FromRef; use axum::extract::{Extension, State}; use erp_core::error::AppError; use erp_core::types::{ApiResponse, TenantContext}; use crate::dto::UpdateSubscriptionReq; use crate::message_state::MessageState; use crate::service::subscription_service::SubscriptionService; /// 更新消息订阅偏好。 pub async fn update_subscription( State(_state): State, Extension(ctx): Extension, Json(req): Json, ) -> Result>, AppError> where MessageState: FromRef, S: Clone + Send + Sync + 'static, { let resp = SubscriptionService::upsert(ctx.tenant_id, ctx.user_id, &req, &_state.db).await?; Ok(Json(ApiResponse::ok(resp))) }