package com.fs.statis.service;

import com.fs.statis.domain.FsStatisSalerWatch;
import com.fs.statis.dto.StatsWatchLogPageListDTO;

import java.util.List;

/**
 * 销售观看统计服务接口
 */
public interface FsStatisSalerWatchService {

    /**
     * 根据ID查询销售观看统计
     *
     * @param id 主键ID
     * @return 销售观看统计对象，如果不存在则返回null
     */
    FsStatisSalerWatch getById(Integer id);

    /**
     * 查询所有销售观看统计
     *
     * @return 销售观看统计列表
     */
    List<FsStatisSalerWatch> getAll();

    /**
     * 新增销售观看统计
     *
     * @param fsStatisSalerWatch 待新增的销售观看统计对象
     * @return 返回带有生成ID的销售观看统计对象
     */
    FsStatisSalerWatch create(FsStatisSalerWatch fsStatisSalerWatch);

    /**
     * 更新销售观看统计
     *
     * @param fsStatisSalerWatch 待更新的销售观看统计对象 (ID必须存在)
     * @return 返回更新后的销售观看统计对象，如果更新失败或对象不存在则可能返回null或抛出异常
     */
    FsStatisSalerWatch update(FsStatisSalerWatch fsStatisSalerWatch);

    /**
     * 根据ID删除销售观看统计
     *
     * @param id 主键ID
     * @return 删除成功返回true，否则返回false
     */
    boolean deleteById(Integer id);

    List<FsStatisSalerWatch> queryList(StatsWatchLogPageListDTO param);
    List<FsStatisSalerWatch> queryPeriodList(StatsWatchLogPageListDTO param);
    List<FsStatisSalerWatch> queryTodayList(StatsWatchLogPageListDTO param);


    /**
     * 写入数据 写入前一天的数据
     */
    void writeData();

    /**
     * 计算每天的数据
     */
    void writeDataToday();
}
