feat(flutter): send timezone on login + app-start + weekly
Flutter client posts FlutterTimezone.getLocalTimezone() to PUT /api/me/timezone on every setSession (login / register success) and on every AuthController.build (app cold-start with valid session), when the locally-stored tz_last_sent_at is >7 days old. Cadence tracked in flutter_secure_storage so it survives app restarts. Failures swallowed: the server's UTC default + last-known value keep the scheduler functioning until the next attempt. Completes the client side of #392 Half B (per-user timezone scheduling). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -38,4 +38,12 @@ class MeApi {
|
||||
);
|
||||
return SystemPlaylistsStatus.fromJson(r.data ?? const {});
|
||||
}
|
||||
|
||||
/// PUT /api/me/timezone — submit the device's IANA timezone. The
|
||||
/// scheduler uses this to fire the user's daily playlist build at
|
||||
/// 03:00 in their local time. See AuthController._sendTimezoneIfStale
|
||||
/// for the weekly cadence trigger.
|
||||
Future<void> putTimezone(String timezone) async {
|
||||
await _dio.put<void>('/api/me/timezone', data: {'timezone': timezone});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user