package serverruntime

import "time"

const (
	connectorIngressDBPoolName = "connector_ingress"
	connectorPushDBPoolName    = "connector_push"
	outboxWorkerDBPoolName     = "outbox_worker"

	defaultConnectorIngressDBMaxOpen     = 12
	defaultConnectorIngressDBPingTimeout = 5 * time.Second
	defaultConnectorPushDBMaxOpen        = 32
	defaultConnectorPushDBPingTimeout    = 5 * time.Second
	defaultOutboxWorkerDBMaxOpen         = 32
	defaultOutboxWorkerDBPingTimeout     = 5 * time.Second
)

var runtimeDBPoolRoles = []namedDBPoolRole{
	{
		PoolName:              connectorIngressDBPoolName,
		Label:                 "connector ingress",
		MaxOpenEnv:            "NEXUSCRM_CONNECTOR_INGRESS_DB_MAX_OPEN_CONNS",
		DefaultMaxOpen:        defaultConnectorIngressDBMaxOpen,
		PingTimeoutEnv:        "NEXUSCRM_CONNECTOR_INGRESS_DB_PING_TIMEOUT",
		DefaultPingTimeout:    defaultConnectorIngressDBPingTimeout,
		ConnectFailureMessage: "Failed to connect connector ingress database pool",
		EstablishedMessage:    "✅ Connector ingress database pool established",
	},
	{
		PoolName:              connectorPushDBPoolName,
		Label:                 "connector push",
		MaxOpenEnv:            "NEXUSCRM_CONNECTOR_PUSH_DB_MAX_OPEN_CONNS",
		DefaultMaxOpen:        defaultConnectorPushDBMaxOpen,
		PingTimeoutEnv:        "NEXUSCRM_CONNECTOR_PUSH_DB_PING_TIMEOUT",
		DefaultPingTimeout:    defaultConnectorPushDBPingTimeout,
		ConnectFailureMessage: "Failed to connect connector push database pool",
		EstablishedMessage:    "✅ Connector push database pool established",
	},
	{
		PoolName:              outboxWorkerDBPoolName,
		Label:                 "outbox worker",
		MaxOpenEnv:            "NEXUSCRM_OUTBOX_WORKER_DB_MAX_OPEN_CONNS",
		DefaultMaxOpen:        defaultOutboxWorkerDBMaxOpen,
		PingTimeoutEnv:        "NEXUSCRM_OUTBOX_WORKER_DB_PING_TIMEOUT",
		DefaultPingTimeout:    defaultOutboxWorkerDBPingTimeout,
		ConnectFailureMessage: "Failed to connect outbox worker database pool",
		EstablishedMessage:    "✅ Outbox worker database pool established",
	},
}
