diff --git a/CLAUDE.md b/CLAUDE.md
index bfe5207..d1b33a9 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Project Overview
-Rhema Wave Technologies User Portal — a SvelteKit web app managing affirmations (audio content tied to solfeggio frequencies), user accounts, license keys, and authentication.
+Rhema Wave Technologies User Portal — a SvelteKit web app managing proclamations (audio content tied to solfeggio frequencies), user accounts, license keys, and authentication.
## Tech Stack
@@ -48,13 +48,12 @@ npm run deploy # Apply pending Prisma migrations
### Key Patterns
- **Svelte 5 runes throughout** — use `$props()`, `$state()`, `$derived()`, `$effect()` (not Svelte 4 reactivity).
-- **SvelteKit form actions** for mutations (create/edit affirmations, registration, account setup).
-- **Reusable forms** — `AffirmationForm.svelte` is shared between create and edit via an `action` prop.
-- **API routes** at `src/routes/api/v1/` (affirmations, license keys).
+- **SvelteKit form actions** for mutations (create/edit proclamations, registration, account setup).
+- **API routes** at `src/routes/api/v1/` (proclamations, license keys).
### Database Schema
-Core models: `User`, `Profile` (1:1 with User), `Address` (belongs to Profile), `Session`, `Account` (OAuth), `UserRole`, `Affirmation`, `SolfeggioFrequency`, `AffirmationCategory`, `LicenseKey`. Schema lives in `prisma/schema.prisma`.
+Core models: `User`, `Profile` (1:1 with User), `Address` (belongs to Profile), `Session`, `Account` (OAuth), `UserRole`, `Proclamation`, `SolfeggioFrequency`, `ProclamationCategory`, `LicenseKey`. Schema lives in `prisma/schema.prisma`.
## Testing
diff --git a/prisma/migrations/20260225150600_rename_affirmation_to_proclamation/migration.sql b/prisma/migrations/20260225150600_rename_affirmation_to_proclamation/migration.sql
new file mode 100644
index 0000000..034b8d3
--- /dev/null
+++ b/prisma/migrations/20260225150600_rename_affirmation_to_proclamation/migration.sql
@@ -0,0 +1,60 @@
+/*
+ Warnings:
+
+ - You are about to drop the `Affirmation` table. If the table is not empty, all the data it contains will be lost.
+ - You are about to drop the `AffirmationCategory` table. If the table is not empty, all the data it contains will be lost.
+
+*/
+-- DropForeignKey
+ALTER TABLE "Affirmation" DROP CONSTRAINT "Affirmation_categoryId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "Affirmation" DROP CONSTRAINT "Affirmation_solfeggioFrequencyId_fkey";
+
+-- DropForeignKey
+ALTER TABLE "AffirmationCategory" DROP CONSTRAINT "AffirmationCategory_parentId_fkey";
+
+-- DropTable
+DROP TABLE "Affirmation";
+
+-- DropTable
+DROP TABLE "AffirmationCategory";
+
+-- CreateTable
+CREATE TABLE "Proclamation" (
+ "id" TEXT NOT NULL,
+ "name" TEXT NOT NULL,
+ "content" TEXT NOT NULL,
+ "solfeggioFrequencyId" INTEGER NOT NULL,
+ "categoryId" INTEGER NOT NULL,
+ "price" DOUBLE PRECISION NOT NULL DEFAULT 0.99,
+
+ CONSTRAINT "Proclamation_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateTable
+CREATE TABLE "ProclamationCategory" (
+ "id" SERIAL NOT NULL,
+ "name" TEXT NOT NULL,
+ "parentId" INTEGER,
+
+ CONSTRAINT "ProclamationCategory_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateIndex
+CREATE UNIQUE INDEX "Proclamation_name_key" ON "Proclamation"("name");
+
+-- CreateIndex
+CREATE UNIQUE INDEX "Proclamation_content_key" ON "Proclamation"("content");
+
+-- CreateIndex
+CREATE UNIQUE INDEX "ProclamationCategory_name_key" ON "ProclamationCategory"("name");
+
+-- AddForeignKey
+ALTER TABLE "Proclamation" ADD CONSTRAINT "Proclamation_solfeggioFrequencyId_fkey" FOREIGN KEY ("solfeggioFrequencyId") REFERENCES "SolfeggioFrequency"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "Proclamation" ADD CONSTRAINT "Proclamation_categoryId_fkey" FOREIGN KEY ("categoryId") REFERENCES "ProclamationCategory"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "ProclamationCategory" ADD CONSTRAINT "ProclamationCategory_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "ProclamationCategory"("id") ON DELETE SET NULL ON UPDATE CASCADE;
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index afb4ae2..8a22774 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -109,31 +109,31 @@ model Verification {
@@map("verification")
}
-model Affirmation {
- id String @id @default(uuid())
- name String @unique
- content String @unique
+model Proclamation {
+ id String @id @default(uuid())
+ name String @unique
+ content String @unique
solfeggioFrequencyId Int
- solfeggioFrequency SolfeggioFrequency @relation(fields: [solfeggioFrequencyId], references: [id])
+ solfeggioFrequency SolfeggioFrequency @relation(fields: [solfeggioFrequencyId], references: [id])
categoryId Int
- category AffirmationCategory @relation(fields: [categoryId], references: [id])
- price Float @default(0.99)
+ category ProclamationCategory @relation(fields: [categoryId], references: [id])
+ price Float @default(0.99)
}
model SolfeggioFrequency {
- id Int @id @default(autoincrement())
- name String @unique
- value Float @unique
- affirmations Affirmation[]
+ id Int @id @default(autoincrement())
+ name String @unique
+ value Float @unique
+ proclamations Proclamation[]
}
-model AffirmationCategory {
- id Int @id @default(autoincrement())
- name String @unique
- parentId Int?
- parent AffirmationCategory? @relation("CategoryHierarchy", fields: [parentId], references: [id])
- children AffirmationCategory[] @relation("CategoryHierarchy")
- affirmations Affirmation[]
+model ProclamationCategory {
+ id Int @id @default(autoincrement())
+ name String @unique
+ parentId Int?
+ parent ProclamationCategory? @relation("CategoryHierarchy", fields: [parentId], references: [id])
+ children ProclamationCategory[] @relation("CategoryHierarchy")
+ proclamations Proclamation[]
}
model LicenseKey {
diff --git a/src/lib/components/forms/affirmation/AffirmationForm.svelte b/src/lib/components/forms/affirmation/AffirmationForm.svelte
deleted file mode 100644
index 9a53799..0000000
--- a/src/lib/components/forms/affirmation/AffirmationForm.svelte
+++ /dev/null
@@ -1,260 +0,0 @@
-
-
-
diff --git a/src/lib/components/forms/frequency/FrequencyForm.svelte b/src/lib/components/forms/frequency/FrequencyForm.svelte
deleted file mode 100644
index 5ad0eb3..0000000
--- a/src/lib/components/forms/frequency/FrequencyForm.svelte
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
diff --git a/src/lib/components/ui/AffirmationList/AffirmationList.svelte b/src/lib/components/ui/AffirmationList/AffirmationList.svelte
deleted file mode 100644
index 7a2a80f..0000000
--- a/src/lib/components/ui/AffirmationList/AffirmationList.svelte
+++ /dev/null
@@ -1,242 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- {#if hasActiveFilters}
-
- {/if}
-
-
- {filteredAndSorted().length} of {affirmations.length}
-
-
-
-
-
-
-
- |
-
- |
-
-
- |
-
-
- |
-
-
- |
- |
-
-
-
- {#each filteredAndSorted() as affirmation}
-
- | {affirmation.name} |
- {categoryDisplayName(affirmation.category) || '—'} |
- {affirmation.solfeggioFrequency?.name ?? '—'} |
- ${affirmation.price.toFixed(2)} |
-
-
- Edit
-
- |
-
- {:else}
-
- |
- {#if hasActiveFilters}
- No affirmations match your filters
- {:else}
- No affirmations yet
- {/if}
- |
-
- {/each}
-
-
-
-
\ No newline at end of file
diff --git a/src/lib/components/ui/FrequencyList/FrequencyList.svelte b/src/lib/components/ui/FrequencyList/FrequencyList.svelte
deleted file mode 100644
index 2aaac69..0000000
--- a/src/lib/components/ui/FrequencyList/FrequencyList.svelte
+++ /dev/null
@@ -1,176 +0,0 @@
-
-
-
-
-
-
- {#if hasActiveFilters}
-
- {/if}
-
-
- {filteredAndSorted().length} of {frequencies.length}
-
-
-
-
-
-
-
- |
-
- |
-
-
- |
-
-
- |
- |
-
-
-
- {#each filteredAndSorted() as frequency}
-
- | {frequency.name} |
- {frequency.value} Hz |
-
- {frequency._count?.affirmations ?? 0}
- |
-
-
- Edit
-
- |
-
- {:else}
-
- |
- {#if hasActiveFilters}
- No frequencies match your filters
- {:else}
- No frequencies yet
- {/if}
- |
-
- {/each}
-
-
-
-
diff --git a/src/lib/components/ui/topBar/TopBar.svelte b/src/lib/components/ui/topBar/TopBar.svelte
index 87010c3..5f04ed9 100644
--- a/src/lib/components/ui/topBar/TopBar.svelte
+++ b/src/lib/components/ui/topBar/TopBar.svelte
@@ -1,15 +1,22 @@