import 'package:comwell_key_app/database/comwell_db.dart';
import 'package:comwell_key_app/domain/models/user.dart';
import 'package:comwell_key_app/services/api.dart';
import 'package:comwell_key_app/services/mappers/user_mapper.dart';
import 'package:comwell_key_app/services/models/user_dto.dart';
import 'package:comwell_key_app/utils/json.dart';
import 'package:comwell_key_app/utils/locator.dart';

class ProfileSettingsRepository {
  final Api api = Api();

  Future<User> updateUser(User updatedUser) async {
    final userDto = updatedUser.toSimpleUserDto();
    final response = await api.updateUser(userDto);
    final data = response.data as Json;
    final responseDto = UserDto.fromJson(data);
    final user = responseDto.toUser();
    await locator<ComwellDatabase>().userDAO.saveUser(responseDto);
    return user;
  }

  Future<void> updateAddress(User updatedUser) async {
    final userDto = updatedUser.toUserDto();
    await locator<ComwellDatabase>().userDAO.saveUser(userDto);
  }

  Future<void> deleteProfile() {
    return api.deleteProfile();
  }
}