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:
31
src/models/titleMessages.ts
Normal file
31
src/models/titleMessages.ts
Normal 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();
|
||||
}
|
||||
Reference in New Issue
Block a user