package com.td.boss.game.complayerland.service;

import com.td.boss.common.service.CommonService;
import com.td.boss.game.complayerland.pojo.ComPlayerDisasterLog;
import com.td.boss.game.complayerland.vo.ComPlayerDisasterLogVo;

import java.util.Date;
import java.util.List;

public interface ComPlayerDisasterLogService extends CommonService<ComPlayerDisasterLogVo, ComPlayerDisasterLog, String> {

    /**
     * 定时任务核心方法 同步每个用户上周收入支出
     * 灾难模式每周统计一次，如果这个期间新用户也需要这个功能。新注册的用户直接调用该方法。
     */
    void asyncDisaster(String userId);


    /**
     * 获取今天的灾难，并且没有触发过的灾难
     *
     * @return
     */
    List<ComPlayerDisasterLog> getTodayDisasterUnEnabledList();

    /**
     * 添加一个已触发的灾难记录
     *
     * @param userId
     * @param disasterTableId
     * @param disasterDay
     * @return
     */
    ComPlayerDisasterLog addDisasterEnable(String userId, long disasterTableId, Integer disasterType, Date disasterDay);

    /**
     * 灾难模式天任务：触发所有用户今日灾难和保护机制
     */
    void ComPlayerDisasterDayTask(ComPlayerDisasterLog disasterLog);

    /**
     * 获取经历的灾难记录
     *
     * @param userId
     * @return
     */
    List<ComPlayerDisasterLog> getHistory(String userId);


}
