package com.zanxiang.game.module.manage.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zanxiang.game.module.manage.pojo.dto.CpDTO;
import com.zanxiang.game.module.manage.pojo.params.CpAddUpdateParam;
import com.zanxiang.game.module.manage.pojo.params.CpListParam;
import com.zanxiang.game.module.manage.pojo.vo.CpChoiceVO;
import com.zanxiang.game.module.manage.pojo.vo.CpVO;
import com.zanxiang.game.module.mybatis.entity.Cp;

import java.util.List;
import java.util.Map;

/**
 * @author : lingfeng
 * @time : 2022-06-22
 * @description : cp管理
 */
public interface ICpService extends IService<Cp> {

    /**
     * 新增或者更新cp信息
     *
     * @param param 新增或者更新的参数
     * @return boolean
     */
    boolean addOrUpdate(CpAddUpdateParam param);

    /**
     * 查询cp列表
     *
     * @param param : cp列表查询参数
     * @return {@link IPage}<{@link CpVO}>
     */
    IPage<CpVO> list(CpListParam param);

    /**
     * 查询cp选择列表
     *
     * @return {@link List}<{@link CpChoiceVO}>
     */
    List<CpChoiceVO> choiceList();

    /**
     * 查询cp选择列表
     *
     * @return {@link Map}<{@link Long}, {@link CpDTO}>
     */
    Map<Long, CpDTO> cpMap();

    /**
     * 删除cp信息
     *
     * @param id : 要删除的cp信息id
     * @return boolean
     */
    boolean deleteById(Long id);
}
