formattazione testo da e verso json

This commit is contained in:
2026-04-13 10:37:12 +02:00
parent 55b0a0839d
commit d72b329a13
4 changed files with 34 additions and 9 deletions

View File

@@ -0,0 +1,22 @@
extension MyStringExtensions on String? {
// Gestiamo anche il nullable per sicurezza
String myFormat() {
if (this == null || this!.trim().isEmpty) return '';
return this!
.trim()
.toLowerCase()
.split(' ')
.where((word) => word.isNotEmpty) // Evita problemi con doppi spazi
.map((word) {
if (word.contains('iphone') || word.contains('ipad')) {
return word.replaceFirst('ip', 'iP');
}
if (word.contains('imac')) {
return word.replaceFirst('im', 'iM');
}
return word[0].toUpperCase() + word.substring(1);
})
.join(' ');
}
}

View File

@@ -1,4 +1,5 @@
import 'package:equatable/equatable.dart'; import 'package:equatable/equatable.dart';
import 'package:flux/core/utils/string_extensions.dart';
class CustomerModel extends Equatable { class CustomerModel extends Equatable {
final String? id; // Bigint in SQL final String? id; // Bigint in SQL
@@ -81,7 +82,7 @@ class CustomerModel extends Equatable {
createdAt: json['created_at'] != null createdAt: json['created_at'] != null
? DateTime.parse(json['created_at']) ? DateTime.parse(json['created_at'])
: null, : null,
nome: json['nome'], nome: (json['nome'] as String).myFormat(),
telefono: json['telefono'], telefono: json['telefono'],
email: json['email'], email: json['email'],
note: json['note'] ?? '', note: json['note'] ?? '',
@@ -98,9 +99,9 @@ class CustomerModel extends Equatable {
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
return { return {
if (id != null) 'id': id, if (id != null) 'id': id,
'nome': nome, 'nome': nome.toLowerCase(),
'telefono': telefono, 'telefono': telefono,
'email': email, 'email': email.toLowerCase(),
'note': note, 'note': note,
if (dataUltimoContatto != null) if (dataUltimoContatto != null)
'data_ultimo_contatto': dataUltimoContatto!.toIso8601String(), 'data_ultimo_contatto': dataUltimoContatto!.toIso8601String(),

View File

@@ -1,4 +1,5 @@
import 'package:equatable/equatable.dart'; import 'package:equatable/equatable.dart';
import 'package:flux/core/utils/string_extensions.dart';
class BrandModel extends Equatable { class BrandModel extends Equatable {
final String? id; final String? id;
@@ -18,7 +19,7 @@ class BrandModel extends Equatable {
factory BrandModel.fromJson(Map<String, dynamic> json) { factory BrandModel.fromJson(Map<String, dynamic> json) {
return BrandModel( return BrandModel(
id: json['id'] as String, id: json['id'] as String,
name: json['name'] as String, name: (json['name'] as String).myFormat(),
companyId: json['company_id'] as String, companyId: json['company_id'] as String,
isActive: json['is_active'] as bool? ?? true, isActive: json['is_active'] as bool? ?? true,
createdAt: json['created_at'] != null createdAt: json['created_at'] != null
@@ -30,7 +31,7 @@ class BrandModel extends Equatable {
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
return { return {
if (id != null) 'id': id, if (id != null) 'id': id,
'name': name, 'name': name.toLowerCase(),
'company_id': companyId, 'company_id': companyId,
'is_active': isActive, 'is_active': isActive,
}; };

View File

@@ -1,4 +1,5 @@
import 'package:equatable/equatable.dart'; import 'package:equatable/equatable.dart';
import 'package:flux/core/utils/string_extensions.dart';
class ModelModel extends Equatable { class ModelModel extends Equatable {
final String? id; final String? id;
@@ -20,8 +21,8 @@ class ModelModel extends Equatable {
factory ModelModel.fromJson(Map<String, dynamic> json) { factory ModelModel.fromJson(Map<String, dynamic> json) {
return ModelModel( return ModelModel(
id: json['id'] as String, id: json['id'] as String,
name: json['name'] as String, name: (json['name'] as String).myFormat(),
nameWithBrand: json['name_with_brand'] as String, nameWithBrand: (json['name_with_brand'] as String).myFormat(),
brandId: json['brand_id'] as String, brandId: json['brand_id'] as String,
isActive: json['is_active'] as bool? ?? true, isActive: json['is_active'] as bool? ?? true,
createdAt: json['created_at'] != null createdAt: json['created_at'] != null
@@ -33,8 +34,8 @@ class ModelModel extends Equatable {
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
return { return {
if (id != null) 'id': id, if (id != null) 'id': id,
'name': name, 'name': name.toLowerCase(),
'name_with_brand': nameWithBrand, 'name_with_brand': nameWithBrand.toLowerCase(),
'brand_id': brandId, 'brand_id': brandId,
'is_active': isActive, 'is_active': isActive,
}; };