package com.pig4cloud.pig.statistics.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pig4cloud.pig.statistics.api.dto.uninstall.*;
import com.pig4cloud.pig.statistics.api.vo.uninstall.*;

import java.util.List;

/**
 * @author: wcl
 * @date: 2025-08-13
 * @description: 流失卸载分析服务
 */
public interface UninstallAnalyseService {

	/**
	 * 获取当前周卸载汇总数据
	 * @param dto 查询参数
	 * @return 趋势汇总数据
	 */
	UninstallTrendVO getUninstallTrend(GetUninstallTrendDTO dto);

	/**
	 * 获取卸载趋势明细数据
	 * @param dto 查询参数
	 * @return 趋势明细列表
	 */
	Page<UninstallTrendDtlVO> getUninstallTrendDetail(GetUninstallTrendDetailDTO dto);

	/**
	 * 卸载设备活跃情况（时长分布+历史卸载次数分布，模拟数据）
	 * @param dto 查询参数
	 * @return UninstallInsightVO
	 */
	UninstallInsightVO getUninstallDeviceActive(GetUninstallInsightDTO dto);

	/**
	 * 卸载前状态
	 */
	UninstallBeforeVO uninstallBefore(GetUninstallInsightDTO dto);

	/**
	 * 体验干扰
	 */
	UninstallBeforeInterfereVO uninstallInterfere(GetUninstallInsightDTO dto);

	/**
	 * 行为还原
	 */
	UninstallBeforeActionVO uninstallAction(GetUninstallInsightDTO dto);

	/**
	 * 卸载后流失
	 */
	List<UninstallOfterAPPOV> uninstallAfter(GetUninstallInsightDTO dto);

	/**
	 * 卸载后系统设备分布
	 */
	List<UninstallSYSOV> uninstallSys(GetUninstallInsightDTO dto);

	/**
	 * 卸载画像
	 */
	UninstallPortraitOV getUninstallPortrait(UninstallPortraitDTO dto);

	/**
	 * 卸载归因-卸载预测
	 */
	List<UninstallPredictVO> getUninstallPredict(UninstallPredictDTO dto);

	/**
	 * 安装卸载比
	 */
	List<InstallUninstallRatioVO> getInstallUninstallRatio(InstallUninstallRatioDTO dto);

	/**
	 * 安装卸载比明细
	 */
	Page<InstallUninstallRatioVO> getInstallUninstallRatioDetail(InstallUninstallRatioDTO dto);
}
