# Elit Gold/Silver Exchange / ELIT Trade

This repository is the Elit Gold/Silver Exchange / ELIT Trade bullion e-commerce project. Ignore unrelated old memory about Cuval, corporate websites, carpet apps, courier apps, SaaS dashboards, and previous projects.

Before major work, read `PROJECT_BRIEF.md`, `STATUS.md`, `TASKS.md`, `DESIGN_REFERENCES.md`, `CLIENT_REQUIREMENTS.md`, and `QA_CHECKLIST.md`.

## Tech Stack

- Next.js 14 App Router
- TypeScript
- Tailwind CSS
- Prisma with SQLite for local development
- bcrypt admin auth with an HTTP-only admin session cookie

## Run Commands

- Install: `npm install`
- Dev: `npm run dev`
- Build: `npm run build`
- Lint: `npm run lint`
- Typecheck: `npm run typecheck`
- Prisma generate: `npm run prisma:generate`
- Prisma migrate: `npm run prisma:migrate`
- Seed: `npm run prisma:seed`

On Windows PowerShell, use `npm.cmd` if script execution policy blocks `npm.ps1`.

## Public Copy Rules

Public storefront copy must sound like a real bullion e-commerce business. Do not show developer/internal wording such as MVP, mock, provider placeholder, placeholder provider, admin records, admin-updated, internal supplier, Prisma, seed, local development, test mode, or demo implementation.

Allowed public phrases include: "Price updated", "Price updated by our team", "Secure checkout", "Payment options available", "Fulfillment coordination", "Orders are reviewed by our fulfillment team", "Prices may change without notice", and "This website does not provide trading or investment advice".

## Product And Service Separation

Physical bullion products use `itemKind = PHYSICAL_BULLION`. Service/support items use `SERVICE`. Digital request items use `DIGITAL_REQUEST`.

Default product grids, `/products`, `/gold`, `/silver`, product detail pages, and homepage Featured/Gold/Silver sections must show physical bullion only. Services belong on service pages, secondary homepage service sections, and admin/service workflows.

## Admin/Public Layout Separation

Public pages use the storefront header, market strip, mega menu, and footer. `/admin/login` must use a clean auth layout without public storefront chrome. Authenticated admin pages use only the admin sidebar/topbar pattern.

## Payment Rules

The architecture should remain Stripe/PayPal/Square-ready through provider abstractions. Public UI may say Card Payment, PayPal, Square, Secure checkout, and Payment options available. Public UI must not say mock provider or placeholder provider.

## Design Rules

The storefront should feel like a real bullion e-commerce store: light background, warm off-white sections, light gray borders, dark readable text, gold accents, dense commerce header, prominent search, market reference strip, mega menu, product filters, product cards, specs tables, trust badges, and mobile responsive layouts.

Do not make it look like a crypto app, dark cinematic landing page, luxury jewelry landing page, abstract startup site, generic SaaS dashboard, or investment fund website.

## Do Not Rules

- No live spot price API.
- No scraping.
- No automatic pricing engine.
- No trading platform features.
- No investment advice.
- No real KYC provider integration in this MVP-stage app.
- No public supplier/internal cost display.
- No localhost hardcoded redirects.

## Definition Of Done

The app loads key public routes, `/admin` redirects unauthenticated users to `/admin/login` using relative/preview-safe redirects, `/checkout` handles empty carts safely, product grids exclude services, public copy is clean, admin/public layouts are separated, and lint/typecheck/build pass or remaining issues are documented in `STATUS.md`.
