package com.sundot.airport.exam.logic.manage.service;

import com.sundot.airport.exam.common.HttpResult;
import com.sundot.airport.exam.common.PageData;

/**
 * <b>功能名：BaseBizService</b><br>
 * <b>说明：</b>业务service的增删改查接口定义 A：新增参数；D：删除参数；U：更新参数；P：分页参数；AR：新增结果；GR：详情结果；PR：分页结果<br>
 * <b>著作权：</b> Copyright (C) 2021 HUIFANEDU  CORPORATION<br>
 * <b>修改履历：</b><br>
 *
 * @author 2021-06-21 liangxiao
 */
public interface BaseBizService<A, D, U, P, AR, GR, PR> {

    /**
     * <b>方法名: </b> add <br>
     * <b>说明: </b> 添加数据 <br>
     *
     * @param param com.huifanedu.cschool.model.params 添加请求参数
     * @return com.huifanedu.kernel.model.response.HttpResult</ com.huifanedu.cschool.logic.manage.model.result>
     * <b>修改履历: </b>
     * @author 2021/6/21 liangxiao
     */
    HttpResult<AR> add(A param);

    /**
     * <b>方法名: </b> delete <br>
     * <b>说明: </b> 删除数据 <br>
     *
     * @param param com.huifanedu.cschool.model.params 删除参数对象
     * @return com.huifanedu.kernel.model.response.HttpResult</ boolean><br>
     * <b>修改履历: </b>
     * @author 2021/6/21 liangxiao
     */
    HttpResult<Boolean> delete(D param);

    /**
     * <b>方法名: </b> update <br>
     * <b>说明: </b> 更新数据 <br>
     *
     * @param param com.huifanedu.cschool.model.params 更新参数对象
     * @return com.huifanedu.kernel.model.response.HttpResult</ boolean><br>
     * <b>修改履历: </b>
     * @author 2021/6/21 liangxiao
     */
    HttpResult<Boolean> update(U param);

    /**
     * <b>方法名: </b> get <br>
     * <b>说明: </b> 数据详情 <br>
     *
     * @param serviceId java.lang.String 业务ID
     * @return com.huifanedu.kernel.model.response.HttpResult</ com.huifanedu.cschool.logic.manage.model.result>
     * <b>修改履历: </b>
     * @author 2021/6/21 liangxiao
     */
    HttpResult<GR> get(String serviceId);

    /**
     * <b>方法名: </b> pageList <br>
     * <b>说明: </b> 分页列表 <br>
     *
     * @param param com.huifanedu.cschool.logic.manage.model.params 分页列表请求参数
     * @return com.huifanedu.kernel.model.response.HttpResult</ com.huifanedu.kernel.model.pager.PageData < com.huifanedu.cschool.logic.manage.model.result>>
     * <b>修改履历: </b>
     * @author 2021/6/21 liangxiao
     */
    HttpResult<PageData<PR>> pageList(P param);
}
