From 23dbe21a2c34241f037a60023e7635326fba88d1 Mon Sep 17 00:00:00 2001 From: yaso Date: Tue, 4 Mar 2025 12:58:37 +0200 Subject: [PATCH] appointment and waiting room update --- .../mih_apis/mih_mzansi_calendar_apis.dart | 209 ++++++++++++++++-- Frontend/lib/mih_objects/arguments.dart | 2 + .../mih_packages/calendar/appointments.dart | 6 + .../builder/build_appointment_list.dart | 57 ++++- .../calendar/mzansi_calendar.dart | 1 + .../lib/mih_packages/mih_home/mih_home.dart | 11 +- .../pat_manager/app_tools/waiting_room.dart | 113 ++++++++-- .../pat_manager/pat_manager.dart | 9 + Frontend/pubspec.lock | 74 +++---- 9 files changed, 391 insertions(+), 91 deletions(-) diff --git a/Frontend/lib/mih_apis/mih_mzansi_calendar_apis.dart b/Frontend/lib/mih_apis/mih_mzansi_calendar_apis.dart index ec92f021..f5388b96 100644 --- a/Frontend/lib/mih_apis/mih_mzansi_calendar_apis.dart +++ b/Frontend/lib/mih_apis/mih_mzansi_calendar_apis.dart @@ -6,6 +6,7 @@ import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/appointment.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/business.dart'; +import 'package:Mzansi_Innovation_Hub/mih_objects/business_user.dart'; import 'package:flutter/material.dart'; // import '../mih_components/mih_pop_up_messages/mih_error_message.dart'; // import '../mih_components/mih_pop_up_messages/mih_success_message.dart'; @@ -90,15 +91,15 @@ class MihMzansiCalendarApis { List.from(l.map((model) => Appointment.fromJson(model))); //print("Here3"); //print(patientQueue); - if (waitingRoom == true) { - businessAppointments = businessAppointments - .where((element) => element.app_id != "") - .toList(); - } else { - businessAppointments = businessAppointments - .where((element) => element.app_id == "") - .toList(); - } + // if (waitingRoom == true) { + // businessAppointments = businessAppointments + // .where((element) => element.app_id != "") + // .toList(); + // } else { + // businessAppointments = businessAppointments + // .where((element) => element.app_id == "") + // .toList(); + // } return businessAppointments; } else { throw Exception('failed to fatch business appointments'); @@ -113,8 +114,12 @@ class MihMzansiCalendarApis { /// BuildContext context, /// /// Returns VOID (TRIGGERS NOTIGICATIOPN ON SUCCESS) - static Future deleteLoyaltyCardAPICall( + static Future deleteAppointmentAPICall( AppUser signedInUser, + bool personalSelected, + Business? business, + BusinessUser? businessUser, + bool inWaitingRoom, int idappointments, BuildContext context, ) async { @@ -130,10 +135,27 @@ class MihMzansiCalendarApis { if (response.statusCode == 200) { Navigator.of(context).pop(); Navigator.of(context).pop(); - Navigator.of(context).pushNamed( - '/calendar', - arguments: signedInUser, - ); + if (inWaitingRoom) { + Navigator.of(context).pushNamed( + '/patient-manager', + arguments: PatManagerArguments( + signedInUser, + false, + business, + businessUser, + ), + ); + } else { + Navigator.of(context).pushNamed( + '/calendar', + arguments: CalendarArguments( + signedInUser, + false, + business, + businessUser, + ), + ); + } String message = "The appointment has been deleted successfully. This means it will no longer be visible in your Calendar."; successPopUp(message, context); @@ -191,6 +213,7 @@ class MihMzansiCalendarApis { signedInUser, true, null, + null, ), ); successPopUp(message, context); @@ -215,6 +238,8 @@ class MihMzansiCalendarApis { static Future addBusinessAppointment( AppUser signedInUser, Business business, + BusinessUser businessUser, + bool inWaitingRoom, String title, String description, String date, @@ -244,14 +269,28 @@ class MihMzansiCalendarApis { "Your appointment \"$title\" for the $date $title has been deleted."; // Navigator.pop(context); - Navigator.of(context).pushNamed( - '/calendar', - arguments: CalendarArguments( - signedInUser, - false, - business, - ), - ); + if (inWaitingRoom) { + Navigator.of(context).pushNamed( + '/patient-manager', + arguments: PatManagerArguments( + signedInUser, + false, + business, + businessUser, + ), + ); + } else { + Navigator.of(context).pushNamed( + '/calendar', + arguments: CalendarArguments( + signedInUser, + false, + business, + businessUser, + ), + ); + } + successPopUp(message, context); } else { Navigator.pop(context); @@ -329,6 +368,7 @@ class MihMzansiCalendarApis { static Future updatePersonalAppointment( AppUser signedInUser, Business? business, + BusinessUser? businessUser, int idappointments, String title, String description, @@ -364,6 +404,131 @@ class MihMzansiCalendarApis { signedInUser, true, business, + businessUser, + ), + ); + successPopUp(message, context); + } else { + Navigator.pop(context); + internetConnectionPopUp(context); + } + } + + /// This function is used to update an appointment to users mzansi Calendar. + /// + /// Patameters:- + /// AppUser signedInUser, + /// String app_id, + /// int idappointments, + /// String title, + /// String description, + /// String date, + /// String time, + /// BuildContext context, + /// + /// Returns VOID (TRIGGERS SUCCESS pop up) + static Future updateBusinessAppointment( + AppUser signedInUser, + Business? business, + BusinessUser? businessUser, + int idappointments, + String title, + String description, + String date, + String time, + BuildContext context, + ) async { + loadingPopUp(context); + var response = await http.put( + Uri.parse("${AppEnviroment.baseApiUrl}/appointment/update/"), + headers: { + "Content-Type": "application/json; charset=UTF-8" + }, + body: jsonEncode({ + "idappointments": idappointments, + "title": title, + "description": description, + "date": date, + "time": time, + }), + ); + if (response.statusCode == 200) { + // Navigator.pop(context); + Navigator.pop(context); + Navigator.pop(context); + String message = + "Your appointment \"$title\" has been updates to the $date $title."; + + Navigator.pop(context); + Navigator.of(context).pushNamed( + '/calendar', + arguments: CalendarArguments( + signedInUser, + false, + business, + businessUser, + ), + ); + successPopUp(message, context); + } else { + Navigator.pop(context); + internetConnectionPopUp(context); + } + } + + /// This function is used to update an appointment to users mzansi Calendar. + /// + /// Patameters:- + /// AppUser signedInUser, + /// String app_id, + /// int idappointments, + /// String title, + /// String description, + /// String date, + /// String time, + /// BuildContext context, + /// + /// Returns VOID (TRIGGERS SUCCESS pop up) + static Future updatePatientAppointment( + AppUser signedInUser, + Business? business, + BusinessUser? businessUser, + int idappointments, + String title, + String description, + String date, + String time, + BuildContext context, + ) async { + loadingPopUp(context); + var response = await http.put( + Uri.parse("${AppEnviroment.baseApiUrl}/appointment/update/"), + headers: { + "Content-Type": "application/json; charset=UTF-8" + }, + body: jsonEncode({ + "idappointments": idappointments, + "title": title, + "description": description, + "date": date, + "time": time, + }), + ); + if (response.statusCode == 200) { + // Navigator.pop(context); + Navigator.pop(context); + Navigator.pop(context); + String message = + "Your appointment \"$title\" has been updates to the $date $title."; + + Navigator.pop(context); + Navigator.of(context).pushNamed( + '/patient-manager', + arguments: PatManagerArguments( + signedInUser, + false, + business, + businessUser, ), ); successPopUp(message, context); diff --git a/Frontend/lib/mih_objects/arguments.dart b/Frontend/lib/mih_objects/arguments.dart index 26dab93b..9ede98d7 100644 --- a/Frontend/lib/mih_objects/arguments.dart +++ b/Frontend/lib/mih_objects/arguments.dart @@ -174,11 +174,13 @@ class CalendarArguments { final AppUser signedInUser; final bool personalSelected; final Business? business; + final BusinessUser? businessUser; CalendarArguments( this.signedInUser, this.personalSelected, this.business, + this.businessUser, ); } diff --git a/Frontend/lib/mih_packages/calendar/appointments.dart b/Frontend/lib/mih_packages/calendar/appointments.dart index 74e76eaa..fe1e09ac 100644 --- a/Frontend/lib/mih_packages/calendar/appointments.dart +++ b/Frontend/lib/mih_packages/calendar/appointments.dart @@ -9,6 +9,7 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih-app_tool_bo import 'package:Mzansi_Innovation_Hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/appointment.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/business.dart'; +import 'package:Mzansi_Innovation_Hub/mih_objects/business_user.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/calendar/builder/build_appointment_list.dart'; import 'package:flutter/material.dart'; import '../../main.dart'; @@ -21,12 +22,14 @@ import '../../mih_objects/app_user.dart'; class Appointments extends StatefulWidget { final AppUser signedInUser; final Business? business; + final BusinessUser? businessUser; final bool personalSelected; const Appointments({ super.key, required this.signedInUser, required this.business, + required this.businessUser, required this.personalSelected, }); @@ -60,6 +63,7 @@ class _PatientAccessRequestState extends State { appointmentList: appointmentList, signedInUser: widget.signedInUser, business: widget.business, + businessUser: widget.businessUser, personalSelected: widget.personalSelected, inWaitingRoom: false, titleController: _appointmentTitleController, @@ -182,6 +186,8 @@ class _PatientAccessRequestState extends State { MihMzansiCalendarApis.addBusinessAppointment( widget.signedInUser, widget.business!, + widget.businessUser!, + false, _appointmentTitleController.text, _appointmentDescriptionIDController.text, _appointmentDateController.text, diff --git a/Frontend/lib/mih_packages/calendar/builder/build_appointment_list.dart b/Frontend/lib/mih_packages/calendar/builder/build_appointment_list.dart index 5ef3b9d6..8bd78efe 100644 --- a/Frontend/lib/mih_packages/calendar/builder/build_appointment_list.dart +++ b/Frontend/lib/mih_packages/calendar/builder/build_appointment_list.dart @@ -12,12 +12,14 @@ import 'package:Mzansi_Innovation_Hub/mih_env/env.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/appointment.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/business.dart'; +import 'package:Mzansi_Innovation_Hub/mih_objects/business_user.dart'; import 'package:flutter/material.dart'; class BuildAppointmentList extends StatefulWidget { final List appointmentList; final AppUser signedInUser; final Business? business; + final BusinessUser? businessUser; final bool personalSelected; final bool inWaitingRoom; final TextEditingController titleController; @@ -31,6 +33,7 @@ class BuildAppointmentList extends StatefulWidget { required this.appointmentList, required this.signedInUser, required this.business, + required this.businessUser, required this.personalSelected, required this.inWaitingRoom, required this.titleController, @@ -505,16 +508,44 @@ class _BuildAppointmentListState extends State { void updateAppointmentCall(int index) { if (isAppointmentInputValid()) { - MihMzansiCalendarApis.updatePersonalAppointment( - widget.signedInUser, - widget.business, - widget.appointmentList[index].idappointments, - widget.titleController.text, - widget.descriptionIDController.text, - widget.dateController.text, - widget.timeController.text, - context, - ); + if (widget.personalSelected == true) { + MihMzansiCalendarApis.updatePersonalAppointment( + widget.signedInUser, + widget.business, + null, + widget.appointmentList[index].idappointments, + widget.titleController.text, + widget.descriptionIDController.text, + widget.dateController.text, + widget.timeController.text, + context, + ); + } else if (widget.personalSelected == false && + widget.inWaitingRoom == false) { + MihMzansiCalendarApis.updateBusinessAppointment( + widget.signedInUser, + widget.business, + widget.businessUser, + widget.appointmentList[index].idappointments, + widget.titleController.text, + widget.descriptionIDController.text, + widget.dateController.text, + widget.timeController.text, + context, + ); + } else { + MihMzansiCalendarApis.updatePatientAppointment( + widget.signedInUser, + widget.business, + widget.businessUser, + widget.appointmentList[index].idappointments, + widget.titleController.text, + widget.descriptionIDController.text, + widget.dateController.text, + widget.timeController.text, + context, + ); + } } else { showDialog( context: context, @@ -526,8 +557,12 @@ class _BuildAppointmentListState extends State { } void deleteAppointmentCall(int index) { - MihMzansiCalendarApis.deleteLoyaltyCardAPICall( + MihMzansiCalendarApis.deleteAppointmentAPICall( widget.signedInUser, + widget.personalSelected, + widget.business, + widget.businessUser, + widget.inWaitingRoom, widget.appointmentList[index].idappointments, context, ); diff --git a/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart b/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart index 0e5a21bc..4485808d 100644 --- a/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart +++ b/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart @@ -69,6 +69,7 @@ class _MzansiCalendarState extends State { Appointments( signedInUser: widget.arguments.signedInUser, business: widget.arguments.business, + businessUser: widget.arguments.businessUser, personalSelected: widget.arguments.personalSelected, ), ]; diff --git a/Frontend/lib/mih_packages/mih_home/mih_home.dart b/Frontend/lib/mih_packages/mih_home/mih_home.dart index 3344aecd..8708ca5a 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_home.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_home.dart @@ -38,6 +38,7 @@ import '../../mih_objects/business_user.dart'; import '../../mih_objects/notification.dart'; import '../test/test.dart'; +// ignore: must_be_immutable class MIHHome extends StatefulWidget { final AppUser signedInUser; final BusinessUser? businessUser; @@ -49,8 +50,8 @@ class MIHHome extends StatefulWidget { final bool isBusinessUser; final bool isBusinessUserNew; final bool isDevActive; - final bool personalSelected; - const MIHHome({ + bool personalSelected; + MIHHome({ super.key, required this.signedInUser, required this.businessUser, @@ -253,6 +254,7 @@ class _MIHHomeState extends State { widget.signedInUser, true, widget.business, + null, ), ); }, @@ -434,6 +436,7 @@ class _MIHHomeState extends State { widget.signedInUser, false, widget.business, + widget.businessUser, ), ); }, @@ -1171,8 +1174,10 @@ class _MIHHomeState extends State { text: "Personal", onPressed: () { setState(() { + widget.personalSelected = true; _selectedIndex = 0; }); + print("personal selected: ${widget.personalSelected}"); }, ), GButton( @@ -1180,8 +1185,10 @@ class _MIHHomeState extends State { text: "Business", onPressed: () { setState(() { + widget.personalSelected = false; _selectedIndex = 1; }); + print("personal selected: ${widget.personalSelected}"); }, ), ], diff --git a/Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/waiting_room.dart b/Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/waiting_room.dart index eae5583d..f5a99ba0 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/waiting_room.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/waiting_room.dart @@ -4,7 +4,6 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_calendar.dart'; import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_button.dart'; import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_date_input.dart'; import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_multiline_text_input.dart'; -import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart'; import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart'; import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_time_input.dart'; import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_window.dart'; @@ -15,19 +14,23 @@ import 'package:Mzansi_Innovation_Hub/mih_env/env.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/appointment.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/business.dart'; +import 'package:Mzansi_Innovation_Hub/mih_objects/business_user.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/calendar/builder/build_appointment_list.dart'; import 'package:flutter/material.dart'; class WaitingRoom extends StatefulWidget { final AppUser signedInUser; final Business? business; + final BusinessUser? businessUser; final bool personalSelected; - + final Function(int) onIndexChange; const WaitingRoom({ super.key, required this.signedInUser, - this.business, + required this.business, + required this.businessUser, required this.personalSelected, + required this.onIndexChange, }); @override @@ -52,6 +55,7 @@ class _WaitingRoomState extends State { late Future> businessAppointmentResults; late Future> appointmentResults; + bool inWaitingRoom = true; // Business Appointment Tool Widget getBusinessAppointmentsTool() { @@ -122,7 +126,7 @@ class _WaitingRoomState extends State { child: IconButton( color: MzanziInnovationHub.of(context)!.theme.primaryColor(), onPressed: () { - addAppointmentWindow(); + appointmentTypeSelection(); }, icon: const Icon( Icons.add, @@ -141,6 +145,7 @@ class _WaitingRoomState extends State { appointmentList: appointmentList, signedInUser: widget.signedInUser, business: widget.business, + businessUser: widget.businessUser, personalSelected: widget.personalSelected, inWaitingRoom: true, titleController: _appointmentTitleController, @@ -170,7 +175,89 @@ class _WaitingRoomState extends State { ); } + void appointmentTypeSelection() { + String question = "What type of appointment would you like to add?"; + question += + "\n\nExisting Patient: Add an appointment for an patient your practice has access to."; + question += + "\nExisting MIH User: Add an appointment for an existing MIH user your practice does not have access to."; + question += + "\nSkeleton Appointment: Add an appointment without a patient linked."; + showDialog( + context: context, + barrierDismissible: false, + builder: (context) { + return MIHWindow( + fullscreen: false, + windowTitle: "Appointment Type", + windowTools: [], + onWindowTapClose: () { + Navigator.of(context).pop(); + }, + windowBody: [ + Text( + question, + style: TextStyle( + fontSize: 20, + color: + MzanziInnovationHub.of(context)!.theme.secondaryColor()), + textAlign: TextAlign.left, + ), + const SizedBox(height: 15), + SizedBox( + width: 500, + height: 50, + child: MIHButton( + onTap: () { + widget.onIndexChange(1); + Navigator.of(context).pop(); + }, + buttonText: "Existing Patient", + buttonColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + textColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + ), + const SizedBox(height: 10), + SizedBox( + width: 500, + height: 50, + child: MIHButton( + onTap: () { + widget.onIndexChange(2); + Navigator.of(context).pop(); + }, + buttonText: "Existing MIH User", + buttonColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + textColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + ), + const SizedBox(height: 10), + SizedBox( + width: 500, + height: 50, + child: MIHButton( + onTap: () { + addAppointmentWindow(); + }, + buttonText: "Skeleton Appointment", + buttonColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + textColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + ), + ], + ); + }, + ); + } + void addAppointmentWindow() { + print(widget.personalSelected); showDialog( context: context, barrierDismissible: false, @@ -198,18 +285,6 @@ class _WaitingRoomState extends State { ), ), const SizedBox(height: 10), - SizedBox( - child: MIHSearchField( - controller: _patientController, - hintText: "Patient ID Number", - required: false, - editable: true, - onTap: () { - //To-Do: Add search functionality - }, - ), - ), - const SizedBox(height: 10), SizedBox( // width: 500, child: MIHDateField( @@ -244,9 +319,7 @@ class _WaitingRoomState extends State { height: 50, child: MIHButton( onTap: () { - //To-Do: Add appointment - print("To-Do: Add appointment"); - // addAppointmentCall(); + addAppointmentCall(); }, buttonText: "Add", buttonColor: @@ -267,6 +340,8 @@ class _WaitingRoomState extends State { MihMzansiCalendarApis.addBusinessAppointment( widget.signedInUser, widget.business!, + widget.businessUser!, + true, _appointmentTitleController.text, _appointmentDescriptionIDController.text, _appointmentDateController.text, diff --git a/Frontend/lib/mih_packages/patient_profile/pat_manager/pat_manager.dart b/Frontend/lib/mih_packages/patient_profile/pat_manager/pat_manager.dart index f7684fcb..851132a3 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_manager/pat_manager.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_manager/pat_manager.dart @@ -20,6 +20,13 @@ class PatManager extends StatefulWidget { class _PatManagerState extends State { int _selcetedIndex = 0; + + void updateIndex(int index) { + setState(() { + _selcetedIndex = index; + }); + } + @override Widget build(BuildContext context) { return MihApp( @@ -82,7 +89,9 @@ class _PatManagerState extends State { WaitingRoom( signedInUser: widget.arguments.signedInUser, business: widget.arguments.business, + businessUser: widget.arguments.businessUser, personalSelected: widget.arguments.personalSelected, + onIndexChange: updateIndex, ), MyPatientList( signedInUser: widget.arguments.signedInUser, diff --git a/Frontend/pubspec.lock b/Frontend/pubspec.lock index c39e76f4..1e829927 100644 --- a/Frontend/pubspec.lock +++ b/Frontend/pubspec.lock @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: async - sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.12.0" + version: "2.11.0" barcode: dependency: transitive description: @@ -85,10 +85,10 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.1" buffer: dependency: transitive description: @@ -181,10 +181,10 @@ packages: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.3.0" charcode: dependency: transitive description: @@ -213,10 +213,10 @@ packages: dependency: transitive description: name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" code_builder: dependency: transitive description: @@ -229,10 +229,10 @@ packages: dependency: transitive description: name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.19.1" + version: "1.19.0" convert: dependency: transitive description: @@ -333,10 +333,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.3.1" fetch_api: dependency: transitive description: @@ -676,18 +676,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.8" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -764,10 +764,10 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: @@ -788,10 +788,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.15.0" mime: dependency: transitive description: @@ -852,10 +852,10 @@ packages: dependency: transitive description: name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.9.0" path_parsing: dependency: transitive description: @@ -1153,10 +1153,10 @@ packages: dependency: transitive description: name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.10.1" + version: "1.10.0" sprintf: dependency: transitive description: @@ -1169,18 +1169,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.12.1" + version: "1.12.0" stream_channel: dependency: transitive description: name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.2" stream_transform: dependency: transitive description: @@ -1193,10 +1193,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.3.0" supertokens_flutter: dependency: "direct main" description: @@ -1281,18 +1281,18 @@ packages: dependency: transitive description: name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.3" timing: dependency: transitive description: @@ -1425,10 +1425,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.3.1" + version: "14.3.0" watcher: dependency: transitive description: @@ -1558,5 +1558,5 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=3.7.0-0 <3.9.0" + dart: ">=3.6.0 <3.9.0" flutter: ">=3.27.0"