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

package pb;

import "models/model_node_cluster.proto";
import "models/model_server_group.proto";
import "models/model_user.proto";
import "models/model_server_name_auditing_result.proto";

message Server {
	int64 id = 1;
	bool isOn = 18;
	string type = 2;
	string name = 3;
	string description = 4;
	bytes includeNodes = 5;
	bytes excludeNodes = 6;
	int64 createdAt = 7;
	string dnsName = 19;
	bool supportCNAME = 23;
	int64 userPlanId = 24;
	int64 userId = 29; // 所属用户ID

	// 配置相关
	bytes config = 17;
	bytes serverNamesJSON = 8;
	string firstServerName = 33;
	int32 countServerNames = 28;
	bool isAuditing = 20;
	int64 auditingAt = 25;
	bytes auditingServerNamesJSON = 21;
	ServerNameAuditingResult auditingResult = 22;

	bytes httpJSON = 9;
	bytes httpsJSON = 10;
	bytes tcpJSON = 11;
	bytes tlsJSON = 12;
	bytes udpJSON = 14;
	int64 webId = 15;
	bytes reverseProxyJSON = 16;

	string bandwidthTime = 26; // 带宽时间
	int64 bandwidthBytes = 27; // 带宽字节数
	int64 countRequests = 34; // 最近（通常5分钟内）访问量
	int64 countAttackRequests = 35; // 最近识别到的攻击访问量

	NodeCluster nodeCluster = 30;
	repeated ServerGroup serverGroups = 31;
	User user = 32;
}
