import { defaultGqlPermission, defaultPermission } from "@tailor-platform/erp-kit/core"; import { db, type TailorAnyDBType } from "@tailor-platform/sdk"; const builtins = (params: { itemType?: TailorAnyDBType }) => { const itemId = db.uuid().description("Foreign key to Item"); return { itemId: params.itemType ? itemId.relation({ type: "n-1", toward: { type: params.itemType, as: "item" }, backward: "standardCosts", }) : itemId, version: db.int().description("1-based generation number within the item"), unitCost: db.decimal().description("Standard cost per unit, stored unrounded"), }; }; export function createStandardCostType(params: { itemType?: TailorAnyDBType }) { return db .table("StandardCost", { ...builtins(params), createdAt: db.fields.timestamps().createdAt, }) .indexes({ fields: ["itemId", "version"], unique: true, name: "standard_cost_item_version_unique_idx", }) .permission(defaultPermission) .gqlPermission(defaultGqlPermission); } export const standardCost = createStandardCostType({});