| 1234567891011121314151617181920212223242526272829303132333435 |
- import { bigint, mysqlTable, primaryKey, uniqueIndex, varchar } from "drizzle-orm/mysql-core"
- import { timestamps, ulid, utc, workspaceColumns } from "../drizzle/types"
- import { workspaceIndexes } from "./workspace.sql"
- export const ReferralCodeTable = mysqlTable(
- "referral_code",
- {
- workspaceID: ulid("workspace_id").notNull(),
- code: varchar("code", { length: 10 }).notNull(),
- ...timestamps,
- },
- (table) => [primaryKey({ columns: [table.workspaceID] }), uniqueIndex("code").on(table.code)],
- )
- export const ReferralTable = mysqlTable(
- "referral",
- {
- ...workspaceColumns,
- ...timestamps,
- inviteeAccountID: ulid("invitee_account_id").notNull(),
- },
- (table) => [...workspaceIndexes(table), uniqueIndex("invitee_account_id").on(table.inviteeAccountID)],
- )
- export const ReferralRewardTable = mysqlTable(
- "referral_reward",
- {
- workspaceID: ulid("workspace_id").notNull(),
- referralID: ulid("referral_id").notNull(),
- ...timestamps,
- amount: bigint("amount", { mode: "number" }).notNull(),
- timeApplied: utc("time_applied"),
- },
- (table) => [primaryKey({ columns: [table.workspaceID, table.referralID] })],
- )
|