package cn.iocoder.yudao.module.member.service.admincard;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.controller.admin.admincard.vo.AdminCardPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.admincard.vo.AdminCardSaveReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.admincard.AdminCardDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 管理员卡 Service 接口
 *
 * @author 开发账号
 */
public interface AdminCardService {

    /**
     * 创建管理员卡
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createAdminCard(@Valid AdminCardSaveReqVO createReqVO);

    /**
     * 更新管理员卡
     *
     * @param updateReqVO 更新信息
     */
    void updateAdminCard(@Valid AdminCardSaveReqVO updateReqVO);

    /**
     * 删除管理员卡
     *
     * @param id 编号
     */
    void deleteAdminCard(Long id);

    /**
     * 获得管理员卡
     *
     * @param id 编号
     * @return 管理员卡
     */
    AdminCardDO getAdminCard(Long id);

    /**
     * 获得管理员卡分页
     *
     * @param pageReqVO 分页查询
     * @return 管理员卡分页
     */
    PageResult<AdminCardDO> getAdminCardPage(AdminCardPageReqVO pageReqVO);

    List<AdminCardDO> getAdminCardList();

    void checkCard(String cardId);

}