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)],
);
