package com.xisc.pm.app.service;

import java.util.List;

import com.xisc.pm.api.dto.PmPdRecDTO;
import com.xisc.pm.api.dto.PmPdRecRequestDTO;
import com.xisc.pm.domain.entity.PmPdRec;
import com.xisc.pm.infra.enums.PdEventType;

import io.choerodon.core.domain.Page;
import io.choerodon.mybatis.pagehelper.domain.PageRequest;
/**
 * 组板履历表应用服务
 *
 * @author 曾俊 jun.zeng@hand-china.com 2024-07-31 08:01:11
 */
public interface PmPdRecService {

    /**
    * 组板履历表查询参数
    *
    * @param tenantId 租户ID
    * @param pmPdRecRequest 组板履历表
    * @param pageRequest 分页
    * @return 组板履历表列表
    */
    Page<PmPdRec> list(Long tenantId, PmPdRecRequestDTO pmPdRecRequest, PageRequest pageRequest);

    /**
     * 组板履历表详情
     *
     * @param tenantId 租户ID
     * @param pprId 主键
     * @return 组板履历表列表
     */
    PmPdRec detail(Long tenantId, Long pprId);

    /**
     * 创建组板履历表
     *
     * @param tenantId 租户ID
     * @param pmPdRec 组板履历表
     * @return 组板履历表
     */
    PmPdRec createEvent(Long tenantId, PmPdRecDTO pmPdRec);
    
    /**
     * 批量创建组板履历表
     *
     * @param tenantId 租户ID
     * @param pmPdRecs 组板履历表集合
     * @param eventType
     * @param systemCode
     * @param apiCode
     * @return 组板履历表
     */
    List<PmPdRec> createEvent(Long tenantId, List<PmPdRecDTO> pmPdRecs , PdEventType eventType , String systemCode , String apiCode);

    /**
     * 更新组板履历表
     *
     * @param tenantId 租户ID
     * @param pmPdRec 组板履历表
     * @return 组板履历表
     */
    PmPdRec update(Long tenantId, PmPdRec pmPdRec);

    /**
     * 删除组板履历表
     *
     * @param pmPdRec 组板履历表
     */
    void remove(PmPdRec pmPdRec);
}
