Skip to content

Commit

Permalink
[Domain] Added a few models to represent the initial charts
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolfteam committed May 6, 2022
1 parent 525db1d commit 515df3a
Show file tree
Hide file tree
Showing 8 changed files with 62 additions and 0 deletions.
11 changes: 11 additions & 0 deletions lib/domain/enums/chart_type.dart
@@ -0,0 +1,11 @@
enum ChartType {
topFiveStarCharacterMostReruns,
topFiveStarWeaponMostReruns,
topFourStarCharacterMostReruns,
topFourStarWeaponMostReruns,
topFiveStarCharacterLeastReruns,
topFiveStarWeaponLeastReruns,
topFourStarCharacterLeastReruns,
topFourStarWeaponLeastReruns,
characterBirthdays,
}
1 change: 1 addition & 0 deletions lib/domain/enums/enums.dart
Expand Up @@ -16,6 +16,7 @@ export 'character_role_subtype.dart';
export 'character_role_type.dart';
export 'character_skill_ability_type.dart';
export 'character_skill_type.dart';
export 'chart_type.dart';
export 'day_type.dart';
export 'element_type.dart';
export 'end_drawer_item_type.dart';
Expand Down
12 changes: 12 additions & 0 deletions lib/domain/models/charts/chart_birthday_month_model.dart
@@ -0,0 +1,12 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:shiori/domain/models/items/item_common.dart';

part 'chart_birthday_month_model.freezed.dart';

@freezed
class ChartBirthdayMonthModel with _$ChartBirthdayMonthModel {
const factory ChartBirthdayMonthModel({
required int month,
required List<ItemCommonWithName> items,
}) = _ChartBirthdayMonthModel;
}
14 changes: 14 additions & 0 deletions lib/domain/models/charts/chart_element_item_model.dart
@@ -0,0 +1,14 @@
import 'dart:math';

import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:shiori/domain/enums/enums.dart';

part 'chart_element_item_model.freezed.dart';

@freezed
class ChartElementItemModel with _$ChartElementItemModel {
const factory ChartElementItemModel({
required ElementType type,
required List<Point<double>> points,
}) = _ChartElementItemModel;
}
15 changes: 15 additions & 0 deletions lib/domain/models/charts/chart_top_item_model.dart
@@ -0,0 +1,15 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:shiori/domain/enums/enums.dart';

part 'chart_top_item_model.freezed.dart';

@freezed
class ChartTopItemModel with _$ChartTopItemModel {
const factory ChartTopItemModel({
required String key,
required ChartType type,
required String name,
required int value,
required double percentage,
}) = _ChartTopItemModel;
}
3 changes: 3 additions & 0 deletions lib/domain/models/models.dart
Expand Up @@ -14,6 +14,9 @@ export 'characters/character_multi_talent_ascension_model.dart';
export 'characters/character_passive_talent_model.dart';
export 'characters/character_skill_card_model.dart';
export 'characters/character_talent_ascension_model.dart';
export 'charts/chart_birthday_month_model.dart';
export 'charts/chart_element_item_model.dart';
export 'charts/chart_top_item_model.dart';
export 'custom_builds/custom_build_artifact_model.dart';
export 'custom_builds/custom_build_model.dart';
export 'custom_builds/custom_build_note_model.dart';
Expand Down
4 changes: 4 additions & 0 deletions lib/domain/services/genshin_service.dart
Expand Up @@ -92,4 +92,8 @@ abstract class GenshinService {
List<BannerHistoryItemModel> getBannerHistory(BannerHistoryItemType type);
List<BannerHistoryPeriodModel> getBanners(double version);
List<ItemReleaseHistoryModel> getItemReleaseHistory(String itemKey);

List<ChartTopItemModel> getTopCharts(ChartType type);
List<ChartBirthdayMonthModel> getCharacterBirthdaysForCharts();
List<ChartElementItemModel> getElementsForCharts();
}
2 changes: 2 additions & 0 deletions lib/domain/services/telemetry_service.dart
Expand Up @@ -67,4 +67,6 @@ abstract class TelemetryService {
Future<void> trackBannerHistoryItemOpened(double version);

Future<void> trackItemReleaseHistoryOpened(String itemKey);

Future<void> trackChartsOpened();
}

0 comments on commit 515df3a

Please sign in to comment.