configurable slot duration: UI picker + genRanges stepMinutes
- 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>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
46acad0b55
commit
920ae7144d
@@ -2,7 +2,8 @@ import 'package:flutter/material.dart';
|
||||
|
||||
extension TimeOfDayExtension on TimeOfDay {
|
||||
TimeOfDay add({int hour = 0, int minute = 0}) {
|
||||
return replacing(hour: this.hour + hour, minute: this.minute + minute);
|
||||
final total = this.hour * 60 + this.minute + hour * 60 + minute;
|
||||
return TimeOfDay(hour: (total ~/ 60) % 24, minute: total % 60);
|
||||
}
|
||||
|
||||
int compareTo(TimeOfDay other) {
|
||||
|
||||
@@ -2,13 +2,18 @@ import 'package:flutter/material.dart';
|
||||
import 'package:prosapp_web_app/utils/time_of_day_extension.dart';
|
||||
|
||||
class TimeOfDayUtils {
|
||||
static List<TimeOfDay> genRanges(TimeOfDay timeStart, TimeOfDay timeEnd) {
|
||||
List<TimeOfDay> ranges = [];
|
||||
TimeOfDay current = timeStart;
|
||||
while (current.isBefore(timeEnd)) {
|
||||
ranges.add(current);
|
||||
// Sumar 2 horas al objeto DateTime
|
||||
current = current.add(hour: 2);
|
||||
static List<TimeOfDay> genRanges(
|
||||
TimeOfDay timeStart,
|
||||
TimeOfDay timeEnd, {
|
||||
int stepMinutes = 30,
|
||||
}) {
|
||||
final List<TimeOfDay> ranges = [];
|
||||
int curr = timeStart.hour * 60 + timeStart.minute;
|
||||
final end = timeEnd.hour * 60 + timeEnd.minute;
|
||||
final step = stepMinutes.clamp(5, 480);
|
||||
while (curr < end) {
|
||||
ranges.add(TimeOfDay(hour: curr ~/ 60, minute: curr % 60));
|
||||
curr += step;
|
||||
}
|
||||
return ranges;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user