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 = "PublicInstitutionProto"; option java_package = "com.corruption.api.v1"; // Public Institution service definition service PublicInstitutionService { // Get a list of public institutions with pagination rpc ListPublicInstitutions(ListPublicInstitutionsRequest) returns (ListPublicInstitutionsResponse) {} // Get a single public institution by ID rpc GetPublicInstitution(GetPublicInstitutionRequest) returns (GetPublicInstitutionResponse) {} } // Request message for ListPublicInstitutions message ListPublicInstitutionsRequest { // Pagination parameters PaginationRequest pagination = 1; } // Response message for ListPublicInstitutions message ListPublicInstitutionsResponse { // List of public institutions repeated PublicInstitution public_institutions = 1; // Pagination metadata PaginationResponse pagination = 2; } // Request message for GetPublicInstitution message GetPublicInstitutionRequest { // The ID of the public institution to retrieve int32 id = 1; } // Response message for GetPublicInstitution message GetPublicInstitutionResponse { // The requested public institution PublicInstitution public_institution = 1; } // Public Institution message message PublicInstitution { // The unique identifier for the public institution int32 id = 1; // The name of the public institution string name = 2; // The description of the public institution string description = 3; // The corruption rank of the public institution int32 corruption_rank = 4; // The corruption level (human-readable) string corruption_level = 5; // The number of politicians associated with this institution int32 politician_count = 6; // The number of corruption cases associated with this institution int32 corruption_case_count = 7; // The total number of irregularities from Maria.do int32 total_irregularities = 8; // The total processed amount from Maria.do double total_processed_amount = 9; // Creation timestamp Timestamp created_at = 10; // Last update timestamp Timestamp updated_at = 11; }