Skip to content

Commit

Permalink
Merge pull request #94 from canopas/Mayank/refactor-dates-to-timestamp
Browse files Browse the repository at this point in the history
Update all dates as timeStamp
  • Loading branch information
cp-mayank authored Sep 12, 2024
2 parents 9ee1ae6 + 172f693 commit 0985bae
Show file tree
Hide file tree
Showing 32 changed files with 598 additions and 188 deletions.
21 changes: 17 additions & 4 deletions data/lib/api/ball_score/ball_score_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import "package:collection/collection.dart";
import 'package:cloud_firestore/cloud_firestore.dart';
import '../../converter/timestamp_json_converter.dart';
import '../user/user_models.dart';
import '../../extensions/double_extensions.dart';
import '../../extensions/int_extensions.dart';
Expand Down Expand Up @@ -31,7 +32,8 @@ class BallScoreModel with _$BallScoreModel {
String? wicket_taker_id,
required bool is_four,
required bool is_six,
required DateTime time,
DateTime? time,
@TimeStampJsonConverter() DateTime? score_time,
}) = _BallScoreModel;

factory BallScoreModel.fromJson(Map<String, dynamic> json) =>
Expand Down Expand Up @@ -317,7 +319,8 @@ extension OverSummaryMetaData on OverSummary {
: 0),
);

DateTime get time => balls.lastOrNull?.time ?? DateTime.now();
DateTime get time =>
balls.lastOrNull?.score_time ?? balls.lastOrNull?.time ?? DateTime.now();

BowlerSummary get bowlerStatAtStart {
final runsInOver = balls
Expand Down Expand Up @@ -376,7 +379,12 @@ extension OverSummaryMetaData on OverSummary {
final extraSummaryDetail = extrasSummary.addExtra(ball);

final ballScores = [...balls, ball].toList();
ballScores.sort((a, b) => a.time.compareTo(b.time));
ballScores.sort(
(a, b) =>
(a.score_time ?? a.time)
?.compareTo(b.score_time ?? b.time ?? DateTime.now()) ??
0,
);

final configuredStriker = striker.addBall(
ball,
Expand Down Expand Up @@ -429,7 +437,12 @@ extension OverSummaryMetaData on OverSummary {

final ballScores = balls.toList();
ballScores.removeWhere((element) => element.id == ball.id);
ballScores.sort((a, b) => a.time.compareTo(b.time));
ballScores.sort(
(a, b) =>
(a.score_time ?? a.time)
?.compareTo(b.score_time ?? b.time ?? DateTime.now()) ??
0,
);

final configuredStriker = striker.removeBall(ball);
final configuredNonStriker = nonStriker.removeBall(ball);
Expand Down
131 changes: 79 additions & 52 deletions data/lib/api/ball_score/ball_score_model.freezed.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ mixin _$BallScoreModel {
String? get wicket_taker_id => throw _privateConstructorUsedError;
bool get is_four => throw _privateConstructorUsedError;
bool get is_six => throw _privateConstructorUsedError;
DateTime get time => throw _privateConstructorUsedError;
DateTime? get time => throw _privateConstructorUsedError;
@TimeStampJsonConverter()
DateTime? get score_time => throw _privateConstructorUsedError;

Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
Expand Down Expand Up @@ -70,7 +72,8 @@ abstract class $BallScoreModelCopyWith<$Res> {
String? wicket_taker_id,
bool is_four,
bool is_six,
DateTime time});
DateTime? time,
@TimeStampJsonConverter() DateTime? score_time});
}

/// @nodoc
Expand Down Expand Up @@ -103,7 +106,8 @@ class _$BallScoreModelCopyWithImpl<$Res, $Val extends BallScoreModel>
Object? wicket_taker_id = freezed,
Object? is_four = null,
Object? is_six = null,
Object? time = null,
Object? time = freezed,
Object? score_time = freezed,
}) {
return _then(_value.copyWith(
id: null == id
Expand Down Expand Up @@ -174,10 +178,14 @@ class _$BallScoreModelCopyWithImpl<$Res, $Val extends BallScoreModel>
? _value.is_six
: is_six // ignore: cast_nullable_to_non_nullable
as bool,
time: null == time
time: freezed == time
? _value.time
: time // ignore: cast_nullable_to_non_nullable
as DateTime,
as DateTime?,
score_time: freezed == score_time
? _value.score_time
: score_time // ignore: cast_nullable_to_non_nullable
as DateTime?,
) as $Val);
}
}
Expand Down Expand Up @@ -208,7 +216,8 @@ abstract class _$$BallScoreModelImplCopyWith<$Res>
String? wicket_taker_id,
bool is_four,
bool is_six,
DateTime time});
DateTime? time,
@TimeStampJsonConverter() DateTime? score_time});
}

