import 'dart:io';
import 'dart:math';

import 'package:path_provider/path_provider.dart';

import '../models/init_get_it.dart';
import 'package:together_mobile/models/user_model.dart';

Future<String> getAvatarPath(String type,String avatarName) async {
  String avatarDir = await getAvatarDir(type);
  return '$avatarDir/$avatarName';
}

Future<String> getAvatarDir(String type) async {
  Directory appDirectory = await getApplicationDocumentsDirectory();
  switch (type) {
    case 'user':
      return '${appDirectory.path}/${getIt.get<UserAccount>().id}/images/avatars/user';
    case 'groupChat':
      return '${appDirectory.path}/${getIt.get<UserAccount>().id}/images/avatars/group_chat';
    case _:
      return '${appDirectory.path}/${getIt.get<UserAccount>().id}/images/avatars/default';
  }
}

Future<String> getBoxDir() async {
  Directory appDirectory = await getApplicationDocumentsDirectory();
  return '${appDirectory.path}/${getIt.get<UserAccount>().id}/ChatBox';
}

Future<String> getChatImageDir() async {
  Directory appDirectory = await getApplicationDocumentsDirectory();
  return '${appDirectory.path}/${getIt.get<UserAccount>().id}/images';
}

String getRandomFilename() {
  final random = Random();
  const availableChars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz';
  String randomString = List.generate(
          11, (index) => availableChars[random.nextInt(availableChars.length)])
      .join();

  return '$randomString.png';
}