import 'package:superport_v2/core/common/models/paginated_result.dart';

import '../entities/menu.dart';

abstract class MenuRepository {
  /// 메뉴 목록 조회
  Future<PaginatedResult<MenuItem>> list({
    int page = 1,
    int pageSize = 20,
    String? query,
    int? parentId,
    bool? isActive,
    bool includeDeleted = false,
  });

  /// 메뉴 신규 등록
  Future<MenuItem> create(MenuInput input);

  /// 메뉴 수정
  Future<MenuItem> update(int id, MenuInput input);

  /// 메뉴 삭제(소프트)
  Future<void> delete(int id);

  /// 메뉴 복구
  Future<MenuItem> restore(int id);
}
