syntax = "proto3";

package userwalletchangelog;

import "public_messages.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/duration.proto";  
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";

option csharp_namespace = "CMSMicroservice.Protobuf.Protos.UserWalletChangeLog";

service UserWalletChangeLogContract
{
    rpc CreateNewUserWalletChangeLog(CreateNewUserWalletChangeLogRequest) returns (CreateNewUserWalletChangeLogResponse){
        option (google.api.http) = {
            post: "/CreateNewUserWalletChangeLog"
            body: "*"
        };
    };
    rpc UpdateUserWalletChangeLog(UpdateUserWalletChangeLogRequest) returns (google.protobuf.Empty){
        option (google.api.http) = {
            put: "/UpdateUserWalletChangeLog"
            body: "*"
        };
    };
    rpc DeleteUserWalletChangeLog(DeleteUserWalletChangeLogRequest) returns (google.protobuf.Empty){
        option (google.api.http) = {
            delete: "/DeleteUserWalletChangeLog"
            body: "*"
        };
    };
    rpc GetUserWalletChangeLog(GetUserWalletChangeLogRequest) returns (GetUserWalletChangeLogResponse){
        option (google.api.http) = {
            get: "/GetUserWalletChangeLog"
            
        };
    };
    rpc GetAllUserWalletChangeLogByFilter(GetAllUserWalletChangeLogByFilterRequest) returns (GetAllUserWalletChangeLogByFilterResponse){
        option (google.api.http) = {
            get: "/GetAllUserWalletChangeLogByFilter"
            
        };
    };
}
message CreateNewUserWalletChangeLogRequest
{
    int64 wallet_id = 1;
    int64 current_balance = 2;
    int64 change_value = 3;
    int64 current_network_balance = 4;
    int64 change_nerwork_value = 5;
    bool is_increase = 6;
    google.protobuf.Int64Value refrence_id = 7;
}
message CreateNewUserWalletChangeLogResponse
{
    int64 id = 1;
}
message UpdateUserWalletChangeLogRequest
{
    int64 id = 1;
    int64 wallet_id = 2;
    int64 current_balance = 3;
    int64 change_value = 4;
    int64 current_network_balance = 5;
    int64 change_nerwork_value = 6;
    bool is_increase = 7;
    google.protobuf.Int64Value refrence_id = 8;
}
message DeleteUserWalletChangeLogRequest
{
    int64 id = 1;
}
message GetUserWalletChangeLogRequest
{
    int64 id = 1;
}
message GetUserWalletChangeLogResponse
{
    int64 id = 1;
    int64 wallet_id = 2;
    int64 current_balance = 3;
    int64 change_value = 4;
    int64 current_network_balance = 5;
    int64 change_nerwork_value = 6;
    bool is_increase = 7;
    google.protobuf.Int64Value refrence_id = 8;
    google.protobuf.Timestamp created_at = 9;
}
message GetAllUserWalletChangeLogByFilterRequest
{
    messages.PaginationState pagination_state = 1;
    google.protobuf.StringValue sort_by = 2;
    GetAllUserWalletChangeLogByFilterFilter filter = 3;
}
message GetAllUserWalletChangeLogByFilterFilter
{
    google.protobuf.Int64Value id = 1;
    google.protobuf.Int64Value wallet_id = 2;
    google.protobuf.Int64Value current_balance = 3;
    google.protobuf.Int64Value change_value = 4;
    google.protobuf.BoolValue is_increase = 5;
    google.protobuf.Int64Value refrence_id = 6;
    google.protobuf.Int64Value user_id = 7;
}
message GetAllUserWalletChangeLogByFilterResponse
{
    messages.MetaData meta_data = 1;
    repeated GetAllUserWalletChangeLogByFilterResponseModel models = 2;
}
message GetAllUserWalletChangeLogByFilterResponseModel
{
    int64 id = 1;
    int64 wallet_id = 2;
    int64 current_balance = 3;
    int64 change_value = 4;
    int64 current_network_balance = 5;
    int64 change_nerwork_value = 6;
    bool is_increase = 7;
    google.protobuf.Int64Value refrence_id = 8;
    google.protobuf.Timestamp created_at = 9;
}
