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
|
import { relations, sql } from 'drizzle-orm';
import { numeric, text, pgTable, uuid, jsonb } from "drizzle-orm/pg-core";
import type { SessionLogType } from '../session-log';
import type { Sb1Tokens, Sb1Transaction, Sb1TransactionDetails } from '$lib/shared';
export const SyncSessionTable = pgTable("session", {
id: uuid('id').primaryKey().default(sql`uuidv7()`),
authzState: text("authzState"),
accessTokenCreated: numeric("accessTokenCreated"),
refreshTokenCreated: numeric("refreshTokenCreated"),
tokens: jsonb("tokens").$type<Sb1Tokens>()
})
export const SyncLogTable = pgTable("session_log", {
id: uuid('id').primaryKey().default(sql`uuidv7()`),
sessionId: text("session_id"),
dateTime: text("date_time"),
type: text("type").$type<SessionLogType>(),
msg: text("msg")
})
export const TransactionsTable = pgTable("transactions", {
transaction: jsonb("transaction").$type<Sb1Transaction>(),
details: jsonb("details").$type<Sb1TransactionDetails>()
})
export const SyncLogRelation = relations(SyncLogTable, ({ one }) => ({
author: one(SyncSessionTable, {
fields: [SyncLogTable.sessionId],
references: [SyncSessionTable.id],
})
}))
export const SyncSessionLogRelation = relations(SyncSessionTable, ({ many }) => ({
logs: many(SyncLogTable)
}))
|