/// @nodoc
Expand Down Expand Up @@ -239,7 +248,8 @@ class __$$BallScoreModelImplCopyWithImpl<$Res>
Object? wicket_taker_id = freezed,
Object? is_four = null,
Object? is_six = null,
Object? time = null,
Object? time = freezed,
Object? score_time = freezed,
}) {
return _then(_$BallScoreModelImpl(
id: null == id
Expand Down Expand Up @@ -310,10 +320,14 @@ class __$$BallScoreModelImplCopyWithImpl<$Res>
? _value.is_six
: is_six // ignore: cast_nullable_to_non_nullable
as bool,
time: null == time
time: freezed == time
? _value.time
: time // ignore: cast_nullable_to_non_nullable
as DateTime,
as DateTime?,
score_time: freezed == score_time
? _value.score_time
: score_time // ignore: cast_nullable_to_non_nullable
as DateTime?,
));
}
}
Expand All @@ -339,7 +353,8 @@ class _$BallScoreModelImpl implements _BallScoreModel {
this.wicket_taker_id,
required this.is_four,
required this.is_six,
required this.time});
this.time,
@TimeStampJsonConverter() this.score_time});

factory _$BallScoreModelImpl.fromJson(Map<String, dynamic> json) =>
_$$BallScoreModelImplFromJson(json);
Expand Down Expand Up @@ -379,11 +394,14 @@ class _$BallScoreModelImpl implements _BallScoreModel {
@override
final bool is_six;
@override
final DateTime time;
final DateTime? time;
@override
@TimeStampJsonConverter()
final DateTime? score_time;

@override
String toString() {
return 'BallScoreModel(id: $id, inning_id: $inning_id, match_id: $match_id, over_number: $over_number, ball_number: $ball_number, bowler_id: $bowler_id, batsman_id: $batsman_id, non_striker_id: $non_striker_id, runs_scored: $runs_scored, extras_type: $extras_type, extras_awarded: $extras_awarded, wicket_type: $wicket_type, fielding_position: $fielding_position, player_out_id: $player_out_id, wicket_taker_id: $wicket_taker_id, is_four: $is_four, is_six: $is_six, time: $time)';
return 'BallScoreModel(id: $id, inning_id: $inning_id, match_id: $match_id, over_number: $over_number, ball_number: $ball_number, bowler_id: $bowler_id, batsman_id: $batsman_id, non_striker_id: $non_striker_id, runs_scored: $runs_scored, extras_type: $extras_type, extras_awarded: $extras_awarded, wicket_type: $wicket_type, fielding_position: $fielding_position, player_out_id: $player_out_id, wicket_taker_id: $wicket_taker_id, is_four: $is_four, is_six: $is_six, time: $time, score_time: $score_time)';
}

@override
Expand Down Expand Up @@ -422,31 +440,35 @@ class _$BallScoreModelImpl implements _BallScoreModel {
other.wicket_taker_id == wicket_taker_id) &&
(identical(other.is_four, is_four) || other.is_four == is_four) &&
(identical(other.is_six, is_six) || other.is_six == is_six) &&
(identical(other.time, time) || other.time == time));
(identical(other.time, time) || other.time == time) &&
(identical(other.score_time, score_time) ||
other.score_time == score_time));
}

