package com.yd.csf.feign.fallback.salary;

import com.yd.common.result.Result;
import com.yd.csf.feign.client.salary.ApiSalaryFeignClient;
import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse;
import com.yd.csf.feign.response.salary.ApiSalaryConditionListResponse;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
import com.yd.csf.feign.response.salary.ApiSalaryExportResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.List;

/**
 * 香港保险服务-薪资单信息Feign降级处理
 */
@Slf4j
@Component
public class ApiSalaryFeignFallbackFactory implements FallbackFactory<ApiSalaryFeignClient> {
    @Override
    public ApiSalaryFeignClient create(Throwable cause) {
        return new ApiSalaryFeignClient() {
            @Override
            public Result page(ApiSalaryPageRequest request) {
                return null;
            }

            @Override
            public Result pushPage(ApiSalaryPushPageRequest request) {
                return null;
            }

            @Override
            public Result<ApiSalaryDetailResponse> detail(String salaryBizId) {
                return null;
            }

            @Override
            public Result add(ApiSalaryAddRequest request) {
                return null;
            }

            @Override
            public Result edit(ApiSalaryEditRequest request) {
                return null;
            }

            @Override
            public Result submitCheck(ApiSalarySubmitCheckRequest request) {
                return null;
            }

            @Override
            public Result check(ApiSalaryCheckRequest request) {
                return null;
            }

            @Override
            public Result push(ApiSalaryPushRequest request) {
                return null;
            }

            @Override
            public Result cancel(ApiSalaryCancelRequest request) {
                return null;
            }

            @Override
            public Result batchAdd(ApiSalaryBatchAddRequest request) {
                return null;
            }

            @Override
            public Result delSalaryRemittance(String salaryRemittanceBizId) {
                return null;
            }

            @Override
            public Result<BigDecimal> getGrossAmount(ApiSalaryGrossAmountRequest request) {
                return null;
            }

            @Override
            public Result<BigDecimal> getExchangeRate(ApiSalaryExchangeRateRequest request) {
                return null;
            }

            @Override
            public Result<BigDecimal> calculatePaidAmount(ApiSalaryCalculatePaidAmountRequest request) {
                return null;
            }

            @Override
            public Result<BigDecimal> calculateTotalAmount(ApiSalaryCalculateTotalAmountRequest request) {
                return null;
            }

            @Override
            public Result<List<ApiSalaryBrokerListResponse>> brokerList(String name) {
                return null;
            }

            @Override
            public Result<ApiSalaryExportResponse> export(ApiSalaryExportRequest request) {
                return null;
            }

            @Override
            public Result<ApiSalaryConditionListResponse> conditionList(ApiSalaryConditionListRequest request) {
                return null;
            }
        };
    }
}
