package notification // NotificationType represents the type of notification type NotificationType string const ( NotificationTypeInfo NotificationType = "info" NotificationTypeWarning NotificationType = "warning" NotificationTypeAlert NotificationType = "alert" NotificationTypeReject NotificationType = "reject" ) // NotificationPriority represents the priority level of notification type NotificationPriority string const ( NotificationPriorityLow NotificationPriority = "low" NotificationPriorityMedium NotificationPriority = "medium" NotificationPriorityImportant NotificationPriority = "important" ) // DeliveryChannel represents the delivery channel for notification type DeliveryChannel string const ( DeliveryChannelPush DeliveryChannel = "push" DeliveryChannelEmail DeliveryChannel = "email" ) // DeliveryStatus represents the delivery status of notification type NotificationStatus string const ( DeliveryStatusPending NotificationStatus = "pending" DeliveryStatusSent NotificationStatus = "sent" DeliveryStatusFailed NotificationStatus = "failed" ) // TargetAudienceType represents the type of target audience // Supported audience types: // - all_users: All users in the system // - specific_users: Specific users by their IDs // - all_role: All users with a specific role (e.g., all admins) // - specific_role: Users with a specific role, optionally filtered by tender // - specific_company: All users belonging to a specific company // - all_companies: All users from all companies // - specific_customer: All users belonging to a specific customer // - all_customers: All users from all customers type TargetAudienceType string const ( TargetAudienceAllUsers TargetAudienceType = "all_users" TargetAudienceSpecificUsers TargetAudienceType = "specific_users" TargetAudienceAllRole TargetAudienceType = "all_role" TargetAudienceSpecificRole TargetAudienceType = "specific_role" TargetAudienceAllCompanies TargetAudienceType = "all_companies" TargetAudienceSpecificCompany TargetAudienceType = "specific_company" TargetAudienceAllCustomers TargetAudienceType = "all_customers" TargetAudienceSpecificCustomer TargetAudienceType = "specific_customer" ) type notificationRecipient struct { UserID string Email string DeviceTokens []string }