Início da janela de serviço a pedido
Verifica a presença, o formato e as condições de uso de `start_pickup_drop_off_window`.
Propriedades da regra
| Propriedade | Valor |
|---|---|
| Rule ID | stop_times_start_pickup_drop_off_window_valid |
| Ficheiro | stop_times.txt |
| Campo | start_pickup_drop_off_window |
| Tipo | Hora |
| Severidade | Condicional (obrigatório com uma localização a pedido ou com end_pickup_drop_off_window; proibido com arrival_time ou departure_time) |
Descrição do campo: hora em que o serviço a pedido fica disponível numa localização GeoJSON, grupo de localizações ou paragem.
Mais informação em stop_times.txt.
Como funciona
A janela é obrigatória quando existe location_group_id, location_id ou end_pickup_drop_off_window. É proibida quando existe uma hora de chegada ou partida. Quando preenchida, tem de ter oito carateres e três partes numéricas; a implementação não limita horas, minutos nem segundos.
A regra avalia cada linha do stop_times.txt, seguindo os passos abaixo por ordem, até um deles dar o resultado.
| # | Pergunta | Se sim | Se não |
|---|---|---|---|
| 1 | arrival_time ou departure_time está preenchido? | Se start_pickup_drop_off_window também estiver preenchido, reporta o problema; depois termina | Segue para o passo 2 |
| 2 | start_pickup_drop_off_window está preenchido e a configuração proíbe o campo? | ❌ Reporta o problema | Segue para o passo 3 |
| 3 | Existe location_group_id, location_id ou end_pickup_drop_off_window? | Se start_pickup_drop_off_window estiver vazio, reporta o problema; caso contrário, segue | Segue para o passo 4 |
| 4 | start_pickup_drop_off_window está preenchido? | Verifica se tem oito carateres e três partes numéricas. Se não tiver, reporta o problema | Segue para o passo 5 |
| 5 | A configuração exige ou recomenda o campo? | ❌ Reporta o problema: campo em falta | ✅ Passa |
Como se relacionam
start_pickup_drop_off_window e end_pickup_drop_off_window formam a janela de serviço a pedido. Ambas são exigidas quando se usa location_group_id ou location_id. A regra não compara qual das duas horas é anterior.
Exemplos
start_pickup_drop_off_window | Outros campos | Resultado | Porquê |
|---|---|---|---|
08:00:00 | end_pickup_drop_off_window preenchido, sem chegada nem partida | ✅ Passa | Janela completa |
| Vazio | end_pickup_drop_off_window preenchido | ❌ Problema | Campo condicional em falta |
08:00:00 | arrival_time=08:10:00 | ❌ Problema | Janela combinada com hora fixa |
8:00:00 | Sem horas fixas | ❌ Problema | Estrutura inválida |
99:99:99 | Sem horas fixas | ✅ Passa | As partes numéricas não têm limites |
Como corrigir
| Problema | Causa provável | O que fazer |
|---|---|---|
| Campo proibido com chegada ou partida | A linha contém start_pickup_drop_off_window e também arrival_time ou departure_time | Remover start_pickup_drop_off_window ou as horas fixas da linha de stop_times.txt |
| Campo proibido pela configuração | A configuração proíbe start_pickup_drop_off_window | Remover start_pickup_drop_off_window de stop_times.txt |
| Campo condicional em falta | Existe uma localização a pedido ou end_pickup_drop_off_window, mas falta start_pickup_drop_off_window | Preencher start_pickup_drop_off_window em stop_times.txt |
| Hora inválida | O valor não tem oito carateres e três partes numéricas | Corrigir start_pickup_drop_off_window em stop_times.txt para a estrutura HH:MM:SS |
| Campo em falta | A configuração exige ou recomenda start_pickup_drop_off_window | Preencher start_pickup_drop_off_window em stop_times.txt |