ci: trigga på master + formatfix inför Gitea Actions
CI / Typecheck, test & build (push) Failing after 2s
CI / Typecheck, test & build (push) Failing after 2s
This commit is contained in:
@@ -2,7 +2,16 @@
|
||||
* Product analytics schema (spec §8).
|
||||
* Pseudonymous events stored in Postgres, separated from AAMOS memory.
|
||||
*/
|
||||
import { index, integer, jsonb, pgTable, text, timestamp, uuid, varchar } from "drizzle-orm/pg-core";
|
||||
import {
|
||||
index,
|
||||
integer,
|
||||
jsonb,
|
||||
pgTable,
|
||||
text,
|
||||
timestamp,
|
||||
uuid,
|
||||
varchar,
|
||||
} from "drizzle-orm/pg-core";
|
||||
import { createdAt } from "./_shared.js";
|
||||
import { households } from "./households.js";
|
||||
import { users } from "./users.js";
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
import { boolean, doublePrecision, integer, pgTable, text, uuid, varchar } from "drizzle-orm/pg-core";
|
||||
import {
|
||||
boolean,
|
||||
doublePrecision,
|
||||
integer,
|
||||
pgTable,
|
||||
text,
|
||||
uuid,
|
||||
varchar,
|
||||
} from "drizzle-orm/pg-core";
|
||||
import { createdAt, updatedAt } from "./_shared.js";
|
||||
import { inventoryItems } from "./inventory.js";
|
||||
|
||||
|
||||
@@ -24,10 +24,9 @@ export const households = pgTable(
|
||||
/** Fas 1b: aktiveringsmått (spec §4.2) */
|
||||
firstScanCompletedAt: timestamp("first_scan_completed_at", { withTimezone: true }),
|
||||
fifthItemConfirmedAt: timestamp("fifth_item_confirmed_at", { withTimezone: true }),
|
||||
firstRecipeRecommendationViewedAt: timestamp(
|
||||
"first_recipe_recommendation_viewed_at",
|
||||
{ withTimezone: true },
|
||||
),
|
||||
firstRecipeRecommendationViewedAt: timestamp("first_recipe_recommendation_viewed_at", {
|
||||
withTimezone: true,
|
||||
}),
|
||||
firstRecipeSavedOrStartedAt: timestamp("first_recipe_saved_or_started_at", {
|
||||
withTimezone: true,
|
||||
}),
|
||||
|
||||
@@ -121,7 +121,9 @@ export const inventoryConflicts = pgTable(
|
||||
householdId: uuid("household_id")
|
||||
.notNull()
|
||||
.references(() => households.id, { onDelete: "cascade" }),
|
||||
inventoryItemId: uuid("inventory_item_id").references(() => inventoryItems.id, { onDelete: "cascade" }),
|
||||
inventoryItemId: uuid("inventory_item_id").references(() => inventoryItems.id, {
|
||||
onDelete: "cascade",
|
||||
}),
|
||||
scanJobId: uuid("scan_job_id"),
|
||||
/** Beskrivande typ: receipt_vs_image, member_vs_member, offline_vs_server, model_disagreement. */
|
||||
conflictType: text("conflict_type").notNull(),
|
||||
@@ -137,7 +139,9 @@ export const inventoryConflicts = pgTable(
|
||||
proposedResolution: jsonb("proposed_resolution").$type<Record<string, unknown>>(),
|
||||
status: text("status").notNull().default("open"),
|
||||
/** Användaren som löste konflikten, eller NULL om system-förslag. */
|
||||
resolvedByUserId: uuid("resolved_by_user_id").references(() => users.id, { onDelete: "set null" }),
|
||||
resolvedByUserId: uuid("resolved_by_user_id").references(() => users.id, {
|
||||
onDelete: "set null",
|
||||
}),
|
||||
resolution: jsonb("resolution").$type<Record<string, unknown>>(),
|
||||
/** Modell- och promptversion som användes när konflikten upptäcktes. */
|
||||
modelVersion: text("model_version"),
|
||||
|
||||
@@ -217,14 +217,16 @@ export const cookingSessions = pgTable(
|
||||
/** Måltidsdatum (UTC) som rester/matlådor knyts till. */
|
||||
mealDate: date("meal_date"),
|
||||
/** Vilka meal_boxes som påverkades av sessionen och med hur mycket. */
|
||||
mealBoxMutations: jsonb("meal_box_mutations").$type<
|
||||
Array<{ mealBoxId: string; deltaPortions: number; frozen: boolean }>
|
||||
>(),
|
||||
mealBoxMutations:
|
||||
jsonb("meal_box_mutations").$type<
|
||||
Array<{ mealBoxId: string; deltaPortions: number; frozen: boolean }>
|
||||
>(),
|
||||
leftoverNote: text("leftover_note"),
|
||||
/** Ursprungligt FEFO-förslag, sparas för ev. undo/omräkning. */
|
||||
plannedDeductions: jsonb("planned_deductions").$type<
|
||||
Array<{ itemId: string; quantity: number; unit: string; name: string }>
|
||||
>(),
|
||||
plannedDeductions:
|
||||
jsonb("planned_deductions").$type<
|
||||
Array<{ itemId: string; quantity: number; unit: string; name: string }>
|
||||
>(),
|
||||
startedAt: timestamp("started_at", { withTimezone: true }),
|
||||
completedAt: timestamp("completed_at", { withTimezone: true }),
|
||||
cancelledAt: timestamp("cancelled_at", { withTimezone: true }),
|
||||
@@ -283,9 +285,10 @@ export const cookingAssumptionProfiles = pgTable(
|
||||
/** Hur många observationer profilen bygger på. */
|
||||
observationCount: integer("observation_count").notNull().default(0),
|
||||
/** Senaste rådata för felsökning/återspelning. */
|
||||
lastSessionAnswers: jsonb("last_session_answers").$type<
|
||||
Array<{ sessionId: string; eaten: number; leftovers: number; date: string }>
|
||||
>(),
|
||||
lastSessionAnswers:
|
||||
jsonb("last_session_answers").$type<
|
||||
Array<{ sessionId: string; eaten: number; leftovers: number; date: string }>
|
||||
>(),
|
||||
updatedAt: updatedAt(),
|
||||
},
|
||||
(t) => [
|
||||
|
||||
@@ -2,7 +2,18 @@
|
||||
* Release gates schema (spec §17).
|
||||
* Configurable go/no-go criteria evaluated against analytics events.
|
||||
*/
|
||||
import { boolean, doublePrecision, index, integer, pgEnum, pgTable, text, timestamp, uuid, varchar } from "drizzle-orm/pg-core";
|
||||
import {
|
||||
boolean,
|
||||
doublePrecision,
|
||||
index,
|
||||
integer,
|
||||
pgEnum,
|
||||
pgTable,
|
||||
text,
|
||||
timestamp,
|
||||
uuid,
|
||||
varchar,
|
||||
} from "drizzle-orm/pg-core";
|
||||
import { createdAt, updatedAt } from "./_shared.js";
|
||||
import {
|
||||
RELEASE_GATE_CATEGORIES,
|
||||
@@ -19,10 +30,7 @@ export const releaseGateComparisonEnum = pgEnum(
|
||||
"release_gate_comparison",
|
||||
tuple(RELEASE_GATE_COMPARISONS),
|
||||
);
|
||||
export const releaseGateStatusEnum = pgEnum(
|
||||
"release_gate_status",
|
||||
tuple(RELEASE_GATE_STATUSES),
|
||||
);
|
||||
export const releaseGateStatusEnum = pgEnum("release_gate_status", tuple(RELEASE_GATE_STATUSES));
|
||||
|
||||
export const releaseGates = pgTable(
|
||||
"release_gates",
|
||||
|
||||
Reference in New Issue
Block a user