package cn.newfeifan.mall.module.distri.service.usersigninlog;

import javax.validation.*;

import cn.newfeifan.mall.module.distri.controller.app.usersigninlog.vo.UserSignInLogPageReqVO;
import cn.newfeifan.mall.module.distri.controller.app.usersigninlog.vo.UserSignInLogSaveReqVO;
import cn.newfeifan.mall.module.distri.dal.dataobject.usersigninlog.UserSignInLogDO;
import cn.newfeifan.mall.framework.common.pojo.PageResult;
import cn.newfeifan.mall.module.member.controller.app.signin.vo.record.AppMemberSignInRecordRespVO;

/**
 * 用户签到日志 Service 接口
 *
 * @author 非繁人
 */
public interface UserSignInLogService {

    /**
     * 创建用户签到日志
     *
     * @return 日志
     */
    AppMemberSignInRecordRespVO createUserSignInLog();

    /**
     * 更新用户签到日志
     *
     * @param updateReqVO 更新信息
     */
    void updateUserSignInLog(@Valid UserSignInLogSaveReqVO updateReqVO);

    /**
     * 删除用户签到日志
     *
     * @param id 编号
     */
    void deleteUserSignInLog(Long id);

    /**
     * 获得用户签到日志
     *
     * @param id 编号
     * @return 用户签到日志
     */
    UserSignInLogDO getUserSignInLog(Long id);

    /**
     * 获得用户签到日志分页
     *
     * @param pageReqVO 分页查询
     * @return 用户签到日志分页
     */
    PageResult<UserSignInLogDO> getUserSignInLogPage(UserSignInLogPageReqVO pageReqVO);

}