package com.campus.activity.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.campus.activity.dto.request.*;
import com.campus.activity.entity.Activity;
import com.campus.activity.vo.ActivityVO;
import com.campus.activity.vo.ConflictCheckVO;

import java.time.LocalDateTime;
import java.util.List;

public interface ActivityService {

    IPage<ActivityVO> pageActivities(Page<Activity> page,
                                      Integer status,
                                      String keyword,
                                      String category,
                                      LocalDateTime startDate,
                                      LocalDateTime endDate);

    ActivityVO getActivityById(Long id);

    Long createActivity(ActivityCreateRequest request);

    void updateActivity(Long id, ActivityUpdateRequest request);

    void deleteActivity(Long id);

    List<ActivityVO> getCalendarActivities(Integer year, Integer month);

    ConflictCheckVO checkConflict(CheckConflictRequest request);
}