package xyz.wbsite.module.admin.mpr;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import xyz.wbsite.frame.base.Token;
import xyz.wbsite.module.admin.ent.Services;
import xyz.wbsite.module.admin.req.ServicesFindRequest;

import java.util.List;

/**
 * SERVICES - 虚拟主机
 *
 * @author wangbing
 * @since 2021-02-07
 */
@Mapper
public interface ServicesMapper {

    /**
     * 插入
     *
     * @param request 请求对象
     * @param token   令牌
     * @return 返回数量
     */
    long insert(@Param("request") Services request, @Param("token") Token token);

    /**
     * 批量插入
     *
     * @param list  对象集合
     * @param token 令牌
     * @return 返回数量
     */
    long insertBatch(@Param("list") List<Services> list, @Param("token") Token token);

    /**
     * 逻辑删除
     *
     * @param id    主键
     * @param token 令牌
     * @return 返回数量
     */
    long delete(@Param("id") Long id, @Param("token") Token token);

    /**
     * 批量逻辑删除
     *
     * @param list  主键集合
     * @param token 令牌
     * @return 返回数量
     */
    long deleteBatch(@Param("list") List<Long> list, @Param("token") Token token);

    /**
     * 更新
     *
     * @param request 请求对象
     * @param token   令牌
     * @return 返回数量
     */
    long update(@Param("request") Services request, @Param("token") Token token);

    /**
     * 普通查询
     *
     * @param request 请求对象
     * @param token   令牌
     * @return 返回对象
     */
     List<Services> select(@Param("request") Services request, @Param("token") Token token);

    /**
     * 高级查询
     *
     * @param request 请求对象
     * @param token   令牌
     * @return 返回对象
     */
    List<Services> find(@Param("request") ServicesFindRequest request, @Param("token") Token token);

    /**
     * 获得对象
     *
     * @param id    主键
     * @param token 令牌
     * @return 返回对象
     */
    Services getById(@Param("id") Long id, @Param("token") Token token);

    /**
     * 获得对象
     *
     * @param ids   主键集合
     * @param token 令牌
     * @return 返回对象
     */
    List<Services> getByIds(@Param("ids") Long[] ids, @Param("token") Token token);
}
