saved-search/servers/grpc/proto/saved-search.proto

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;
}