package sd.des;

/**
 * Tipos de eventos discretos da simulação.
 * 
 * <p>Representa os eventos DES que avançam o estado da simulação,
 * não categorias de logging (EventType está noutro package).
 */
public enum DESEventType {
    /** Gerar novo veículo num ponto de entrada */
    VEHICLE_GENERATION,
    
    /** Veículo chega a uma interseção */
    VEHICLE_ARRIVAL,
    
    /** Veículo começa a atravessar o semáforo */
    VEHICLE_CROSSING_START,
    
    /** Veículo termina a travessia */
    VEHICLE_CROSSING_END,
    
    /** Veículo parte para o próximo destino */
    VEHICLE_DEPARTURE,
    
    /** Veículo sai do sistema no nó de saída */
    VEHICLE_EXIT,
    
    /** Semáforo muda de estado (VERMELHO para VERDE ou vice-versa) */
    TRAFFIC_LIGHT_CHANGE,
    
    /** Processar veículos que esperam num semáforo recém-verde */
    PROCESS_GREEN_LIGHT,
    
    /** Atualização periódica de estatísticas */
    STATISTICS_UPDATE,
    
    /** Terminação da simulação */
    SIMULATION_END
}
