package com.crunii.micro.service.sysmgr.service;

import com.crunii.micro.common.dto.PageReq;
import com.crunii.micro.common.dto.PageRsp;
import com.crunii.micro.common.dto.Result;
import com.crunii.micro.domain.dto.Worker;
import com.crunii.micro.service.sysmgr.dto.sysmgr.AccessCreateDto;
import com.crunii.micro.service.sysmgr.dto.sysmgr.AccessPageDto;
import com.crunii.micro.service.sysmgr.dto.sysmgr.AccessPageVo;
import com.crunii.micro.service.sysmgr.dto.sysmgr.AccessUpdateDto;

import java.util.List;

/**
 * @author baoxy
 * @date 2023-07-11
 */
public interface AccessService {

    /**
     * 分页查询
     *
     * @param req 分页实体
     * @return PageRsp<AccessPageVo>
     */
    Result<PageRsp<AccessPageVo>> pageSearch(PageReq<AccessPageDto> req);

    /**
     * 新增配置
     *
     * @param dto    实体类
     * @param worker 用户实体类
     * @return object
     */
    Result<Object> create(AccessCreateDto dto, Worker worker);

    /**
     * 修改配置
     *
     * @param dto    实体类
     * @param worker 用户实体类
     * @return object
     */
    Result<Object> update(AccessUpdateDto dto, Worker worker);

    /**
     * 变更状态
     *
     * @param appId  app主键id
     * @param worker 用户实体列
     * @return object
     */
    Result<Object> updateState(String appId, Worker worker);

    Result<List<AccessPageVo>> list(Integer loginId);

    Result<List<AccessPageVo>> getTrainBusinessType(int loginId);

}
