package usecase import ( "gateway/internal/model/notification/domain/enum" ) // SendRequest is the input for NotifierUseCase.Send / Enqueue. type SendRequest struct { TenantID string UID string Channel enum.Channel Kind enum.NotifyKind Target string Locale string Data map[string]any Severity enum.Severity IdempotencyKey string DoNotPersistBody bool } // NotificationDTO is the API-facing notification record (no raw target). type NotificationDTO struct { ID string `json:"id"` TenantID string `json:"tenant_id"` UID string `json:"uid,omitempty"` Channel enum.Channel `json:"channel"` Kind enum.NotifyKind `json:"kind"` TargetHash string `json:"target_hash"` TemplateKey string `json:"template_key"` Locale string `json:"locale"` Provider string `json:"provider,omitempty"` ProviderMessageID string `json:"provider_message_id,omitempty"` Status enum.NotifyStatus `json:"status"` Attempts int `json:"attempts"` LastError string `json:"last_error,omitempty"` IdempotencyKey string `json:"idempotency_key"` Severity enum.Severity `json:"severity"` OccurredAt int64 `json:"occurred_at"` DeliveredAt int64 `json:"delivered_at,omitempty"` }