syntax = "proto3"; package corruption.v1; import "common.proto"; option go_package = "github.com/corruption/api/v1"; option java_multiple_files = true; option java_outer_classname = "CaseTimelineEventProto"; option java_package = "com.corruption.api.v1"; // Case Timeline Event service definition service CaseTimelineEventService { // Get a list of case timeline events with pagination rpc ListCaseTimelineEvents(ListCaseTimelineEventsRequest) returns (ListCaseTimelineEventsResponse) {} // Get a single case timeline event by ID rpc GetCaseTimelineEvent(GetCaseTimelineEventRequest) returns (GetCaseTimelineEventResponse) {} } // Request message for ListCaseTimelineEvents message ListCaseTimelineEventsRequest { // Pagination parameters PaginationRequest pagination = 1; // Required filter by corruption case ID int32 corruption_case_id = 2; // Optional filter by event type optional string event_type = 3; } // Response message for ListCaseTimelineEvents message ListCaseTimelineEventsResponse { // List of case timeline events repeated CaseTimelineEvent case_timeline_events = 1; // Pagination metadata PaginationResponse pagination = 2; } // Request message for GetCaseTimelineEvent message GetCaseTimelineEventRequest { // The ID of the case timeline event to retrieve int32 id = 1; } // Response message for GetCaseTimelineEvent message GetCaseTimelineEventResponse { // The requested case timeline event CaseTimelineEvent case_timeline_event = 1; } // Case Timeline Event message message CaseTimelineEvent { // The unique identifier for the case timeline event int32 id = 1; // The corruption case ID int32 corruption_case_id = 2; // The date of the event string event_date = 3; // The type of the event string event_type = 4; // The title of the event string title = 5; // The description of the event string description = 6; // The location of the event string location = 7; // Creation timestamp Timestamp created_at = 8; // Last update timestamp Timestamp updated_at = 9; }