import { request } from '@/utils/request' /** 周期模板 */ export interface RecurringTemplate { id: number user_id: number amount: number type: 'expense' | 'income' category_id: number note: string frequency: 'weekly' | 'monthly' | 'yearly' next_date: string end_date: string | null is_active: number group_id: number | null category_name?: string category_icon?: string category_color?: string created_at: string updated_at: string } /** 获取周期模板列表 */ export function getRecurringTemplates() { return request({ url: '/recurring' }) } /** 创建周期模板 */ export function createRecurringTemplate(data: { amount: number type: 'expense' | 'income' category_id: number note?: string frequency: 'weekly' | 'monthly' | 'yearly' next_date: string end_date?: string | null group_id?: number | null }) { return request<{ id: number }>({ url: '/recurring', method: 'POST', data }) } /** 更新周期模板 */ export function updateRecurringTemplate(id: number, data: { amount?: number type?: 'expense' | 'income' category_id?: number note?: string frequency?: 'weekly' | 'monthly' | 'yearly' next_date?: string end_date?: string | null is_active?: number }) { return request({ url: `/recurring/${id}`, method: 'PUT', data }) } /** 删除周期模板 */ export function deleteRecurringTemplate(id: number) { return request({ url: `/recurring/${id}`, method: 'DELETE' }) } /** 同步周期账单(生成到期交易) */ export function syncRecurring() { return request<{ generated: number }>({ url: '/recurring/sync', method: 'POST' }) }