overlap

package
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 23, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoZonesProvided = errors.New("overlap: se requiere al menos una zona horaria")

ErrNoZonesProvided se retorna cuando no se proporcionan zonas horarias.

Functions

This section is empty.

Types

type Request

type Request struct {
	Date         time.Time               // Fecha base
	Zones        []string                // Lista de zonas a comparar
	CustomHours  map[string]WorkingHours // Horarios laborales personalizados por zona
	DefaultHours WorkingHours            // Horario por defecto
	SlotDuration time.Duration           // Duración mínima de cada slot
}

Request define los parámetros para encontrar solapamiento de horarios laborales.

type Slot

type Slot struct {
	StartTimeUTC time.Time            `json:"start_time_utc"`
	EndTimeUTC   time.Time            `json:"end_time_utc"`
	Duration     time.Duration        `json:"duration"`
	ZoneTimes    map[string]time.Time `json:"zone_times"`
}

Slot representa una ventana horaria donde todos los participantes están en horario laboral.

func Find

func Find(req Request) ([]Slot, error)

Find busca intervalos de tiempo durante un día donde todas las zonas coinciden en horario hábil.

type WorkingHours

type WorkingHours struct {
	StartHour int `json:"start_hour"`
	EndHour   int `json:"end_hour"`
}

WorkingHours define la jornada laboral (ej: 9 a 18).

func DefaultWorkingHours

func DefaultWorkingHours() WorkingHours

DefaultWorkingHours devuelve el horario laboral habitual (09:00 a 17:00).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL