feat(consent): user_terms_consents + /v1/me/consent

This commit is contained in:
Sven (AAMOS AI)
2026-08-13 02:06:44 +07:00
parent 1df3ca1709
commit 61c3193f17
8 changed files with 10534 additions and 1 deletions
+1
View File
@@ -23,3 +23,4 @@ export * from "./ops.js";
export * from "./platform.js";
export * from "./releaseGates.js";
export * from "./gemini-usage.js";
export * from "./terms.js";
+22
View File
@@ -0,0 +1,22 @@
import { pgTable, text, timestamp, uniqueIndex, uuid } from "drizzle-orm/pg-core";
import { createdAt } from "./_shared.js";
import { users } from "./users.js";
/**
* Godkännande av allmänna villkor. En rad per (userId, termsVersion) gör
* bevislagringen otvetydig: vilken version som gällde när användaren
* accepterade och exakt när det skedde.
*/
export const userTermsConsents = pgTable(
"user_terms_consents",
{
id: uuid("id").primaryKey().defaultRandom(),
userId: uuid("user_id")
.notNull()
.references(() => users.id, { onDelete: "cascade" }),
termsVersion: text("terms_version").notNull(),
acceptedAt: timestamp("accepted_at", { withTimezone: true }).notNull().defaultNow(),
createdAt: createdAt(),
},
(t) => [uniqueIndex("user_terms_consents_user_version_unique").on(t.userId, t.termsVersion)],
);
+3
View File
@@ -180,3 +180,6 @@ export const STORE_SECTION_LABELS_SV: Record<StoreSection, string> = {
export const AI_CONTRACT_VERSION = "1.0.0";
export const API_VERSION = "v1";
/** Gällande version av användarvillkoren. Skrivs till user_terms_consents. */
export const TERMS_VERSION = "1.0";