feat: Version 3.3.4 - Nouvelle architecture pages, optimisations widgets Flutter et API
- Mise à jour VERSION vers 3.3.4 - Optimisations et révisions architecture API (deploy-api.sh, scripts de migration) - Ajout documentation Stripe Tap to Pay complète - Migration vers polices Inter Variable pour Flutter - Optimisations build Android et nettoyage fichiers temporaires - Amélioration système de déploiement avec gestion backups - Ajout scripts CRON et migrations base de données 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -82,6 +82,9 @@ class AmicaleModel extends HiveObject {
|
||||
@HiveField(25)
|
||||
final bool chkUserDeletePass;
|
||||
|
||||
@HiveField(26)
|
||||
final bool chkLotActif;
|
||||
|
||||
AmicaleModel({
|
||||
required this.id,
|
||||
required this.name,
|
||||
@@ -109,6 +112,7 @@ class AmicaleModel extends HiveObject {
|
||||
this.chkUsernameManuel = false,
|
||||
this.logoBase64,
|
||||
this.chkUserDeletePass = false,
|
||||
this.chkLotActif = false,
|
||||
});
|
||||
|
||||
// Factory pour convertir depuis JSON (API)
|
||||
@@ -145,6 +149,8 @@ class AmicaleModel extends HiveObject {
|
||||
json['chk_username_manuel'] == 1 || json['chk_username_manuel'] == true;
|
||||
final bool chkUserDeletePass =
|
||||
json['chk_user_delete_pass'] == 1 || json['chk_user_delete_pass'] == true;
|
||||
final bool chkLotActif =
|
||||
json['chk_lot_actif'] == 1 || json['chk_lot_actif'] == true;
|
||||
|
||||
// Traiter le logo si présent
|
||||
String? logoBase64;
|
||||
@@ -199,6 +205,7 @@ class AmicaleModel extends HiveObject {
|
||||
chkUsernameManuel: chkUsernameManuel,
|
||||
logoBase64: logoBase64,
|
||||
chkUserDeletePass: chkUserDeletePass,
|
||||
chkLotActif: chkLotActif,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -230,6 +237,7 @@ class AmicaleModel extends HiveObject {
|
||||
'chk_mdp_manuel': chkMdpManuel ? 1 : 0,
|
||||
'chk_username_manuel': chkUsernameManuel ? 1 : 0,
|
||||
'chk_user_delete_pass': chkUserDeletePass ? 1 : 0,
|
||||
'chk_lot_actif': chkLotActif ? 1 : 0,
|
||||
// Note: logoBase64 n'est pas envoyé via toJson (lecture seule depuis l'API)
|
||||
};
|
||||
}
|
||||
@@ -261,6 +269,7 @@ class AmicaleModel extends HiveObject {
|
||||
bool? chkUsernameManuel,
|
||||
String? logoBase64,
|
||||
bool? chkUserDeletePass,
|
||||
bool? chkLotActif,
|
||||
}) {
|
||||
return AmicaleModel(
|
||||
id: id,
|
||||
@@ -289,6 +298,7 @@ class AmicaleModel extends HiveObject {
|
||||
chkUsernameManuel: chkUsernameManuel ?? this.chkUsernameManuel,
|
||||
logoBase64: logoBase64 ?? this.logoBase64,
|
||||
chkUserDeletePass: chkUserDeletePass ?? this.chkUserDeletePass,
|
||||
chkLotActif: chkLotActif ?? this.chkLotActif,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,13 +43,14 @@ class AmicaleModelAdapter extends TypeAdapter<AmicaleModel> {
|
||||
chkUsernameManuel: fields[23] as bool,
|
||||
logoBase64: fields[24] as String?,
|
||||
chkUserDeletePass: fields[25] as bool,
|
||||
chkLotActif: fields[26] as bool,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void write(BinaryWriter writer, AmicaleModel obj) {
|
||||
writer
|
||||
..writeByte(26)
|
||||
..writeByte(27)
|
||||
..writeByte(0)
|
||||
..write(obj.id)
|
||||
..writeByte(1)
|
||||
@@ -101,7 +102,9 @@ class AmicaleModelAdapter extends TypeAdapter<AmicaleModel> {
|
||||
..writeByte(24)
|
||||
..write(obj.logoBase64)
|
||||
..writeByte(25)
|
||||
..write(obj.chkUserDeletePass);
|
||||
..write(obj.chkUserDeletePass)
|
||||
..writeByte(26)
|
||||
..write(obj.chkLotActif);
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -92,6 +92,9 @@ class PassageModel extends HiveObject {
|
||||
@HiveField(28)
|
||||
bool isSynced;
|
||||
|
||||
@HiveField(29)
|
||||
String? stripePaymentId;
|
||||
|
||||
PassageModel({
|
||||
required this.id,
|
||||
required this.fkOperation,
|
||||
@@ -122,6 +125,7 @@ class PassageModel extends HiveObject {
|
||||
required this.lastSyncedAt,
|
||||
this.isActive = true,
|
||||
this.isSynced = false,
|
||||
this.stripePaymentId,
|
||||
});
|
||||
|
||||
// Factory pour convertir depuis JSON (API)
|
||||
@@ -192,6 +196,7 @@ class PassageModel extends HiveObject {
|
||||
lastSyncedAt: DateTime.now(),
|
||||
isActive: true,
|
||||
isSynced: true,
|
||||
stripePaymentId: json['stripe_payment_id']?.toString(),
|
||||
);
|
||||
} catch (e) {
|
||||
debugPrint('❌ Erreur parsing PassageModel: $e');
|
||||
@@ -229,6 +234,7 @@ class PassageModel extends HiveObject {
|
||||
'name': name,
|
||||
'email': email,
|
||||
'phone': phone,
|
||||
'stripe_payment_id': stripePaymentId,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -263,6 +269,7 @@ class PassageModel extends HiveObject {
|
||||
DateTime? lastSyncedAt,
|
||||
bool? isActive,
|
||||
bool? isSynced,
|
||||
String? stripePaymentId,
|
||||
}) {
|
||||
return PassageModel(
|
||||
id: id ?? this.id,
|
||||
@@ -294,6 +301,7 @@ class PassageModel extends HiveObject {
|
||||
lastSyncedAt: lastSyncedAt ?? this.lastSyncedAt,
|
||||
isActive: isActive ?? this.isActive,
|
||||
isSynced: isSynced ?? this.isSynced,
|
||||
stripePaymentId: stripePaymentId ?? this.stripePaymentId,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,13 +46,14 @@ class PassageModelAdapter extends TypeAdapter<PassageModel> {
|
||||
lastSyncedAt: fields[26] as DateTime,
|
||||
isActive: fields[27] as bool,
|
||||
isSynced: fields[28] as bool,
|
||||
stripePaymentId: fields[29] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void write(BinaryWriter writer, PassageModel obj) {
|
||||
writer
|
||||
..writeByte(29)
|
||||
..writeByte(30)
|
||||
..writeByte(0)
|
||||
..write(obj.id)
|
||||
..writeByte(1)
|
||||
@@ -110,7 +111,9 @@ class PassageModelAdapter extends TypeAdapter<PassageModel> {
|
||||
..writeByte(27)
|
||||
..write(obj.isActive)
|
||||
..writeByte(28)
|
||||
..write(obj.isSynced);
|
||||
..write(obj.isSynced)
|
||||
..writeByte(29)
|
||||
..write(obj.stripePaymentId);
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user