112 lines
2.9 KiB
Protocol Buffer
112 lines
2.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
option go_package = "git.coopgo.io/coopgo-platform/saved-search/servers/grpc/proto/gen";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "google/protobuf/struct.proto";
|
|
|
|
service SavedSearchService {
|
|
// Create a new saved search
|
|
rpc CreateSavedSearch(CreateSavedSearchRequest) returns (CreateSavedSearchResponse) {}
|
|
|
|
// Get a saved search by ID
|
|
rpc GetSavedSearch(GetSavedSearchRequest) returns (GetSavedSearchResponse) {}
|
|
|
|
// Get all saved searches for a specific owner
|
|
rpc GetSavedSearchesByOwner(GetSavedSearchesByOwnerRequest) returns (GetSavedSearchesByOwnerResponse) {}
|
|
|
|
// Update an existing saved search
|
|
rpc UpdateSavedSearch(UpdateSavedSearchRequest) returns (UpdateSavedSearchResponse) {}
|
|
|
|
// Delete a saved search
|
|
rpc DeleteSavedSearch(DeleteSavedSearchRequest) returns (DeleteSavedSearchResponse) {}
|
|
|
|
// List saved searches with pagination
|
|
rpc ListSavedSearches(ListSavedSearchesRequest) returns (ListSavedSearchesResponse) {}
|
|
}
|
|
|
|
// GeoJSON Feature representation for saved searches
|
|
message SavedSearchGeoJsonFeature {
|
|
string serialized = 1;
|
|
}
|
|
|
|
// Saved search message
|
|
message SavedSearch {
|
|
string id = 1;
|
|
string owner_id = 2;
|
|
SavedSearchGeoJsonFeature departure = 3;
|
|
SavedSearchGeoJsonFeature destination = 4;
|
|
google.protobuf.Timestamp datetime = 5;
|
|
google.protobuf.Struct data = 6;
|
|
google.protobuf.Timestamp created_at = 7;
|
|
google.protobuf.Timestamp updated_at = 8;
|
|
}
|
|
|
|
// Create saved search messages
|
|
message CreateSavedSearchRequest {
|
|
string owner_id = 1;
|
|
SavedSearchGeoJsonFeature departure = 2;
|
|
SavedSearchGeoJsonFeature destination = 3;
|
|
google.protobuf.Timestamp datetime = 4;
|
|
google.protobuf.Struct data = 5;
|
|
}
|
|
|
|
message CreateSavedSearchResponse {
|
|
SavedSearch saved_search = 1;
|
|
}
|
|
|
|
// Get saved search messages
|
|
message GetSavedSearchRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message GetSavedSearchResponse {
|
|
SavedSearch saved_search = 1;
|
|
}
|
|
|
|
// Get saved searches by owner messages
|
|
message GetSavedSearchesByOwnerRequest {
|
|
string owner_id = 1;
|
|
}
|
|
|
|
message GetSavedSearchesByOwnerResponse {
|
|
repeated SavedSearch saved_searches = 1;
|
|
}
|
|
|
|
// Update saved search messages
|
|
message UpdateSavedSearchRequest {
|
|
string id = 1;
|
|
string owner_id = 2;
|
|
SavedSearchGeoJsonFeature departure = 3;
|
|
SavedSearchGeoJsonFeature destination = 4;
|
|
google.protobuf.Timestamp datetime = 5;
|
|
google.protobuf.Struct data = 6;
|
|
}
|
|
|
|
message UpdateSavedSearchResponse {
|
|
SavedSearch saved_search = 1;
|
|
}
|
|
|
|
// Delete saved search messages
|
|
message DeleteSavedSearchRequest {
|
|
string id = 1;
|
|
string owner_id = 2;
|
|
}
|
|
|
|
message DeleteSavedSearchResponse {
|
|
bool success = 1;
|
|
}
|
|
|
|
// List saved searches messages
|
|
message ListSavedSearchesRequest {
|
|
string owner_id = 1;
|
|
int32 limit = 2;
|
|
int32 offset = 3;
|
|
}
|
|
|
|
message ListSavedSearchesResponse {
|
|
repeated SavedSearch saved_searches = 1;
|
|
int64 total = 2;
|
|
int32 limit = 3;
|
|
int32 offset = 4;
|
|
} |