@JsonKey(ignore: true)
@override
int get hashCode => Object.hash(
runtimeType,
id,
inning_id,
match_id,
over_number,
ball_number,
bowler_id,
batsman_id,
non_striker_id,
runs_scored,
extras_type,
extras_awarded,
wicket_type,
fielding_position,
player_out_id,
wicket_taker_id,
is_four,
is_six,
time);
int get hashCode => Object.hashAll([
runtimeType,
id,
inning_id,
match_id,
over_number,
ball_number,
bowler_id,
batsman_id,
non_striker_id,
runs_scored,
extras_type,
extras_awarded,
wicket_type,
fielding_position,
player_out_id,
wicket_taker_id,
is_four,
is_six,
time,
score_time
]);

@JsonKey(ignore: true)
@override
Expand All @@ -465,24 +487,26 @@ class _$BallScoreModelImpl implements _BallScoreModel {

abstract class _BallScoreModel implements BallScoreModel {
const factory _BallScoreModel(
{required final String id,
required final String inning_id,
required final String match_id,
required final int over_number,
required final int ball_number,
required final String bowler_id,
required final String batsman_id,
required final String non_striker_id,
required final int runs_scored,
final ExtrasType? extras_type,
final int? extras_awarded,
final WicketType? wicket_type,
final FieldingPositionType? fielding_position,
final String? player_out_id,
final String? wicket_taker_id,
required final bool is_four,
required final bool is_six,
required final DateTime time}) = _$BallScoreModelImpl;
{required final String id,
required final String inning_id,
required final String match_id,
required final int over_number,
required final int ball_number,
required final String bowler_id,
required final String batsman_id,
required final String non_striker_id,
required final int runs_scored,
final ExtrasType? extras_type,
final int? extras_awarded,
final WicketType? wicket_type,
final FieldingPositionType? fielding_position,
final String? player_out_id,
final String? wicket_taker_id,
required final bool is_four,
required final bool is_six,
final DateTime? time,
@TimeStampJsonConverter() final DateTime? score_time}) =
_$BallScoreModelImpl;

factory _BallScoreModel.fromJson(Map<String, dynamic> json) =
_$BallScoreModelImpl.fromJson;
Expand Down Expand Up @@ -522,7 +546,10 @@ abstract class _BallScoreModel implements BallScoreModel {
@override
bool get is_six;
@override
DateTime get time;
DateTime? get time;
@override
@TimeStampJsonConverter()
DateTime? get score_time;
@override
@JsonKey(ignore: true)
_$$BallScoreModelImplCopyWith<_$BallScoreModelImpl> get copyWith =>
Expand Down
21 changes: 19 additions & 2 deletions data/lib/api/ball_score/ball_score_model.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion data/lib/api/match/match_model.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// ignore_for_file: non_constant_identifier_names

import 'package:cloud_firestore/cloud_firestore.dart';
import '../../converter/timestamp_json_converter.dart';
import '../../extensions/double_extensions.dart';
import '../team/team_model.dart';
import '../user/user_models.dart';
Expand All @@ -27,7 +28,8 @@ class MatchModel with _$MatchModel {
@Default([]) List<int> power_play_overs3,
required String city,
required String ground,
required DateTime start_time,
DateTime? start_time,
@TimeStampJsonConverter() DateTime? start_at,
required BallType ball_type,
required PitchType pitch_type,
required String created_by,
Expand Down Expand Up @@ -114,6 +116,7 @@ class RevisedTarget with _$RevisedTarget {
@Default(0) int runs,
@Default(0) double overs,
DateTime? time,
@TimeStampJsonConverter() DateTime? revised_time,
}) = _RevisedTarget;

factory RevisedTarget.fromJson(Map<String, dynamic> json) =>
Expand Down
Loading

0 comments on commit 0985bae

Please sign in to comment.