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

import '../entities/group.dart';

abstract class GroupRepository {
  /// 그룹 목록 조회
  Future<PaginatedResult<Group>> list({
    int page = 1,
    int pageSize = 20,
    String? query,
    bool? isDefault,
    bool? isActive,
    bool includePermissions = false,
    bool includeEmployees = false,
  });

  /// 그룹 신규 등록
  Future<Group> create(GroupInput input);

  /// 그룹 정보 수정
  Future<Group> update(int id, GroupInput input);

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

  /// 그룹 복구
  Future<Group> restore(int id);
}
