import { integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
import { users } from "@/schema/users";
import { sql } from "drizzle-orm";
{{pkStrategyImport}}

export const stripeWebhooks = sqliteTable("stripe_webhooks", {
  {{pkText}}
  payload: text(),
  {{createdAtTemplate}}
  {{updatedAtTemplate}}
});

export const products = sqliteTable("products", {
  {{pkText}}
  slug: text().notNull().unique(),
  stripeProductId: text().notNull().unique(),
  stripePriceId: text().notNull(),
  name: text().notNull(),
  price: integer().notNull(),
  description: text(),
  mode: text().notNull(),
  {{createdAtTemplate}}
  {{updatedAtTemplate}}
});

export const orders = sqliteTable("orders", {
  {{pkText}}
  userId: text().notNull().references(() => users.id),
  productId: text().references(() => products.id),
  note: text(),
  amountTotal: integer().notNull(),
  {{createdAtTemplate}}
  {{updatedAtTemplate}}
});

export const subscriptions = sqliteTable("subscriptions", {
  {{pkText}}
  userId: text().notNull().references(() => users.id),
  stripeCustomerId: text().notNull(),
  startDate: integer({ mode: "timestamp" }).notNull(),
  endDate: integer({ mode: "timestamp" }).notNull(),
  {{createdAtTemplate}}
  {{updatedAtTemplate}}
});
