out-of-your-element/db/orm-defs.d.ts

111 lines
2.1 KiB
TypeScript
Raw Normal View History

2023-09-14 00:32:27 +00:00
export type Models = {
channel_room: {
channel_id: string
room_id: string
name: string
nick: string | null
thread_parent: string | null
custom_avatar: string | null
last_bridged_pin_timestamp: number | null
2024-01-19 12:01:34 +00:00
speedbump_id: string | null
2024-01-20 11:54:18 +00:00
speedbump_webhook_id: string | null
2024-01-19 12:01:34 +00:00
speedbump_checked: number | null
2023-09-14 00:32:27 +00:00
}
event_message: {
event_id: string
message_id: string
event_type: string | null
event_subtype: string | null
part: number
reaction_part: number
2023-09-14 00:32:27 +00:00
source: number
}
file: {
discord_url: string
mxc_url: string
}
guild_space: {
guild_id: string
space_id: string
privacy_level: number
2023-09-14 00:32:27 +00:00
}
lottie: {
2023-10-04 23:32:05 +00:00
sticker_id: string
mxc_url: string
}
2023-09-14 00:32:27 +00:00
member_cache: {
room_id: string
mxid: string
displayname: string | null
avatar_url: string | null
}
message_channel: {
message_id: string
channel_id: string
}
// A sim is an account that is being simulated by the bridge to copy events from the other side. See d2m\actions\register-user.js for relevant behavior and comments.
2023-09-14 00:32:27 +00:00
sim: {
2023-10-04 23:32:05 +00:00
user_id: string
2023-09-14 00:32:27 +00:00
sim_name: string
localpart: string
mxid: string
}
sim_member: {
mxid: string
room_id: string
2023-09-30 12:24:05 +00:00
hashed_profile_content: number
2023-09-14 00:32:27 +00:00
}
2024-01-31 00:09:39 +00:00
sim_proxy: {
user_id: string
proxy_owner_id: string
2024-02-01 09:22:48 +00:00
displayname: string
2024-01-31 00:09:39 +00:00
}
2023-09-14 00:32:27 +00:00
webhook: {
channel_id: string
webhook_id: string
webhook_token: string
}
2023-09-19 05:43:57 +00:00
emoji: {
2023-10-05 23:31:10 +00:00
emoji_id: string
name: string
2023-09-19 05:43:57 +00:00
animated: number
mxc_url: string
}
reaction: {
hashed_event_id: number
message_id: string
encoded_emoji: string
}
auto_emoji: {
name: string
emoji_id: string
guild_id: string
}
2023-09-14 00:32:27 +00:00
}
export type Prepared<Row> = {
pluck: () => Prepared<Row[keyof Row]>
2023-09-30 12:24:05 +00:00
safeIntegers: () => Prepared<{[K in keyof Row]: Row[K] extends number ? BigInt : Row[K]}>
2023-10-07 11:00:34 +00:00
raw: () => Prepared<Row[keyof Row][]>
2023-09-14 00:32:27 +00:00
all: (..._: any[]) => Row[]
2023-09-30 12:24:05 +00:00
get: (..._: any[]) => Row | null
2023-09-14 00:32:27 +00:00
}
export type AllKeys<U> = U extends any ? keyof U : never
export type PickTypeOf<T, K extends AllKeys<T>> = T extends { [k in K]?: any } ? T[K] : never
export type Merge<U> = {[x in AllKeys<U>]: PickTypeOf<U, x>}
2024-01-31 00:09:39 +00:00
export type Nullable<T> = {[k in keyof T]: T[k] | null}