b
This commit is contained in:
65
lib/features/tasks/models/reminder_default_model.dart
Normal file
65
lib/features/tasks/models/reminder_default_model.dart
Normal file
@@ -0,0 +1,65 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
class ReminderDefaultModel extends Equatable {
|
||||
final String? id;
|
||||
final String companyId;
|
||||
final String staffId;
|
||||
final int minutesBefore;
|
||||
final String channel; // 'push' o 'email'
|
||||
|
||||
const ReminderDefaultModel({
|
||||
this.id,
|
||||
required this.companyId,
|
||||
required this.staffId,
|
||||
required this.minutesBefore,
|
||||
required this.channel,
|
||||
});
|
||||
|
||||
ReminderDefaultModel copyWith({
|
||||
String? id,
|
||||
String? companyId,
|
||||
String? staffId,
|
||||
int? minutesBefore,
|
||||
String? channel,
|
||||
}) {
|
||||
return ReminderDefaultModel(
|
||||
id: id ?? this.id,
|
||||
companyId: companyId ?? this.companyId,
|
||||
staffId: staffId ?? this.staffId,
|
||||
minutesBefore: minutesBefore ?? this.minutesBefore,
|
||||
channel: channel ?? this.channel,
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toMap() {
|
||||
return {
|
||||
if (id != null) 'id': id,
|
||||
'company_id': companyId,
|
||||
'staff_id': staffId,
|
||||
'minutes_before': minutesBefore,
|
||||
'channel': channel,
|
||||
};
|
||||
}
|
||||
|
||||
factory ReminderDefaultModel.fromMap(Map<String, dynamic> map) {
|
||||
return ReminderDefaultModel(
|
||||
id: map['id'] as String?,
|
||||
companyId: map['company_id'] as String,
|
||||
staffId: map['staff_id'] as String,
|
||||
minutesBefore: map['minutes_before'] as int,
|
||||
channel: map['channel'] as String,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, companyId, staffId, minutesBefore, channel];
|
||||
|
||||
// Helper per la UI: formatta i minuti in qualcosa di leggibile (es. "1 ora prima")
|
||||
String get friendlyTime {
|
||||
if (minutesBefore < 60) return '$minutesBefore minuti prima';
|
||||
if (minutesBefore == 60) return '1 ora prima';
|
||||
if (minutesBefore < 1440) return '${minutesBefore ~/ 60} ore prima';
|
||||
if (minutesBefore == 1440) return '1 giorno prima';
|
||||
return '${minutesBefore ~/ 1440} giorni prima';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user