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