feat: schedule next airing episode

happens when new title is saved, or when new episode internal route is run successfully
This commit is contained in:
2024-09-09 03:53:34 -05:00
parent 38195776c2
commit 336701a84b
14 changed files with 353 additions and 19 deletions

View File

@@ -0,0 +1,31 @@
import { eq } from "drizzle-orm";
import type { Env } from "~/types/env";
import { getDb } from "./db";
import { titleMessagesTable } from "./schema";
export function setTitleMessage(env: Env, titleId: number, messageId: string) {
return getDb(env)
.insert(titleMessagesTable)
.values({ titleId, messageId })
.onConflictDoUpdate({
set: { messageId },
target: [titleMessagesTable.titleId],
});
}
export function getTitleMessage(env: Env, titleId: number) {
return getDb(env)
.select()
.from(titleMessagesTable)
.where(eq(titleMessagesTable.titleId, titleId))
.then((results) => results[0].messageId);
}
export function deleteTitleMessage(env: Env, titleId: number) {
return getDb(env)
.delete(titleMessagesTable)
.where(eq(titleMessagesTable.titleId, titleId))
.run();
}