package constants

const (
	// NotificationRecipientKindAccount 表示后台账号接收人。
	NotificationRecipientKindAccount = "account"
	// NotificationRecipientKindPersonalCustomer 表示个人客户接收人。
	NotificationRecipientKindPersonalCustomer = "personal_customer"
	// NotificationTargetKindAccount 表示由稳定后台账号 ID 解析接收人。
	NotificationTargetKindAccount = "account"
	// NotificationTargetKindPlatformRole 表示由当前平台角色解析接收人。
	NotificationTargetKindPlatformRole = "platform_role"
	// NotificationTargetKindShop 表示由目标店铺解析主账号和当前业务员。
	NotificationTargetKindShop = "shop"

	// NotificationCategoryApproval 表示审批类通知。
	NotificationCategoryApproval = "approval"
	// NotificationCategoryExpiry 表示临期类通知。
	NotificationCategoryExpiry = "expiry"
	// NotificationCategorySync 表示同步类通知。
	NotificationCategorySync = "sync"
	// NotificationCategorySystem 表示系统类通知。
	NotificationCategorySystem = "system"

	// NotificationSeverityInfo 表示普通提示。
	NotificationSeverityInfo = "info"
	// NotificationSeverityWarning 表示需要关注的警告。
	NotificationSeverityWarning = "warning"
	// NotificationSeverityError 表示处理失败。
	NotificationSeverityError = "error"
	// NotificationSeverityCritical 表示严重系统异常。
	NotificationSeverityCritical = "critical"

	// NotificationTypeSystemNotice 表示受控通用系统通知。
	NotificationTypeSystemNotice = "system.notice"
	// NotificationTypePackageExpiring 表示个人客户套餐临期提醒。
	NotificationTypePackageExpiring = "package.expiring"
	// NotificationTypeExchangeShippingCreated 表示个人客户物流换货待处理提醒。
	NotificationTypeExchangeShippingCreated = "exchange.shipping.created"
	// NotificationTypeAgentMainWalletLowBalance 表示代理主钱包余额低于固定阈值提醒。
	NotificationTypeAgentMainWalletLowBalance = "agent.main_wallet.low_balance"

	// NotificationRefTypeSystemConfig 表示系统配置资源引用。
	NotificationRefTypeSystemConfig = "system_config"
	// NotificationRefTypeIntegrationLog 表示外部集成日志资源引用。
	NotificationRefTypeIntegrationLog = "integration_log"
	// NotificationRefTypePackage 表示套餐资源引用。
	NotificationRefTypePackage = "package"
	// NotificationRefTypeAsset 表示个人客户资产资源引用。
	NotificationRefTypeAsset = "asset"
	// NotificationRefTypeRefund 表示退款详情资源引用。
	NotificationRefTypeRefund = "refund"
	// NotificationRefTypeAgentRecharge 表示代理充值详情资源引用。
	NotificationRefTypeAgentRecharge = "agent_recharge"
	// NotificationRefTypeWeComApproval 表示企微审批详情资源引用。
	NotificationRefTypeWeComApproval = "wecom_approval"
	// NotificationRefTypeIotCard 表示物联网卡详情资源引用。
	NotificationRefTypeIotCard = "iot_card"
	// NotificationRefTypeDevice 表示设备详情资源引用。
	NotificationRefTypeDevice = "device"
	// NotificationRefTypeExpiringAsset 表示临期资产列表资源引用。
	NotificationRefTypeExpiringAsset = "expiring_asset"
	// NotificationRefTypeShopFund 表示店铺资金概况资源引用。
	NotificationRefTypeShopFund = "shop_fund"
	// NotificationRefTypeCardSync 表示卡同步外部集成资源引用。
	NotificationRefTypeCardSync = "card_sync"

	// NotificationTargetTypeRefundDetail 表示退款详情前端目标。
	NotificationTargetTypeRefundDetail = "refund_detail"
	// NotificationTargetTypeAgentRechargeDetail 表示代理充值详情前端目标。
	NotificationTargetTypeAgentRechargeDetail = "agent_recharge_detail"
	// NotificationTargetTypeWeComApprovalDetail 表示企微审批详情前端目标。
	NotificationTargetTypeWeComApprovalDetail = "wecom_approval_detail"
	// NotificationTargetTypeIotCardDetail 表示物联网卡详情前端目标。
	NotificationTargetTypeIotCardDetail = "iot_card_detail"
	// NotificationTargetTypeDeviceDetail 表示设备详情前端目标。
	NotificationTargetTypeDeviceDetail = "device_detail"
	// NotificationTargetTypeExpiringAssetList 表示临期资产列表前端目标。
	NotificationTargetTypeExpiringAssetList = "expiring_asset_list"
	// NotificationTargetTypeShopFundSummary 表示店铺资金概况前端目标。
	NotificationTargetTypeShopFundSummary = "shop_fund_summary"
	// NotificationTargetTypeIntegrationLog 表示统一外部集成前端目标。
	NotificationTargetTypeIntegrationLog = "integration_log"
	// NotificationTargetTypeSystemConfig 表示受控系统配置前端目标。
	NotificationTargetTypeSystemConfig = "system_config"

	// OutboxEventTypeAdminDirectNotification 表示向明确后台账号投递通知的稳定事件类型。
	OutboxEventTypeAdminDirectNotification = "notification.admin.direct.requested"
	// OutboxEventTypePersonalCustomerDirectNotification 表示向明确个人客户投递通知的稳定事件类型。
	OutboxEventTypePersonalCustomerDirectNotification = "notification.personal_customer.direct.requested"
	// OutboxEventTypeAdminDynamicNotification 表示按账号、平台角色或店铺动态解析后台接收人的事件类型。
	OutboxEventTypeAdminDynamicNotification = "notification.admin.dynamic.requested"
	// NotificationPayloadVersionV1 表示明确后台账号通知载荷第一版。
	NotificationPayloadVersionV1 = 1

	// NotificationDefaultPageSize 表示后台通知默认每页数量。
	NotificationDefaultPageSize = 20
	// NotificationMaxPageSize 表示后台通知每页最大数量。
	NotificationMaxPageSize = 50
	// NotificationMaxPage 表示通知列表允许查询的最大页码，避免无界偏移。
	NotificationMaxPage = 10000
	// NotificationMaxTitleLength 表示通知纯文本标题最大字符数。
	NotificationMaxTitleLength = 200
	// NotificationMaxBodyLength 表示通知纯文本正文最大字符数。
	NotificationMaxBodyLength = 2000
	// NotificationExpiryRetentionDays 表示临期通知数据保留天数。
	NotificationExpiryRetentionDays = 180
	// NotificationApprovalRetentionDays 表示审批结果通知数据保留天数。
	NotificationApprovalRetentionDays = 365
	// NotificationSyncDisplayDays 表示同步异常默认展示天数。
	NotificationSyncDisplayDays = 30
	// NotificationSyncRetentionDays 表示同步异常通知数据保留天数。
	NotificationSyncRetentionDays = 180
	// NotificationSystemDefaultDisplayDays 表示系统告警默认展示天数。
	NotificationSystemDefaultDisplayDays = 30
	// NotificationSystemMaxDisplayDays 表示系统告警最长展示天数。
	NotificationSystemMaxDisplayDays = 365
	// NotificationSystemRetentionDays 表示系统告警数据保留天数。
	NotificationSystemRetentionDays = 365
	// NotificationCleanupBatchSize 表示单批清理通知数量。
	NotificationCleanupBatchSize = 500
	// NotificationCleanupMaxBatches 表示每类通知单次任务最多清理批次数。
	NotificationCleanupMaxBatches = 20
)
