feat(online): session compte, stockage sécurisé et adapter API (ticket #64)
Ajoute l'adapter API distant (infrastructure/remote/auth_api.dart, http_api_client.dart) et le stockage sécurisé du token d'auth (infrastructure/security/secure_storage_auth_token_store.dart), câblés dans app_bootstrap.dart. Étend le modèle Drift (migration schemaVersion 9→10) et la couche application (ports, use cases, entités) pour la session de compte. flutter pub get OK (ajout http, flutter_secure_storage), build_runner OK, dart format appliqué, analyze propre (mêmes infos préexistantes), 109/109 tests verts, build APK debug validé. Premier ticket du chantier "Ajouter les features serveur au client" (#63). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -24,6 +24,30 @@ abstract class SyncableTable extends Table {
|
||||
List<String> get customConstraints => const [];
|
||||
}
|
||||
|
||||
class OnlineAccountSessions extends Table {
|
||||
@override
|
||||
String get tableName => 'online_account_sessions';
|
||||
|
||||
TextColumn get id => text()();
|
||||
TextColumn get serverUserId => text().withLength(min: 1)();
|
||||
TextColumn get email => text().withLength(min: 1)();
|
||||
TextColumn get displayName => text().nullable()();
|
||||
BoolColumn get isLoggedIn => boolean()();
|
||||
DateTimeColumn get createdAt => dateTime()();
|
||||
DateTimeColumn get updatedAt => dateTime()();
|
||||
DateTimeColumn get lastAuthenticatedAt => dateTime().nullable()();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {id};
|
||||
|
||||
@override
|
||||
List<String> get customConstraints => [
|
||||
'UNIQUE (server_user_id)',
|
||||
'CHECK (length(trim(email)) > 0)',
|
||||
'CHECK (display_name IS NULL OR length(trim(display_name)) > 0)',
|
||||
];
|
||||
}
|
||||
|
||||
class MediaAssets extends SyncableTable {
|
||||
@override
|
||||
String get tableName => 'media_assets';
|
||||
|
||||
Reference in New Issue
Block a user