feat: manufacturer service with list, get, create

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-18 16:15:40 +02:00
parent 7de3e9e957
commit 8c1b19f07d
3 changed files with 117 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
import { asc, eq } from "drizzle-orm";
import { db as prodDb } from "../../db/index.ts";
import { manufacturers } from "../../db/schema.ts";
type Db = typeof prodDb;
export type CreateManufacturerInput = {
name: string;
slug: string;
website: string;
tier?: number;
country?: string;
};
export async function listManufacturers(db: Db = prodDb) {
return db.select().from(manufacturers).orderBy(asc(manufacturers.name));
}
export async function getManufacturerBySlug(db: Db = prodDb, slug: string) {
const [row] = await db
.select()
.from(manufacturers)
.where(eq(manufacturers.slug, slug));
return row ?? null;
}
export async function createManufacturer(
db: Db = prodDb,
data: CreateManufacturerInput,
) {
const [row] = await db
.insert(manufacturers)
.values({
name: data.name,
slug: data.slug,
website: data.website,
tier: data.tier ?? 1,
country: data.country ?? null,
})
.returning();
return row!;
}