Files
trainhub-flutter/lib/presentation/workout_session/workout_session_state.dart
Kazimierz Ciołek 782986a632 Initial commit
2026-02-19 02:49:29 +01:00

30 lines
943 B
Dart

import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:trainhub_flutter/domain/entities/workout_activity.dart';
part 'workout_session_state.freezed.dart';
@freezed
class WorkoutSessionState with _$WorkoutSessionState {
const factory WorkoutSessionState({
required List<WorkoutActivityEntity> activities,
@Default(0) int currentIndex,
@Default(0) int timeRemaining,
@Default(0) int totalTimeElapsed,
@Default(false) bool isRunning,
@Default(false) bool isFinished,
}) = _WorkoutSessionState;
const WorkoutSessionState._();
WorkoutActivityEntity? get currentActivity =>
currentIndex < activities.length ? activities[currentIndex] : null;
WorkoutActivityEntity? get nextActivity =>
currentIndex + 1 < activities.length
? activities[currentIndex + 1]
: null;
double get progress =>
activities.isEmpty ? 0.0 : currentIndex / activities.length;
}