Khi thêm các lớp mới vào ServiceClassType, hãy đảm bảo các lớp này tuân thủ nguyên tắc sau:
- Tiêu chuẩn địa phương: Các lớp này phải thể hiện tiêu chuẩn địa phương của các lớp dịch vụ cho phương thức vận chuyển dự kiến ở thị trường mục tiêu.
- Tập trung vào phần cứng: Các lớp này phải thể hiện các thuộc tính vật lý và tiện nghi của xe (phần cứng) thay vì cấu trúc giá cụ thể hoặc điều kiện giá vé của đối tác (ví dụ: khả năng hoàn tiền, tính linh hoạt).
- Khả năng sử dụng lại: Các đối tác khác nhau phải có thể sử dụng cùng một lớp khi cung cấp giá cho cùng một loại xe. Điều này giúp tránh việc phát triển tràn lan các enum dành riêng cho đối tác và đảm bảo tính nhất quán.
Định nghĩa Proto
// Attributes characterizing the amenities and ride comfort of a journey on a // vehicle. message ServiceClass { // A high level enum describing the service class type. enum ServiceClassType { // Global service classes FIRST_CLASS = 1; SECOND_CLASS = 2; // Only a single service class is offered by the operator. The service class // may not even have a name because there is no distinction to be made. SINGLE_CLASS = 3; BUSINESS_CLASS = 4; // Additional global or per-market service classes can be added. Please // reach out to the Google Transport team if additional service classes are // needed for your use case. // Japan specific train ticket classes NON_RESERVED_SECOND_CLASS = 201; RESERVED_SECOND_CLASS = 202; RESERVED_GREEN_CAR_CLASS = 203; RESERVED_GRAN_CLASS = 204; // Brazil specific service classes. CONVENCIONAL = 205; EXECUTIVO = 206; SEMILEITO = 207; LEITO = 208; CAMA = 209; // Bus specific service classes (commonly used in India). // Air-conditioned sleeper class. AC_SLEEPER_CLASS = 301; // Air-conditioned seater class. AC_SEATER_CLASS = 302; // Air-conditioned semi-sleeper class. AC_SEMI_SLEEPER_CLASS = 303; // Air-conditioned sleeper and seater class. AC_SLEEPER_SEATER_CLASS = 304; // Non-air-conditioned sleeper class. NON_AC_SLEEPER_CLASS = 305; // Non-air-conditioned seater class. NON_AC_SEATER_CLASS = 306; // Non-air-conditioned semi-sleeper class. NON_AC_SEMI_SLEEPER_CLASS = 307; // Non-air-conditioned sleeper and seater class. NON_AC_SLEEPER_SEATER_CLASS = 308; } ServiceClassType type = 1 [features.field_presence = IMPLICIT]; }
Mẫu JSON
{ "type": "FIRST_CLASS" }