2024-04-21 16:59:50 +02:00
|
|
|
import { PostgresDialect, CamelCasePlugin } from "kysely";
|
|
|
|
|
import type { GeneratedAlways } from "kysely";
|
2024-03-17 12:58:25 +01:00
|
|
|
import { Pool } from "pg";
|
|
|
|
|
import { KyselyAuth } from "@auth/kysely-adapter";
|
2024-04-21 16:59:50 +02:00
|
|
|
|
|
|
|
|
type GraphileJob = {
|
|
|
|
|
taskIdentifier: string;
|
|
|
|
|
payload: Record<string, any>;
|
|
|
|
|
priority: number;
|
|
|
|
|
maxAttempts: number;
|
|
|
|
|
key: string;
|
|
|
|
|
queueName: string;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const addGraphileJob = async (jobInfo: GraphileJob) => {
|
2024-04-21 20:47:55 +02:00
|
|
|
// await db.insertInto("graphile_worker.jobs").values(jobInfo).execute();
|
2024-04-21 16:59:50 +02:00
|
|
|
};
|
2024-03-17 12:58:25 +01:00
|
|
|
|
2024-04-23 10:31:26 +02:00
|
|
|
export interface Database {
|
2024-03-17 12:58:25 +01:00
|
|
|
User: {
|
2024-03-20 17:51:21 +01:00
|
|
|
id: string;
|
2024-03-17 12:58:25 +01:00
|
|
|
name: string | null;
|
|
|
|
|
email: string;
|
|
|
|
|
emailVerified: Date | null;
|
|
|
|
|
image: string | null;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Account: {
|
|
|
|
|
id: GeneratedAlways<string>;
|
|
|
|
|
userId: string;
|
2024-03-20 17:51:21 +01:00
|
|
|
type: "oidc" | "oauth" | "email" | "webauthn";
|
2024-03-17 12:58:25 +01:00
|
|
|
provider: string;
|
|
|
|
|
providerAccountId: string;
|
2024-03-20 17:51:21 +01:00
|
|
|
refresh_token: string | undefined;
|
|
|
|
|
access_token: string | undefined;
|
|
|
|
|
expires_at: number | undefined;
|
|
|
|
|
token_type: Lowercase<string> | undefined;
|
|
|
|
|
scope: string | undefined;
|
|
|
|
|
id_token: string | undefined;
|
|
|
|
|
session_state: string | undefined;
|
2024-03-17 12:58:25 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Session: {
|
|
|
|
|
id: GeneratedAlways<string>;
|
|
|
|
|
userId: string;
|
|
|
|
|
sessionToken: string;
|
|
|
|
|
expires: Date;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
VerificationToken: {
|
|
|
|
|
identifier: string;
|
|
|
|
|
token: string;
|
|
|
|
|
expires: Date;
|
|
|
|
|
};
|
|
|
|
|
|
2024-04-23 13:36:51 +02:00
|
|
|
WhatsappBot: {
|
2024-03-17 12:58:25 +01:00
|
|
|
id: GeneratedAlways<string>;
|
2024-04-21 08:11:24 +02:00
|
|
|
name: string;
|
|
|
|
|
phoneNumber: string;
|
|
|
|
|
createdBy: string;
|
|
|
|
|
createdAt: Date;
|
|
|
|
|
updatedAt: Date;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FacebookBot: {
|
|
|
|
|
id: GeneratedAlways<string>;
|
|
|
|
|
name: string;
|
|
|
|
|
createdBy: string;
|
|
|
|
|
createdAt: Date;
|
|
|
|
|
updatedAt: Date;
|
|
|
|
|
};
|
|
|
|
|
|
2024-04-23 13:36:51 +02:00
|
|
|
VoiceLine: {
|
2024-04-21 08:11:24 +02:00
|
|
|
id: GeneratedAlways<string>;
|
|
|
|
|
name: string;
|
|
|
|
|
createdBy: string;
|
|
|
|
|
createdAt: Date;
|
|
|
|
|
updatedAt: Date;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SignalBot: {
|
|
|
|
|
id: GeneratedAlways<string>;
|
|
|
|
|
name: string;
|
|
|
|
|
phoneNumber: string;
|
|
|
|
|
createdBy: string;
|
|
|
|
|
createdAt: Date;
|
|
|
|
|
updatedAt: Date;
|
2024-03-17 12:58:25 +01:00
|
|
|
};
|
2024-04-23 13:36:51 +02:00
|
|
|
|
|
|
|
|
Webhook: {
|
|
|
|
|
id: GeneratedAlways<string>;
|
|
|
|
|
name: string;
|
|
|
|
|
createdBy: string;
|
|
|
|
|
createdAt: Date;
|
|
|
|
|
updatedAt: Date;
|
|
|
|
|
};
|
2024-03-17 12:58:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const db = new KyselyAuth<Database>({
|
|
|
|
|
dialect: new PostgresDialect({
|
|
|
|
|
pool: new Pool({
|
|
|
|
|
host: process.env.DATABASE_HOST,
|
|
|
|
|
database: process.env.DATABASE_NAME,
|
2024-04-23 10:31:26 +02:00
|
|
|
port: parseInt(process.env.DATABASE_PORT!),
|
2024-03-17 12:58:25 +01:00
|
|
|
user: process.env.DATABASE_USER,
|
|
|
|
|
password: process.env.DATABASE_PASSWORD,
|
|
|
|
|
}),
|
|
|
|
|
}),
|
|
|
|
|
plugins: [new CamelCasePlugin()],
|
|
|
|
|
});
|