54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
// The services offered on the home screen.
|
|
//
|
|
// Labels and taglines are translation keys (resolved via `t()` at the call
|
|
// site) so each language carries its own names. The Arabic names are Levantine
|
|
// rather than formal MSA — "موتور" is what a motorcycle taxi is actually called
|
|
// in Lebanon, where "دراجة نارية" reads like a textbook translation.
|
|
|
|
export type ServiceId = "car" | "moto" | "courier" | "chauffeur";
|
|
|
|
export type Service = {
|
|
id: ServiceId;
|
|
/** MaterialCommunityIcons glyph name. */
|
|
icon: "car" | "motorbike" | "package-variant-closed" | "steering";
|
|
/** i18n key for the short label (kept short so four tiles fit a phone width). */
|
|
labelKey: string;
|
|
/** i18n key for the tagline shown under the row once the service is selected. */
|
|
taglineKey: string;
|
|
/** Multiplier applied to the base fare for this service (car = 1.0). */
|
|
fareMultiplier: number;
|
|
};
|
|
|
|
export const SERVICES: Service[] = [
|
|
{
|
|
id: "car",
|
|
icon: "car",
|
|
labelKey: "services.car.label",
|
|
taglineKey: "services.car.tagline",
|
|
fareMultiplier: 1.0,
|
|
},
|
|
{
|
|
id: "moto",
|
|
icon: "motorbike",
|
|
labelKey: "services.moto.label",
|
|
taglineKey: "services.moto.tagline",
|
|
fareMultiplier: 0.7,
|
|
},
|
|
{
|
|
id: "courier",
|
|
icon: "package-variant-closed",
|
|
labelKey: "services.courier.label",
|
|
taglineKey: "services.courier.tagline",
|
|
fareMultiplier: 0.85,
|
|
},
|
|
{
|
|
id: "chauffeur",
|
|
icon: "steering",
|
|
labelKey: "services.chauffeur.label",
|
|
taglineKey: "services.chauffeur.tagline",
|
|
fareMultiplier: 1.5,
|
|
},
|
|
];
|
|
|
|
export const DEFAULT_SERVICE: ServiceId = "car";
|