All files / convex/lib discordGuildEvents.ts

100% Statements 42/42
100% Branches 0/0
100% Functions 0/0
100% Lines 42/42

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 431x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import { v, type Infer } from "convex/values"
 
import { jsonValue } from "./validators"
 
export const discordGuildEventType = v.union(
  v.literal("guildMemberAdd"),
  v.literal("guildMemberRemove"),
  v.literal("guildBanAdd"),
  v.literal("guildBanRemove"),
  v.literal("channelCreate"),
  v.literal("channelDelete"),
  v.literal("roleCreate"),
  v.literal("roleDelete"),
  v.literal("messageDelete")
)
 
export const discordGuildEventTargetType = v.union(
  v.literal("member"),
  v.literal("user"),
  v.literal("channel"),
  v.literal("role"),
  v.literal("message")
)
 
export const discordGuildEventRecordInput = v.object({
  discordGuildId: v.string(),
  eventType: discordGuildEventType,
  actorDiscordUserId: v.optional(v.string()),
  targetType: discordGuildEventTargetType,
  targetDiscordId: v.optional(v.string()),
  targetDisplayName: v.optional(v.string()),
  channelId: v.optional(v.string()),
  roleId: v.optional(v.string()),
  reason: v.optional(v.string()),
  metadata: v.optional(jsonValue),
  occurredAt: v.number(),
  dedupeKey: v.optional(v.string()),
})
 
export type DiscordGuildEventRecordInput = Infer<
  typeof discordGuildEventRecordInput
>