syntax = "proto3"; package admin.account.v1; option go_package = "git.lendry.ru/lendry-erp/proto.git/go;pb"; service AdminAccountService { rpc AdminResetPassword (AdminResetPasswordRequest) returns (AdminResetPasswordResponse); rpc CreateUser(CreateUserRequest) returns (CreateUserResponse); rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse); rpc ChangeData(ChangeDataRequest) returns (ChangeDataResponse); rpc AssignRole (AssignRoleRequest) returns (AssignRoleResponse); rpc RevokeRole (RevokeRoleRequest) returns (RevokeRoleResponse); rpc BlockUser(BlockUserRequest) returns (BlockUserResponse); rpc UnblockUser(UnblockUserRequest) returns (UnblockUserResponse); rpc BlockIp(BlockIpRequest) returns (BlockIpResponse); rpc UnblockIp(UnblockIpRequest) returns (UnblockIpResponse); rpc SyncUsersToSearch (SyncUsersToSearchRequest) returns (SyncUsersToSearchResponse); } message AdminResetPasswordRequest { string user_id = 1; string new_password = 2; } message AdminResetPasswordResponse { bool success = 1; string message = 2; } message CreateUserRequest { string username = 1; string password = 2; repeated string roles = 3; } message CreateUserResponse { bool success = 1; string message = 2; } message DeleteUserRequest { string user_id = 1; } message DeleteUserResponse { bool success = 1; string message = 2; } message ChangeDataRequest { string user_id = 1; string session_id = 2; optional string email = 3; optional string phone = 4; optional string full_name = 5; optional string avatar_url = 6; optional string custom_status_text = 7; optional string custom_status_emoji = 8; optional string timezone = 9; optional string language = 10; optional bool is_public = 11; } message ChangeDataResponse { bool success = 1; string message = 2; } message AssignRoleRequest { string user_id = 1; string role_id = 2; // В gRPC передаем как string, внутри преобразуем в Int } message AssignRoleResponse { bool success = 1; string message = 2; } message RevokeRoleRequest { string user_id = 1; string role_id = 2; } message RevokeRoleResponse { bool success = 1; string message = 2; } message BlockUserRequest { string user_id = 1; // Кого блокируем string admin_id = 2; // Кто блокирует optional string reason = 3; } message BlockUserResponse { bool success = 1; string message = 2; } message UnblockUserRequest { string user_id = 1; string admin_id = 2; } message UnblockUserResponse { bool success = 1; string message = 2; } message BlockIpRequest { string ip_address = 1; string admin_id = 2; optional string reason = 3; } message BlockIpResponse { bool success = 1; string message = 2; } message UnblockIpRequest { string ip_address = 1; string admin_id = 2; } message UnblockIpResponse { bool success = 1; string message = 2; } message SyncUsersToSearchRequest { // Можно оставить пустым, так как нам не нужны входные данные } message SyncUsersToSearchResponse { bool success = 1; string message = 2; }