diff --git a/README.md b/README.md
index 374ad7f..0eaac3c 100644
--- a/README.md
+++ b/README.md
@@ -9,9 +9,9 @@
-
-
-
+
+
+
# Features
diff --git a/prisma/migrations/20260409214508_init/migration.sql b/prisma/migrations/20260422105711_init/migration.sql
similarity index 84%
rename from prisma/migrations/20260409214508_init/migration.sql
rename to prisma/migrations/20260422105711_init/migration.sql
index a4cf02d..061247a 100644
--- a/prisma/migrations/20260409214508_init/migration.sql
+++ b/prisma/migrations/20260422105711_init/migration.sql
@@ -1,6 +1,9 @@
-- CreateEnum
CREATE TYPE "ProjectRole" AS ENUM ('OWNER', 'ADMIN', 'EDITOR', 'VIEWER');
+-- CreateEnum
+CREATE TYPE "SubscriptionProvider" AS ENUM ('STRIPE', 'APPLE');
+
-- CreateTable
CREATE TABLE "User" (
"id" TEXT NOT NULL,
@@ -10,8 +13,8 @@ CREATE TABLE "User" (
"username" TEXT,
"color" TEXT,
"isProUntil" TIMESTAMP(3),
- "stripeSubscriptionId" TEXT,
"isSubscriptionCancelled" BOOLEAN NOT NULL DEFAULT false,
+ "subscriptionProvider" "SubscriptionProvider",
"settings" JSONB,
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
@@ -65,6 +68,17 @@ CREATE TABLE "MagicLinkToken" (
CONSTRAINT "MagicLinkToken_pkey" PRIMARY KEY ("id")
);
+-- CreateTable
+CREATE TABLE "Transaction" (
+ "id" SERIAL NOT NULL,
+ "userId" TEXT NOT NULL,
+ "provider" "SubscriptionProvider" NOT NULL,
+ "transactionId" TEXT NOT NULL,
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
+
+ CONSTRAINT "Transaction_pkey" PRIMARY KEY ("id")
+);
+
-- CreateTable
CREATE TABLE "Project" (
"id" TEXT NOT NULL,
@@ -120,6 +134,12 @@ CREATE UNIQUE INDEX "MagicLinkToken_tokenHash_key" ON "MagicLinkToken"("tokenHas
-- CreateIndex
CREATE INDEX "MagicLinkToken_email_createdAt_idx" ON "MagicLinkToken"("email", "createdAt");
+-- CreateIndex
+CREATE INDEX "Transaction_userId_idx" ON "Transaction"("userId");
+
+-- CreateIndex
+CREATE INDEX "Transaction_transactionId_idx" ON "Transaction"("transactionId");
+
-- CreateIndex
CREATE UNIQUE INDEX "ProjectMember_userId_projectId_key" ON "ProjectMember"("userId", "projectId");
@@ -135,6 +155,9 @@ ALTER TABLE "Account" ADD CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId"
-- AddForeignKey
ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+-- AddForeignKey
+ALTER TABLE "Transaction" ADD CONSTRAINT "Transaction_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
-- AddForeignKey
ALTER TABLE "ProjectMember" ADD CONSTRAINT "ProjectMember_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
diff --git a/src/vendor.d.ts b/src/vendor.d.ts
index e83e063..1cc9857 100644
--- a/src/vendor.d.ts
+++ b/src/vendor.d.ts
@@ -3,6 +3,12 @@
// top-level import/export so TypeScript treats it as a script file and these declarations
// act as true ambient overrides rather than module augmentations.
+declare module "*.svg" {
+ import type { FC, SVGProps } from "react";
+ const ReactComponent: FC>;
+ export default ReactComponent;
+}
+
declare module "@formkit/auto-animate" {
interface Coordinates { top: number; left: number; width: number; height: number }
export interface AnimationController {