export type GetApiApiFurusatoLimitArgs = {annual_income_jpy: number, marital_status?: ('single' | 'married') | undefined, partner_income_jpy?: number | undefined, dependents_adult?: number | undefined, dependents_elderly?: number | undefined, dependents_university?: number | undefined, dependents_minor?: number | undefined, social_insurance_jpy?: number | undefined, other_deductions_jpy?: number | undefined, income_type?: ('salary' | 'self_employed') | undefined}; export type GetApiApiFurusatoLimitOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; /** * 控除上限額シミュレーション (GET — querystring) * * GET /api/furusato/limit */ export const getApiApiFurusatoLimit = async (args: GetApiApiFurusatoLimitArgs, options?: GetApiApiFurusatoLimitOptions) => { const {baseUrl = "https://localgov.jp", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() if (args.annual_income_jpy != null) query.append("annual_income_jpy", String(args.annual_income_jpy)) if (args.marital_status != null) query.append("marital_status", String(args.marital_status)) if (args.partner_income_jpy != null) query.append("partner_income_jpy", String(args.partner_income_jpy)) if (args.dependents_adult != null) query.append("dependents_adult", String(args.dependents_adult)) if (args.dependents_elderly != null) query.append("dependents_elderly", String(args.dependents_elderly)) if (args.dependents_university != null) query.append("dependents_university", String(args.dependents_university)) if (args.dependents_minor != null) query.append("dependents_minor", String(args.dependents_minor)) if (args.social_insurance_jpy != null) query.append("social_insurance_jpy", String(args.social_insurance_jpy)) if (args.other_deductions_jpy != null) query.append("other_deductions_jpy", String(args.other_deductions_jpy)) if (args.income_type != null) query.append("income_type", String(args.income_type)) const url = `${baseUrl.replace(/\/+$/, '')}/api/furusato/limit${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return undefined };