//! Stripe Tax toggle for creator accounts. use axum::{ extract::State, response::{Html, IntoResponse, Response}, Form, }; use serde::Deserialize; use crate::{ auth::AuthUser, db, error::Result, templates::SaveStatusTemplate, AppState, }; #[derive(Debug, Deserialize)] pub struct StripeTaxForm { pub stripe_tax_enabled: Option, } /// Toggle Stripe Tax for the authenticated creator. #[tracing::instrument(skip_all, name = "users::toggle_stripe_tax")] pub(in crate::routes::api) async fn toggle_stripe_tax( State(state): State, AuthUser(user): AuthUser, Form(form): Form, ) -> Result { let enabled = form.stripe_tax_enabled.as_deref() == Some("on"); db::users::update_stripe_tax_enabled(&state.db, user.id, enabled).await?; Ok(Html(SaveStatusTemplate { success: true, message: "Tax setting saved".to_string(), }.render_string()).into_response()) }