package com.crm.manager.service.ucard;

import com.crm.rely.backend.core.dto.base.BaseResultDto;
import com.crm.rely.backend.core.dto.base.ResultWithPagerDto;
import com.crm.rely.backend.core.dto.ucard.CardAppCommonProblemDto;
import com.crm.rely.backend.core.dto.ucard.CardAppCommonProblemTypeDto;
import com.crm.rely.backend.core.dto.ucard.CardAppPrivacyPolicyDto;
import com.crm.rely.backend.core.dto.ucard.CardAppVersionDto;
import com.crm.rely.backend.core.entity.base.BaseDeleteEntities;
import com.crm.rely.backend.core.entity.ucard.*;
import com.crm.rely.backend.exception.ServiceException;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;

@FeignClient(name = "UCARD-SERVICE", path = "/ucard/app/manager")
public interface UcardAppFeignService {

    /**
     * app版本配置列表
     */
    @PostMapping("/version/page")
    ResultWithPagerDto<CardAppVersionDto> getCardAppVersionPageList(CardAppVersionPageEntity entity) throws ServiceException;

    /**
     * 新增app版本
     */
    @PostMapping("/version/add")
    BaseResultDto addCardAppVersion(CardAppVersionAddEntity entity) throws ServiceException;

    /**
     * 修改app版本
     */
    @PostMapping("/version/update")
    BaseResultDto updateCardAppVersion(CardAppVersionUpdateEntity entity) throws ServiceException;

    /**
     * 删除app版本
     */
    @PostMapping("/version/delete")
    BaseResultDto deleteCardAppVersion(BaseDeleteEntities entity);

    /**
     * 获取最新一条app版本配置
     */
    @PostMapping("/version/detail")
    BaseResultDto getLatestCardAppVersion(CardAppVersionDetailEntity entity) throws ServiceException;

    /**
     * 删除app隐私政策
     */
    @PostMapping("/privacy/policy/delete")
    BaseResultDto deleteCardAppPrivacyPolicy(BaseDeleteEntities entity) throws ServiceException;

    /**
     * 修改app隐私政策
     */
    @PostMapping("/privacy/policy/update")
    BaseResultDto updateCardAppPrivacyPolicy(CardAppPrivacyPolicyUpdateEntity entity) throws ServiceException;

    /**
     * 新增app隐私政策
     */
    @PostMapping("/privacy/policy/add")
    BaseResultDto addCardAppPrivacyPolicy(CardAppPrivacyPolicyAddEntity entity) throws ServiceException;

    /**
     * app隐私政策列表
     */
    @PostMapping("/privacy/policy/page")
    ResultWithPagerDto<CardAppPrivacyPolicyDto> getCardAppPrivacyPolicyPageList(CardAppPrivacyPolicyPageEntity entity) throws ServiceException;

    /**
     * 删除app常见问题
     */
    @PostMapping("/common/problem/delete")
    BaseResultDto deleteCardAppCommonProblem(BaseDeleteEntities entity) throws ServiceException;

    /**
     * 修改app常见问题
     */
    @PostMapping("/common/problem/update")
    BaseResultDto updateCardAppCommonProblem(CardAppCommonProblemUpdateEntity entity) throws ServiceException;

    /**
     * 新增app常见问题
     */
    @PostMapping("/common/problem/add")
    BaseResultDto addCardAppCommonProblem(CardAppCommonProblemAddEntity entity) throws ServiceException;

    /**
     * app常见问题列表
     */
    @PostMapping("/common/problem/page")
    ResultWithPagerDto<CardAppCommonProblemDto> getCardAppCommonProblemPageList(CardAppCommonProblemPageEntity entity) throws ServiceException;

    /**
     * app常见问题类型列表
     */
    @PostMapping("/common/problem/type/page")
    ResultWithPagerDto<CardAppCommonProblemTypeDto> getCardAppCommonProblemTypePageList(CardAppCommonProblemTypePageEntity entity) throws ServiceException;

    /**
     * 新增app常见问题类型
     */
    @PostMapping("/common/problem/type/add")
    BaseResultDto addCardAppCommonProblemType(CardAppCommonProblemTypeAddEntity entity) throws ServiceException;

    /**
     * 修改app常见问题类型
     */
    @PostMapping("/common/problem/type/update")
    BaseResultDto updateCardAppCommonProblemType(CardAppCommonProblemTypeUpdateEntity entity) throws ServiceException;

    /**
     * 删除app常见问题类型
     */
    @PostMapping("/common/problem/type/delete")
    BaseResultDto deleteCardAppCommonProblemType(BaseDeleteEntities entity) throws ServiceException;

    /**
     * 常见问题类型下拉列表
     */
    @PostMapping("/common/problem/type/dropdown")
    BaseResultDto cardAppCommonProblemTypeDropdown(CardAppCommonProblemTypeDropdown entity) throws ServiceException;


}
