namespace CashLineERP.Application.Finance;

public interface ICustomerRefundRepository
{
    IReadOnlyCollection<CustomerRefundDetailView> GetRefunds(long? customerId = null);

    CustomerRefundDetailView? GetRefund(long customerRefundId);

    CustomerRefundDetailView Create(CreateCustomerRefundCommand command);

    CustomerRefundDetailView Submit(long customerRefundId, long actorUserId);

    CustomerRefundDetailView Approve(long customerRefundId, long actorUserId);

    CustomerRefundDetailView Return(long customerRefundId, long actorUserId, string reviewNotes);

    CustomerRefundDetailView Reject(long customerRefundId, long actorUserId, string reviewNotes);

    CustomerRefundDetailView Post(long customerRefundId, long actorUserId);
}
