package cn.novalon.gym.manage.sys.core.repository;

import cn.novalon.gym.manage.sys.core.domain.SysDictData;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/**
 * 字典数据仓储接口
 * 
 * @author 张翔
 * @date 2026-03-13
 */
public interface ISysDictDataRepository {

    Flux<SysDictData> findByDeletedAtIsNull();

    Flux<SysDictData> findByDictTypeAndDeletedAtIsNull(String dictType);

    Flux<SysDictData> findByDictTypeAndStatusAndDeletedAtIsNull(String dictType, String status);

    Mono<SysDictData> findById(Long id);

    Mono<SysDictData> save(SysDictData dictData);

    Mono<Void> deleteByIdAndDeletedAtIsNull(Long id);
}