package com.seer.teach.pay.admin.withdrawal.service;

import com.seer.teach.common.PageListBean;
import com.seer.teach.pay.admin.withdrawal.controller.request.PayMerchantBankAccountPageReq;
import com.seer.teach.pay.admin.withdrawal.controller.request.PayMerchantBankAccountReq;
import com.seer.teach.pay.admin.withdrawal.controller.response.PayMerchantBankAccountResp;

import java.util.List;

public interface IAdminPayMerchantBankAccountService {

    /**
     * 新增商家收款账户
     * @param req 请求参数
     * @return 是否成功
     */
    Boolean create(PayMerchantBankAccountReq req);

    /**
     * 修改商家收款账户
     * @param req 请求参数
     * @return 是否成功
     */
    Boolean update(PayMerchantBankAccountReq req);

    /**
     * 删除商家收款账户
     * @param id 收款账户ID
     * @return 是否成功
     */
    Boolean delete(Integer id);

    /**
     * 根据ID查询商家收款账户
     * @param id 收款账户ID
     * @return 商家收款账户信息
     */
    PayMerchantBankAccountResp getById(Integer id);

    /**
     * 分页查询商家收款账户
     * @param req 分页查询参数
     * @return 分页结果
     */
    PageListBean<PayMerchantBankAccountResp> pageList(PayMerchantBankAccountPageReq req);

    /**
     * 根据用户ID查询商家收款账户列表
     * @param userId 用户ID
     * @return 商家收款账户列表
     */
    List<PayMerchantBankAccountResp> getListByUserId(Integer userId);
}