package cn.novalon.manage.file.core.repository;

import cn.novalon.manage.file.core.domain.SysFile;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

public interface ISysFileRepository {

    Flux<SysFile> findByDeletedAtIsNullOrderByCreatedAtDesc();

    Flux<SysFile> findByCreateByOrderByCreatedAtDesc(String createBy);

    Mono<SysFile> findById(Long id);

    Flux<SysFile> findByFilePathContaining(String fileName);

    Mono<SysFile> save(SysFile sysFile);

    Mono<Void> deleteByIdAndDeletedAtIsNull(Long id);
}
