//! Stripe Tax toggle for creator accounts. use axum::{ Form, extract::State, response::{Html, IntoResponse, Response}, }; use serde::Deserialize; use sqlx::PgPool; use crate::{auth::AuthUser, db, error::Result, templates::SaveStatusTemplate}; #[derive(Debug, Deserialize)] pub(crate) 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(db): State, AuthUser(user): AuthUser, Form(form): Form, ) -> Result { let enabled = form.stripe_tax_enabled.as_deref() == Some("on"); db::users::update_stripe_tax_enabled(&db, user.id, enabled).await?; Ok(Html( SaveStatusTemplate { success: true, message: "Tax setting saved".to_string(), } .render_string()?, ) .into_response()) }