@@ -17,6 +17,9 @@ class DetailRouteController extends GetxController {
1717 var onEdit = false .obs;
1818 var isReadOnly = false .obs;
1919
20+ // Track whether user explicitly selected a start date
21+ bool startEdited = false ;
22+
2023 @override
2124 void onInit () {
2225 super .onInit ();
@@ -50,13 +53,19 @@ class DetailRouteController extends GetxController {
5053 }
5154
5255 if (name == 'start' ) {
53- debugPrint ( 'Start Value Changed to $ newValue ' );
56+ startEdited = true ; // MARK AS USER-SELECTED
5457 startValue.value = newValue;
5558 }
5659 initValues ();
5760 }
5861
5962 Future <void > saveChanges () async {
63+ // If start was never edited AND backend auto-generated it (start == entry)
64+ if (! startEdited &&
65+ modify.original.start != null &&
66+ modify.original.start! .isAtSameMomentAs (modify.original.entry)) {
67+ modify.set ('start' , null ); // remove auto start
68+ }
6069 var now = DateTime .now ().toUtc ();
6170 modify.save (modified: () => now);
6271 onEdit.value = false ;
@@ -106,7 +115,20 @@ class DetailRouteController extends GetxController {
106115 statusValue.value = modify.draft.status;
107116 entryValue.value = modify.draft.entry;
108117 modifiedValue.value = modify.draft.modified;
109- startValue.value ?? = null ;
118+ final originalStart = modify.original.start;
119+ final originalEntry = modify.original.entry;
120+
121+ final backendAutoStart = (originalStart != null &&
122+ originalStart.isAtSameMomentAs (originalEntry));
123+
124+ // START DATE LOGIC (THE FIX)
125+ if (startEdited) {
126+ startValue.value = modify.draft.start;
127+ } else if (backendAutoStart) {
128+ startValue.value = null ; // Do not show backend auto start
129+ } else {
130+ startValue.value = modify.draft.start; // Existing meaningful start
131+ }
110132 endValue.value = modify.draft.end;
111133 dueValue.value = modify.draft.due;
112134 waitValue.value = modify.draft.wait;
@@ -148,15 +170,7 @@ class DetailRouteController extends GetxController {
148170 const Duration (milliseconds: 500 ),
149171 () {
150172 SaveTourStatus .getDetailsTourStatus ().then ((value) => {
151- if (value == false )
152- {
153- tutorialCoachMark.show (context: context),
154- }
155- else
156- {
157- // ignore: avoid_print
158- print ('User has seen this page' ),
159- }
173+ if (! value) {tutorialCoachMark.show (context: context)}
160174 });
161175 },
162176 );
0 commit comments