package cn.novalon.gym.manage.groupcourse.service;

import cn.novalon.gym.manage.groupcourse.domain.GroupCourseRecommend;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

public interface IGroupCourseRecommendService {

    Mono<GroupCourseRecommend> findById(Long id);

    Flux<GroupCourseRecommend> findAll();

    Flux<GroupCourseRecommend> findAll(String sortBy, String sortOrder);

    Flux<GroupCourseRecommend> findAllActive();

    Flux<GroupCourseRecommend> findByCourseId(Long courseId);

    Mono<GroupCourseRecommend> create(GroupCourseRecommend recommend);

    Mono<GroupCourseRecommend> update(Long id, GroupCourseRecommend recommend);

    Mono<Void> delete(Long id);

    Mono<GroupCourseRecommend> enable(Long id);

    Mono<GroupCourseRecommend> disable(Long id);
}