import 'package:account/src/features/change_password/domain/models/entities/change_password_request_entity.dart';
import 'package:legacy_shared/src/data/models/entities/device_entity.dart';
import 'package:account/src/features/linked_devices/domain/entities/update_device_request_entity.dart';
import 'package:account/src/features/personal_data/domain/entities/update_user_request_entity.dart';
import 'package:legacy_shared/legacy_shared.dart';

abstract class AccountRemoteDatasource {
  Future<List<DeviceEntity>> getLinkedDevices({required String userId});

  Future<void> deleteDevice({required String userId, required String deviceId});

  Future<void> updateDevice({required String userId, required String deviceId, required UpdateDeviceRequestEntity request});

  Future<void> updateUser({required String userId, required UpdateUserRequestEntity request});

  Future<List<UserEntity>> getAppUsers({required String userId});

  Future<void> deleteAppUser({required String userId});

  Future<void> changePassword({required String userId, required ChangePasswordRequestEntity request});
}
