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 toMap() { return { if (id != null) 'id': id, 'company_id': companyId, 'staff_id': staffId, 'minutes_before': minutesBefore, 'channel': channel, }; } factory ReminderDefaultModel.fromMap(Map 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 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'; } }