package cn.novalon.gym.manage.member.service;

import cn.novalon.gym.manage.member.entity.RefundApplication;
import reactor.core.publisher.Mono;

/**
 * 退款申请服务接口
 * 
 * @author 付嘉
 * @date 2026-05-27
 */
public interface IRefundApplicationService {

    /**
     * 创建退款申请
     */
    Mono<RefundApplication> create(Long recordId, String reason);

    /**
     * 审核退款申请
     */
    Mono<RefundApplication> approve(Long applicationId, Long auditorId, String remark);

    /**
     * 拒绝退款申请
     */
    Mono<RefundApplication> reject(Long applicationId, Long auditorId, String remark);

    /**
     * 根据记录ID查询申请
     */
    Mono<RefundApplication> findByRecordId(Long recordId);
}
