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

package pb;

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

// 浏览器信息库服务
service FormalClientBrowserService {
	// 创建浏览器信息
	rpc createFormalClientBrowser(CreateFormalClientBrowserRequest) returns (CreateFormalClientBrowserResponse);

	// 计算浏览器信息数量
	rpc countFormalClientBrowsers(CountFormalClientBrowsersRequest) returns (RPCCountResponse);

	// 列出单页浏览器信息
	rpc listFormalClientBrowsers(ListFormalClientBrowsersRequest) returns (ListFormalClientBrowsersResponse);

	// 修改浏览器信息
	rpc updateFormalClientBrowser(UpdateFormalClientBrowserRequest) returns (RPCSuccess);

	// 通过dataId查询浏览器信息
	rpc findFormalClientBrowserWithDataId(FindFormalClientBrowserWithDataIdRequest) returns (FindFormalClientBrowserWithDataIdResponse);
}

// 创建浏览器信息
message CreateFormalClientBrowserRequest {
	string name = 1;
	repeated string codes = 2;
	string dataId = 3;
}

message CreateFormalClientBrowserResponse {
	int64 formalClientBrowserId = 1;
}

// 计算浏览器信息数量
message CountFormalClientBrowsersRequest {
	string keyword = 1; // 可选
}

// 列出单页浏览器信息
message ListFormalClientBrowsersRequest {
	string keyword = 1; // 可选
	int64 offset = 2;
	int64 size = 3;
}

message ListFormalClientBrowsersResponse {
	repeated FormalClientBrowser formalClientBrowsers = 1;
}

// 修改浏览器信息
message UpdateFormalClientBrowserRequest {
	int64 formalClientBrowserId = 1;
	string name = 2;
	repeated string codes = 3;
	string dataId = 4;
}

// 通过dataId查询浏览器信息
message FindFormalClientBrowserWithDataIdRequest {
	string dataId = 1;
}

message FindFormalClientBrowserWithDataIdResponse {
	FormalClientBrowser formalClientBrowser = 1;
}