Skip to content

Conversation

@solita-sabinaf
Copy link
Collaborator

@solita-sabinaf solita-sabinaf commented Dec 30, 2025

Summary

In facilities tab: new information display input.
In assistance tab: new information desk input.

Both are defined on a stop place level only.

Screenshot 2025-12-30 at 16 22 55 Screenshot 2025-12-30 at 16 23 04

Issue

  • We need these to support these ERSAD fields;
  • The implementation just extends the current site facility set with two new fields: passengerInformationEquipmentList and passengerInformationFacilityList. Nothing special;
  • Two new components were added, InformationDesk and PassengerInformationDisplay, to handle these new inputs;

The XML behind:

<facilities>
	<SiteFacilitySet id="FSR:SiteFacilitySet:510" version="1">
            <MobilityFacilityList>boardingAssistance</MobilityFacilityList>
            <PassengerInformationEquipmentList>informationDesk</PassengerInformationEquipmentList>
            <PassengerInformationFacilityList>passengerInformationDisplay</PassengerInformationFacilityList>
	</SiteFacilitySet>
</facilities>

Unit tests

  • Unit tests added/updated
  • Manual verification done

@a-limyr a-limyr self-requested a review January 12, 2026 10:34
Copy link
Contributor

@a-limyr a-limyr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a well-structured implementation that follows established patterns. The code is clean, properly integrated across all layers and moves the application towards TypeScript. I found a type issue and some other minor things that might not be an issue.

Good job!

export interface SiteFacilitySet {
mobilityFacilityList: MobilityFacility[];
passengerInformationFacilityList: PassengerInformationFacility[];
passengerInformationEquipmentList: PassengerInformationEquipment | null;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this supposed to be a list also? If not then perhaps the name should be passengerInformationEquipment?

Copy link
Collaborator Author

@solita-sabinaf solita-sabinaf Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch! This was originally due to backend's netex model (part that is bound to external library) having it as a single value (despite name suggesting it's a list), but since in the end I made it so that tiamat's own netex model has it as a real list, I think I forgot to tune up this spot along

}
: { ...defaultSiteFacilitySet, ...state };
updatedEntity.quays[id].facilities = [newSiteFacilitySet];
} else {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be an idea to have a else if here to verify that the type is stopPlace? And not just assume? At least it would be more readable.

Copy link
Collaborator Author

@solita-sabinaf solita-sabinaf Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure, the "entity" usually implied that it's either a quay or stopPlace (e.g. type EntityType in model), so if a method was about updating an entity, maybe there aren't other use cases coming around 🤔 But then I do remember that in the UI components there been some places where the value of "type" that can be a "parking"...

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But maybe for the sake of readability "else if" would make it more clear, I'll add it

STOP_TIMETABLE = "stopTimetable",
JOURNEY_PLANNING = "journeyPlanning",
INTERACTIVE_KIOSK = "interactiveKiosk",
INFORMATION_DESK = "informationDesk",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the only enum in use from this set of enums. Is this intentional or have you forgotten to add support for the other enums in the UI? If it is there for future implementations it is fine.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These just tagged along from the backend, could be used in future (currently only info desk is) but not yet (and probably won't be done by us)

export enum PassengerInformationFacility {
NEXT_STOP_INDICATOR = "nextStopIndicator",
STOP_ANNOUNCEMENTS = "stopAnnouncements",
PASSENGER_INFORMATION_DISPLAY = "passengerInformationDisplay",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the only enum in use from this set of enums. Is this intentional or have you forgotten to add support for the other enums in the UI? If it is there for future implementations it is fine.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These just tagged along from the backend, could be used in future (currently only passengerInformationDisplay is) but not yet (and probably won't be done by us)

@solita-sabinaf
Copy link
Collaborator Author

solita-sabinaf commented Jan 14, 2026

@a-limyr, thank you for the review, great points! The changes been made, I'll ping once the backend is merged

@solita-sabinaf
Copy link
Collaborator Author

solita-sabinaf commented Jan 21, 2026

@a-limyr, the backend is now merged 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants