Skip to content

Commit

Permalink
Insurance claiming (#50)
Browse files Browse the repository at this point in the history
* adding insurance claim services (not complete)

---------

Co-authored-by: Sam Jaarsma C4T <[email protected]>
Co-authored-by: Ekrem Seren <[email protected]>
  • Loading branch information
3 people authored Nov 29, 2024
1 parent 0787e9c commit 95cb5a2
Show file tree
Hide file tree
Showing 38 changed files with 2,826 additions and 4 deletions.
5 changes: 5 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -183,3 +183,8 @@ jobs:
run: |
# '-J' options is to set Content-Encoding to gzip
gsutil -m rsync -J -R -d gen/diagrams gs://docs-cmp-files/diagrams/${{ github.ref_name }}
- name: Upload Assets
run: |
# '-J' options is to set Content-Encoding to gzip
gsutil -m rsync -J -R -d assets gs://docs-cmp-files/assets/${{ github.ref_name }}
Binary file added assets/images/claim_process_workflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
45 changes: 45 additions & 0 deletions proto/cmp/services/accommodation/v3/info.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
syntax = "proto3";

package cmp.services.accommodation.v3;

import "cmp/services/accommodation/v3/property_types.proto";
import "cmp/types/v1/common.proto";
import "cmp/types/v1/language.proto";
import "cmp/types/v2/product_code.proto";
import "google/protobuf/timestamp.proto";

message AccommodationProductInfoRequest {
// Message header
cmp.types.v1.RequestHeader header = 1;

// Only respond with the products that are modified after this timestamp
//
// Timestamps may be used for both off-chain and on-chain operations.
// For on-chain operations, only seconds are supported, and nanoseconds
// will be ignored.
google.protobuf.Timestamp modified_after = 2;

// Languages
repeated cmp.types.v1.Language languages = 3;

// Property codes
repeated cmp.types.v2.SupplierProductCode supplier_codes = 4;
}

message AccommodationProductInfoResponse {
// Message header
cmp.types.v1.ResponseHeader header = 1;

// Product list: Properties
repeated cmp.services.accommodation.v3.PropertyExtendedInfo properties = 2;
}

// Accommodation product info service definition
//
// ![Diagram](https://storage.googleapis.com/docs-cmp-files/diagrams/proto/cmp/services/accommodation/v3/info.proto.dot.xs.svg)
//
// [Open Message Diagram](https://storage.googleapis.com/docs-cmp-files/diagrams/proto/cmp/services/accommodation/v3/info.proto.dot.svg)
service AccommodationProductInfoService {
// Returns product list for accommodation (properties)
rpc AccommodationProductInfo(AccommodationProductInfoRequest) returns (AccommodationProductInfoResponse);
}
37 changes: 37 additions & 0 deletions proto/cmp/services/accommodation/v3/list.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
syntax = "proto3";

package cmp.services.accommodation.v3;

import "cmp/services/accommodation/v3/property_types.proto";
import "cmp/types/v1/common.proto";
import "google/protobuf/timestamp.proto";

message AccommodationProductListRequest {
// Message header
cmp.types.v1.RequestHeader header = 1;

// Only respond with the products that are modified after this timestamp
//
// Timestamps may be used for both off-chain and on-chain operations.
// For on-chain operations, only seconds are supported, and nanoseconds
// will be ignored.
google.protobuf.Timestamp modified_after = 2;
}

message AccommodationProductListResponse {
// Message header
cmp.types.v1.ResponseHeader header = 1;

// Product list: Properties
repeated cmp.services.accommodation.v3.Property properties = 2;
}

// Accommodation product list service definition
//
// ![Diagram](https://storage.googleapis.com/docs-cmp-files/diagrams/proto/cmp/services/accommodation/v3/list.proto.dot.xs.svg)
//
// [Open Message Diagram](https://storage.googleapis.com/docs-cmp-files/diagrams/proto/cmp/services/accommodation/v3/list.proto.dot.svg)
service AccommodationProductListService {
// Returns product list for accommodation (properties)
rpc AccommodationProductList(AccommodationProductListRequest) returns (AccommodationProductListResponse);
}
198 changes: 198 additions & 0 deletions proto/cmp/services/accommodation/v3/property_types.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
syntax = "proto3";

package cmp.services.accommodation.v3;

import "cmp/types/v1/amenity.proto";
import "cmp/types/v1/bed.proto";
import "cmp/types/v1/description.proto";
import "cmp/types/v1/meal_plan.proto";
import "cmp/types/v1/product_status.proto";
import "cmp/types/v2/contact_info.proto";
import "cmp/types/v2/location.proto";
import "cmp/types/v2/product_code.proto";
import "cmp/types/v2/service_fact.proto";
import "cmp/types/v3/file.proto";
import "cmp/types/v3/traveller.proto";
import "google/protobuf/timestamp.proto";

// Represents property info for an accommodation product
//
// ![Diagram](https://storage.googleapis.com/docs-cmp-files/diagrams/proto/cmp/services/accommodation/v3/property_types.proto.dot.xs.svg)
//
// [Open Message Diagram](https://storage.googleapis.com/docs-cmp-files/diagrams/proto/cmp/services/accommodation/v3/property_types.proto.dot.svg)
message Property {
// Ex: "2023-08-28T12:03:50", specifying when the static data of a product was
// last updated
//
// Timestamps may be used for both off-chain and on-chain operations.
// For on-chain operations, only seconds are supported, and nanoseconds
// will be ignored.
google.protobuf.Timestamp last_modified = 1;

// Supplier product Code
cmp.types.v2.SupplierProductCode supplier_code = 2;

// Product code which can be of different types
repeated cmp.types.v2.ProductCode product_codes = 3;

// Ex: "Beach Hotel Alanya"
string name = 4;

// Ex: "Hilton"
string chain = 5;

// Ex: CATEGORY_RATING_4_5
cmp.services.accommodation.v3.CategoryRating category_rating = 6;

// Ex: CATEGORY_UNIT_PALMS
cmp.services.accommodation.v3.CategoryUnit category_unit = 7;

// Contact Info: phone, address, email, links
cmp.types.v2.ContactInfo contact_info = 8;

// Location coordinate
cmp.types.v2.Coordinates coordinates = 9;

// Status of the property
cmp.types.v1.ProductStatus status = 10;

// Airports
// Ex: ["PMI", "ZRH", "AYT"]
repeated string airports = 11;
}

enum CategoryRating {
CATEGORY_RATING_UNSPECIFIED = 0;
CATEGORY_RATING_0_5 = 1;
CATEGORY_RATING_1_0 = 2;
CATEGORY_RATING_1_5 = 3;
CATEGORY_RATING_2_0 = 4;
CATEGORY_RATING_2_5 = 5;
CATEGORY_RATING_3_0 = 6;
CATEGORY_RATING_3_5 = 7;
CATEGORY_RATING_4_0 = 8;
CATEGORY_RATING_4_5 = 9;
CATEGORY_RATING_5_0 = 10;
CATEGORY_RATING_5_5 = 11;
CATEGORY_RATING_6_0 = 12;
CATEGORY_RATING_6_5 = 13;
CATEGORY_RATING_7_0 = 14;
CATEGORY_RATING_7_5 = 15;
CATEGORY_RATING_8_0 = 16;
CATEGORY_RATING_8_5 = 17;
CATEGORY_RATING_9_0 = 18;
CATEGORY_RATING_9_5 = 19;
CATEGORY_RATING_10_0 = 20;
}

enum CategoryUnit {
CATEGORY_UNIT_UNSPECIFIED = 0;
CATEGORY_UNIT_STARS = 1;
CATEGORY_UNIT_PALMS = 2;
}

// This message type contains extended info about a property
message PropertyExtendedInfo {
// Property
cmp.services.accommodation.v3.Property property = 1;

// Images
repeated cmp.types.v3.Image images = 2;

// Videos
repeated cmp.types.v3.Video videos = 3;

// Segmentation classification
repeated string classifications = 4;

// Property descriptions
repeated cmp.types.v1.LocalizedDescriptionSet localized_descriptions = 5;

// Room descriptions
repeated cmp.types.v1.LocalizedDescriptionSet localized_room_descriptions = 6;

// Payment type. Ex: "MERCHANT"
string payment_type = 7;

// Rooms
repeated cmp.services.accommodation.v3.Room rooms = 8;
}

message Room {
// Room code of the unit in case of hotel. Ex: "RMSDDB0000". For holiday homes
// often no room codes are used. This code must explicitly match the supplier_room_code
// in the ProductList and the ProductInfo messages, so that the static data like room
// amenities, descriptions, images etc. can be married to the dynamic price and
// availability data for display to the end user.
string supplier_code = 1;

// Room name. In case of hotel a standardized room name is often derived from
// room code structures. Example: "superior sea view room".
// For holiday homes we expect names like "Master Bedroom", "Second Bedroom" or
// "Bathroom" when specific descriptions for each room are available.
string supplier_name = 2;

// Original room name as assigned by the hotel. In case of specifically designated room
// names by chains and both the chain and the customer wants to adhere to them.
// Ex: "CEIBA CLUB", "CEIBA GOVERNORS SUITE", "GOVERNORS SUITE" or "ENCLAVE NATURE VIEW"
// For holiday homes specific room names if available can be given.
string original_name = 3;

repeated cmp.types.v3.Image images = 4;
repeated cmp.types.v3.Video videos = 5;

// Room descriptions
repeated cmp.types.v1.LocalizedDescriptionSet descriptions = 6;

// Meal plan (Board code)
repeated cmp.types.v1.MealPlan meal_plans = 7;

// Beds
repeated cmp.types.v1.Bed beds = 8;

// Occupancy
cmp.services.accommodation.v3.Occupancy total_occupancy = 9;

// Services
repeated cmp.types.v2.ServiceFact services = 10;

// Amenities
repeated cmp.types.v1.Amenity amenities = 11;
}

message Occupancy {
// Min guests
int32 min_guests = 1;

// Max guests
int32 max_guests = 2;

// Standard occupancy
int32 standard_occupancy = 3;

// Full payers
int32 full_payers = 4;

// If infants are counted in total guests or not
bool infant_counted_in_total_guests = 5;

// Occupancy options
repeated cmp.services.accommodation.v3.OccupancyOption occupancy_options = 6;
}

message OccupancyOption {
// Guest type like adult, child, infant.
cmp.types.v3.TravellerType guest_type = 1;

// Min guests
int32 min = 2;

// Max guests
int32 max = 3;

// Min age
int32 min_age = 4;

// Max age
int32 max_age = 5;
}
Loading

0 comments on commit 95cb5a2

Please sign in to comment.