Spécification ServiceClass

Lorsque vous ajoutez de nouvelles classes à ServiceClassType, assurez-vous qu'elles respectent les consignes suivantes :

  • Normes locales : les classes doivent représenter la norme locale des classes de service pour le mode de transport prévu sur le marché cible.
  • Axés sur le matériel : ils doivent représenter les attributs physiques et les équipements du véhicule (le "matériel") plutôt que la structure tarifaire ou les conditions tarifaires spécifiques d'un partenaire (par exemple, la possibilité de remboursement, la flexibilité).
  • Réutilisabilité : différents partenaires doivent pouvoir utiliser les mêmes classes lorsqu'ils fournissent des prix pour le même type de véhicule. Cela permet d'éviter la prolifération d'énums spécifiques aux partenaires et d'assurer la cohérence.

Définition 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];
}

Exemple JSON

{
  "type": "FIRST_CLASS"
}