from enum import Enum from pydantic import BaseModel from common.constants.region import UserRegion class NotificationChannel(Enum): IN_APP = 0 CHAT_MESSAGE = 1 EMAIL = 2 SMS = 3 class NotificationMessage(BaseModel): sender_id: str receiver_id: str subject: str event: str properties: dict SystemNotifications = { UserRegion.OTHER: { "request": { # Subject "quoted": { # Event "message_subject": "update for your request", "message": "There is a quote for your request", }, "unquoted": { "message_subject": "update for your request", "message": "A quote for your request has been withdrawed", }, "invite": { "message_subject": "You are invited", "message": "You are invited to provide proposal for a request.", }, "chat_created": { "message_subject": "new chat created", "message": "This chat group is created for the project.", }, }, "quote": { # Subject "accepted": { # Event "message_subject": "update for your quote", "message": "Your quote has been accepted", }, "rejected": { "message_subject": "update for your quote", "message": "Your quote has been rejected", }, }, "milestone": { # Subject "state-change": { # Event "message_subject": "update for your milestone", "message": "Your project milestone has a state change.", } }, "email": { # Subject "authentication": { # Event "message_subject": "Freeleaps Support", "message": "The auth code is: {} . \r\nDo not share this to anyone.", }, "magicleaps_authentication": { # Event "message_subject": "MagicLeaps Support", "message": "The auth code is: {} . \r\nDo not share this to anyone.", } }, "mobile": { # Subject "authentication": { # Event "message_subject": "Freeleaps Support", "message": "The auth code is: {} . \r\nDo not share this to anyone.", }, "magicleaps_authentication": { # Event "message_subject": "MagicLeaps Support", "message": "The auth code is: {} . \r\nDo not share this to anyone.", } }, "message": { # Subject "new": { # Event "message_subject": "new messages", "message": "There are new messages.", } }, }, UserRegion.ZH_CN: { "request": { # Subject "quoted": { # Event "message_subject": "你的请求有更新", "message": "这里有一条关于你的请求的报价", }, "unquoted": { "message_subject": "你的请求有更新", "message": "一条你的请求的报价被拒绝", }, "invite": { "message_subject": "有人邀请你", "message": "你被邀请为一个请求提供报价", }, "chat_created": { "message_subject": "创建了聊天群组", "message": "本项目的聊天群组以及建立完成.", }, }, "quote": { # Subject "accepted": { "message_subject": "你的报价有更新", "message": "你的报价已被接受", }, # Event "rejected": { "message_subject": "你的报价有更新", "message": "你的报价被拒绝", }, }, "milestone": { # Subject "state-change": { # Event "message_subject": "你的里程碑有更新", "message": "你的项目里程碑发生了状态改变", } }, "email": { # Subject "authentication": { # Event "message_subject": "自由跳跃技术支持", "message": "安全认证码为: {} . \r\n切勿分享给他人", }, "magicleaps_authentication": { # Event "message_subject": "MagicLeaps 技术支持", "message": "安全认证码为: {} . \r\n切勿分享给他人", } }, "mobile": { # Subject "authentication": { # Event "message_subject": "自由跳跃技术支持", "message": "安全认证码为: {} . \r\n切勿分享给他人", }, "magicleaps_authentication": { # Event "message_subject": "MagicLeaps 技术支持", "message": "安全认证码为: {} . \r\n切勿分享给他人", } }, "message": { # Subject "new": {"message_subject": "新消息", "message": "你有新的会话消息"} # Event }, }, } class NotificationConstants: DEFAULT_EMAIL_SENDER: str = "support@freeleaps.com" class Settings: name = "notification_constants" indexes = [ "DEFAULT_EMAIL_SENDER" ]