package com.xisc.pm.app.service;

import com.xisc.pm.api.dto.PmPolicyReqDTO;
import com.xisc.pm.api.dto.PmPolicyResDTO;
import com.xisc.pm.api.dto.PmPolicySaveDTO;
import com.xisc.pm.domain.entity.PmPolicy;
import io.choerodon.core.domain.Page;
import io.choerodon.mybatis.pagehelper.domain.PageRequest;

import java.util.List;

/**
 * 策略信息表(PmPolicy)应用服务
 *
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @since 2024-10-16 10:43:06
 */
public interface PmPolicyService {

    /**
     * 分页查询数据
     *
     * @param pageRequest 分页信息
     * @param dto         入参查询
     * @param tenantId    租户
     * @return
     */
    Page<PmPolicy> selectList(PageRequest pageRequest, PmPolicyReqDTO dto, Long tenantId);

    /**
     * 策略信息详情tab页
     *
     * @param policyId 策略id
     * @param tenantId 租户
     * @return
     */
    PmPolicyResDTO listLine(Long policyId, Long tenantId);

    /**
     * 保存数据
     *
     * @param dto      入参DTO
     * @param tenantId 租户
     */
    void saveData(PmPolicySaveDTO dto, Long tenantId);

    /**
     * 删除
     * @param pmPolicyList 策略数据
     */
    void deleteUi(List<PmPolicy> pmPolicyList);

    /**
     * 查询最新一条数据
     * @param tenantId 租户
     * @return
     */
    PmPolicySaveDTO getLastData(Long tenantId, Long prodLineId);
}

