[wip] bugs to work out, but backend should support inventory

This commit is contained in:
2026-04-02 19:24:51 -04:00
parent 38f041d86f
commit 3be17fe84c
8 changed files with 240 additions and 100 deletions

View File

@@ -21,9 +21,21 @@ export const relations = defineRelations(schema, (r) => ({
}),
history: r.many.priceHistory(),
latestSales: r.many.salesHistory(),
inventories: r.many.inventory(),
},
inventory: {
card: r.one.cards({
from: r.inventory.cardId,
to: r.cards.cardId,
}),
sku: r.one.skus({
from: [r.inventory.cardId, r.inventory.condition],
to: [r.skus.cardId, r.skus.condition],
}),
},
cards: {
prices: r.many.skus(),
inventories: r.many.inventory(),
set: r.one.sets({
from: r.cards.setId,
to: r.sets.setId,

View File

@@ -1,5 +1,5 @@
//import { mysqlTable, int, varchar, boolean, decimal, datetime, index } from "drizzle-orm/mysql-core"
import { integer, varchar, boolean, decimal, timestamp, index, pgSchema, uniqueIndex, primaryKey } from "drizzle-orm/pg-core";
import { integer, varchar, boolean, decimal, timestamp, index, pgSchema, uuid, primaryKey } from "drizzle-orm/pg-core";
export const pokeSchema = pgSchema("pokemon");
@@ -98,6 +98,7 @@ export const skus = pokeSchema.table('skus', {
},
(table) => [
index('idx_product_id_condition').on(table.productId, table.variant, table.condition),
index('idx_card_id_condition').on(table.cardId, table.condition),
]);
export const priceHistory = pokeSchema.table('price_history', {
@@ -124,6 +125,20 @@ export const salesHistory = pokeSchema.table('sales_history',{
primaryKey({ name: 'pk_sales_history', columns: [table.skuId, table.orderDate] })
]);
export const inventory = pokeSchema.table('inventory',{
inventoryId: uuid().primaryKey().notNull().defaultRandom(),
userId: varchar({ length: 100 }).notNull(),
catalogName: varchar({ length: 100 }),
cardId: integer().notNull(),
condition: varchar({ length: 255 }).notNull(),
quantity: integer(),
purchasePrice: integer(),
note: varchar({ length:255 })
},
(table) => [
index('idx_userid_cardid').on(table.userId, table.cardId)
]);
export const processingSkus = pokeSchema.table('processing_skus', {
skuId: integer().primaryKey(),
});