- Fix TimeOfDayExtension.add() to handle minute overflow via total-minutes math - genRanges() now takes stepMinutes param (default 30, clamp 5-480) - Profesional model: slotDurationMinutes field (parsed from slot_duration_minutes) - ProfessionalFormProvider: saves slot duration alongside schedules on Guardar - schedule_view: _SlotDurationPicker chip selector (15/20/30/45/60/90/120 min) - ProfessionalCalendarView + CalendarView: pass slotDurationMinutes to genRanges Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
21 lines
565 B
Dart
21 lines
565 B
Dart
import 'package:flutter/material.dart';
|
|
|
|
extension TimeOfDayExtension on TimeOfDay {
|
|
TimeOfDay add({int hour = 0, int minute = 0}) {
|
|
final total = this.hour * 60 + this.minute + hour * 60 + minute;
|
|
return TimeOfDay(hour: (total ~/ 60) % 24, minute: total % 60);
|
|
}
|
|
|
|
int compareTo(TimeOfDay other) {
|
|
if (hour < other.hour) return -1;
|
|
if (hour > other.hour) return 1;
|
|
if (minute < other.minute) return -1;
|
|
if (minute > other.minute) return 1;
|
|
return 0;
|
|
}
|
|
|
|
bool isBefore(TimeOfDay other) {
|
|
return compareTo(other) == -1;
|
|
}
|
|
}
|