package com.emotion.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.emotion.common.PageResult;
import com.emotion.dto.request.LifeEventCreateRequest;
import com.emotion.dto.request.LifeEventPageRequest;
import com.emotion.dto.request.LifeEventUpdateRequest;
import com.emotion.dto.response.LifeEventResponse;
import com.emotion.entity.LifeEvent;

import java.util.List;

/**
 * 生命事件服务接口
 *
 * @author huazhongmin
 * @date 2025-12-22
 */
public interface LifeEventService extends IService<LifeEvent> {

    /**
     * 分页查询当前用户的生命事件
     *
     * @param request 分页请求
     * @return 分页结果
     */
    PageResult<LifeEventResponse> getPageByCurrentUser(LifeEventPageRequest request);

    /**
     * 获取当前用户的所有生命事件列表
     *
     * @return 事件列表
     */
    List<LifeEventResponse> getListByCurrentUser();

    /**
     * 根据ID获取生命事件
     *
     * @param id 事件ID
     * @return 事件响应
     */
    LifeEventResponse getEventById(String id);

    /**
     * 创建生命事件
     *
     * @param request 创建请求
     * @return 事件响应
     */
    LifeEventResponse createEvent(LifeEventCreateRequest request);

    /**
     * 更新生命事件
     *
     * @param request 更新请求
     * @return 事件响应
     */
    LifeEventResponse updateEvent(LifeEventUpdateRequest request);

    /**
     * 删除生命事件
     *
     * @param id 事件ID
     * @return 是否成功
     */
    boolean deleteEvent(String id);
}
