// 账单关系相关 API 接口:账单之间父子/同级关系的查询与维护 import request from './request' /** 关系组内角色:PARENT-父账单,CHILD-子账单,MEMBER-成员 */ export type TransactionGroupRole = 'PARENT' | 'CHILD' | 'MEMBER' /** 关系类型:PARENT_CHILD-父子,SIBLING-同级 */ export type TransactionRelationType = 'PARENT_CHILD' | 'SIBLING' /** 关系组成员(含关联账单的展示快照) */ export interface TransactionGroupItem { transactionId: number role: TransactionGroupRole sortOrder: number type: string amount: number channel: string remark: string remarkHidden: boolean transactionTime: string categoryName: string categoryIcon: string } /** 账单关系组 */ export interface TransactionGroup { id: number type: TransactionRelationType name: string remark: string createdAt: string updatedAt: string items: TransactionGroupItem[] } /** 关系组成员提交项 */ export interface TransactionGroupItemPayload { transactionId: number role?: TransactionGroupRole sortOrder?: number } /** 关系组成员草稿(前端编辑用,含账单展示快照) */ export interface RelationMemberDraft { transactionId: number type: string amount: number channel: string remark: string transactionTime: string categoryName: string categoryIcon: string } /** 关系组提交数据 */ export interface TransactionGroupPayload { type: TransactionRelationType name?: string remark?: string items: TransactionGroupItemPayload[] } /** 查询某笔账单所属的全部关系组 */ export function getGroupsByTransaction(transactionId: number) { return request.get(`/transaction/group/by-transaction/${transactionId}`) } /** 查询关系名称历史(可选按关系类型过滤),返回按最近使用排序的名称列表 */ export function getGroupNames(type?: string) { return request.get('/transaction/group/names', { params: type ? { type } : {} }) } /** 创建账单关系组,返回新建关系组ID */ export function createTransactionGroup(data: TransactionGroupPayload) { return request.post('/transaction/group', data) } /** 更新账单关系组 */ export function updateTransactionGroup(id: number, data: TransactionGroupPayload) { return request.put(`/transaction/group/${id}`, data) } /** 删除账单关系组(仅解除关联,不删除账单) */ export function deleteTransactionGroup(id: number) { return request.delete(`/transaction/group/${id}`) }