package com.yd.csf.api.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPageResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse;

import java.math.BigDecimal;
import java.util.List;

public interface ApiSalaryService {
    Result<IPage<ApiSalaryPageResponse>> page(ApiSalaryPageRequest request);

    Result<IPage<ApiSalaryPushPageResponse>> pushPage(ApiSalaryPushPageRequest request);

    Result<ApiSalaryDetailResponse> detail(String salaryBizId);

    Result add(ApiSalaryAddRequest request);

    Result edit(ApiSalaryEditRequest request);

    Result submitCheck(ApiSalarySubmitCheckRequest request);

    Result check(ApiSalaryCheckRequest request);

    Result push(ApiSalaryPushRequest request);

    Result cancel(ApiSalaryCancelRequest request);

    Result batchAdd(ApiSalaryBatchAddRequest request);

    Result delSalaryRemittance(String salaryRemittanceBizId);

    Result<BigDecimal> getGrossAmount(ApiSalaryGrossAmountRequest request);

    Result<BigDecimal> getExchangeRate(ApiSalaryExchangeRateRequest request);

    Result<BigDecimal> calculatePaidAmount(ApiSalaryCalculatePaidAmountRequest request);

    Result<BigDecimal> calculateTotalAmount(ApiSalaryCalculateTotalAmountRequest request);

    Result<List<ApiSalaryBrokerListResponse>> brokerList(String name);
}
