// SPDX-FileCopyrightText: © 2025 Nøkken.io <nokken.io@proton.me>
// SPDX-License-Identifier: AGPL-3.0
//
// route_arguments.dart
// Classes for passing typed arguments to routes
//
import 'package:nokken/src/features/medication_tracker/models/medication.dart';
import 'package:nokken/src/features/bloodwork_tracker/models/bloodwork.dart';

/* 
class ArgsCalendarDaily {
  final DateTime selectedDay;

  ArgsCalendarDaily({required this.selectedDay});
}*/

/// Arguments for the medication details screen
/// Passes the medication to be displayed (required)
class ArgsMedicationDetails {
  final Medication medication;

  ArgsMedicationDetails({required this.medication});
}

/// Arguments for the medication add/edit screen
/// Can be null when adding a new medication
class ArgsMedicaitonAddEdit {
  final Medication? medication;

  ArgsMedicaitonAddEdit({this.medication});
}

class ArgsInjectionSiteTracker {
  final InjectionSiteRotation? initialRotation;
  final Function(InjectionSiteRotation) onSave;

  ArgsInjectionSiteTracker({
    this.initialRotation,
    required this.onSave,
  });
}

/// Arguments for the bloodwork add/edit screen
/// Can be null when adding a new bloodwork record
class ArgsBloodworkAddEdit {
  final Bloodwork? bloodwork;

  ArgsBloodworkAddEdit({this.bloodwork});
}

/// Arguments for the bloodwork graph screen
/// Contains the selected hormone to display
class ArgsBloodworkGraph {
  final String? selectedHormone;

  ArgsBloodworkGraph({this.selectedHormone});
}
