add strike reason admin panel

This commit is contained in:
2025-05-22 00:25:22 +02:00
parent 45f984e4da
commit a21d3d283a
11 changed files with 250 additions and 5 deletions

View File

@ -1,6 +1,6 @@
import { int, mysqlTable, tinyint, varchar } from 'drizzle-orm/mysql-core';
import type { MySql2Database } from 'drizzle-orm/mysql2';
import { asc } from 'drizzle-orm';
import { asc, eq } from 'drizzle-orm';
type Database = MySql2Database<{ strikeReason: typeof strikeReason }>;
@ -10,8 +10,33 @@ export const strikeReason = mysqlTable('strike_reason', {
weight: tinyint('weight').notNull()
});
export type AddStrikeReasonReq = {
name: string;
weight: number;
};
export type EditStrikeReasonReq = typeof strikeReason.$inferSelect;
export type DeleteStrikeReasonReq = {
id: number;
};
export type GetStrikeReasonsReq = {};
export async function addStrikeReason(db: Database, values: AddStrikeReasonReq) {
const sr = await db.insert(strikeReason).values(values).$returningId();
return sr[0];
}
export async function editStrikeReason(db: Database, values: EditStrikeReasonReq) {
await db.update(strikeReason).set(values).where(eq(strikeReason.id, values.id));
}
export async function deleteStrikeReason(db: Database, values: DeleteStrikeReasonReq) {
await db.delete(strikeReason).where(eq(strikeReason.id, values.id));
}
export async function getStrikeReasons(db: Database, _values: GetStrikeReasonsReq) {
return db.select().from(strikeReason).orderBy(asc(strikeReason.weight));
}