syntax = "proto3"; package proto; option csharp_namespace = "DysonNetwork.Shared.Proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; // ==================================== // Message Definitions // ==================================== // SocialCreditRecord represents a record of social credit changes for an account message SocialCreditRecord { string id = 1; // UUID string string reason_type = 2; string reason = 3; double delta = 4; string account_id = 5; // UUID string google.protobuf.Timestamp created_at = 6; google.protobuf.Timestamp updated_at = 7; } // ExperienceRecord represents a record of experience points gained by an account message ExperienceRecord { string id = 1; // UUID string string reason_type = 2; string reason = 3; int64 delta = 4; double bonus_multiplier = 5; string account_id = 6; // UUID string google.protobuf.Timestamp created_at = 7; google.protobuf.Timestamp updated_at = 8; } // ==================================== // Request/Response Messages // ==================================== // Social Credit Requests/Responses message AddSocialCreditRecordRequest { string reason_type = 1; string reason = 2; double delta = 3; string account_id = 4; // UUID string } message GetSocialCreditRequest { string account_id = 1; // UUID string } message SocialCreditResponse { double amount = 1; } // Experience Requests/Responses message AddExperienceRecordRequest { string reason_type = 1; string reason = 2; int64 delta = 3; string account_id = 4; // UUID string } // ==================================== // Service Definitions // ==================================== // SocialCreditService provides operations for managing social credit scores service SocialCreditService { // Adds a new social credit record for an account rpc AddRecord(AddSocialCreditRecordRequest) returns (SocialCreditRecord); // Gets the current social credit score for an account rpc GetSocialCredit(GetSocialCreditRequest) returns (SocialCreditResponse); } // ExperienceService provides operations for managing experience points service ExperienceService { // Adds a new experience record for an account rpc AddRecord(AddExperienceRecordRequest) returns (ExperienceRecord); }