Add SMS templates, prepaid IRT billing, and advertising shortcode 9000590009.
Charge ceil(len/64)*400 IRT per recipient across OTP, customer, and partner SMS; seed new businesses with 500k IRT; default partner sends to the advertising line. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
4623061a4f
commit
4a1d60dbef
@@ -50,6 +50,7 @@ model User {
|
||||
transactions Transaction[] @relation("TransactionCustomer")
|
||||
userProducts UserProduct[]
|
||||
userRoles UserRole[]
|
||||
smsTemplatesVerified SmsTemplate[] @relation("SmsTemplateVerifier")
|
||||
|
||||
@@index([cellNumber], map: "idx_users_cell_number")
|
||||
@@map("users")
|
||||
@@ -69,6 +70,28 @@ model UserTitle {
|
||||
@@map("user_titles")
|
||||
}
|
||||
|
||||
model SmsTemplate {
|
||||
id BigInt @id @default(autoincrement())
|
||||
businessId BigInt @map("business_id")
|
||||
name String @db.VarChar(255)
|
||||
body String @db.Text
|
||||
verificationStatus String @default("free") @map("verification_status") @db.VarChar(32)
|
||||
isVerified Boolean @default(false) @map("is_verified")
|
||||
verifiedAt DateTime? @map("verified_at") @db.Timestamptz(6)
|
||||
verifiedBy BigInt? @map("verified_by")
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6)
|
||||
updatedAt DateTime @default(now()) @updatedAt @map("updated_at") @db.Timestamptz(6)
|
||||
business Business @relation(fields: [businessId], references: [id], onDelete: Cascade, onUpdate: NoAction)
|
||||
verifier User? @relation("SmsTemplateVerifier", fields: [verifiedBy], references: [id], onDelete: SetNull, onUpdate: NoAction)
|
||||
|
||||
@@index([businessId], map: "idx_sms_templates_business_id")
|
||||
@@index([businessId, isVerified], map: "idx_sms_templates_business_verified")
|
||||
@@index([verificationStatus], map: "idx_sms_templates_verification_status")
|
||||
@@index([businessId, verificationStatus], map: "idx_sms_templates_business_status")
|
||||
@@index([createdAt(sort: Desc)], map: "idx_sms_templates_created_at")
|
||||
@@map("sms_templates")
|
||||
}
|
||||
|
||||
model Business {
|
||||
id BigInt @id @default(autoincrement())
|
||||
name String @db.VarChar(255)
|
||||
@@ -89,12 +112,14 @@ model Business {
|
||||
faviconMediaId BigInt? @map("favicon_media_id")
|
||||
oldBusinessId BigInt? @map("old_business_id")
|
||||
annualRenewalAt DateTime? @map("annual_renewal_at") @db.Timestamptz(6)
|
||||
smsBalance Int @default(0) @map("sms_balance")
|
||||
addresses Address[]
|
||||
blogs blogs[]
|
||||
brands Brand[]
|
||||
categoryAssignments BusinessCategoryAssignment[]
|
||||
businessCustomers BusinessCustomer[]
|
||||
businessUsers BusinessUser[]
|
||||
smsTemplates SmsTemplate[]
|
||||
faviconMedia Media? @relation("BusinessFavicon", fields: [faviconMediaId], references: [id], onUpdate: NoAction)
|
||||
logoMedia Media? @relation("BusinessLogo", fields: [logoMediaId], references: [id], onUpdate: NoAction)
|
||||
logoDarkMedia Media? @relation("BusinessLogoDark", fields: [logoDarkMediaId], references: [id], onUpdate: NoAction)
|
||||
|
||||
Reference in New Issue
Block a user