syntax = "proto3";
option go_package = "./pb";

package pb;

import "models/rpc_messages.proto";
import "models/model_user_access_key.proto";

// 用户AccessKey相关服务
service UserAccessKeyService {
	// 创建AccessKey
	rpc createUserAccessKey (CreateUserAccessKeyRequest) returns (CreateUserAccessKeyResponse);

	// 查找所有的AccessKey
	rpc findAllEnabledUserAccessKeys (FindAllEnabledUserAccessKeysRequest) returns (FindAllEnabledUserAccessKeysResponse);

	// 删除AccessKey
	rpc deleteUserAccessKey (DeleteUserAccessKeyRequest) returns (RPCSuccess);

	// 设置是否启用AccessKey
	rpc updateUserAccessKeyIsOn (UpdateUserAccessKeyIsOnRequest) returns (RPCSuccess);

	// 计算AccessKey数量
	rpc countAllEnabledUserAccessKeys (CountAllEnabledUserAccessKeysRequest) returns (RPCCountResponse);
}

// 创建AccessKey
message CreateUserAccessKeyRequest {
	int64 userId = 1;
	int64 adminId = 3;
	string description = 2;
}

message CreateUserAccessKeyResponse {
	int64 userAccessKeyId = 1;
}

// 查找所有的AccessKey
message FindAllEnabledUserAccessKeysRequest {
	int64 userId = 1;
	int64 adminId = 2;
}

message FindAllEnabledUserAccessKeysResponse {
	repeated UserAccessKey userAccessKeys = 1;
}

// 删除AccessKey
message DeleteUserAccessKeyRequest {
	int64 userAccessKeyId = 1;
}

// 设置是否启用AccessKey
message UpdateUserAccessKeyIsOnRequest {
	int64 userAccessKeyId = 1;
	bool isOn = 2;
}

// 计算AccessKey数量
message CountAllEnabledUserAccessKeysRequest {
	int64 adminId = 1;
	int64 userId = 2;
}