# Fluminense de Feira — Plataforma digital

Site + CMS para conversão (sócio torcedor), engajamento (notícias), patrocinadores e gestão de conteúdo.

## Stack

- **Next.js** (App Router) · **Tailwind CSS** · **Framer Motion**
- **PostgreSQL** · **Prisma**
- Autenticação admin via JWT (cookie httpOnly)

## Requisitos

- **Node.js 20+** (recomendado; Next 16 exige >= 20.9)
- Docker (opcional) para PostgreSQL

## Setup rápido

```bash
cp .env.example .env
# Edite AUTH_SECRET (string longa aleatória)

docker compose up -d
npm install
npx prisma db push
npm run db:seed
npm run dev
```

- Site: [http://localhost:3000](http://localhost:3000)
- Admin: [http://localhost:3000/admin/login](http://localhost:3000/admin/login)

**Credenciais padrão (altere em produção):**

- E-mail: `admin@fluminensedefeira.com.br`
- Senha: `admin123`

## Produção

1. Defina `DATABASE_URL`, `AUTH_SECRET` e `NEXT_PUBLIC_SITE_URL`.
2. Hospede arquivos em disco persistente para `public/uploads` ou migre uploads para S3/R2.
3. `npm run build` && `npm start`
4. Troque a senha do admin no banco (hash bcrypt) ou crie novo usuário.

## Estrutura

| Rota | Descrição |
|------|-----------|
| `/` | Home (hero, jogo, notícias, sócio, parceiros) |
| `/socio-torcedor` → `/cadastro` → `/obrigado` | Funil sócio |
| `/parceiros` | Landing patrocínio + formulário + media kit |
| `/noticias` | Lista + sidebar (slots patrocínio) |
| `/documentos` | PDFs/documentos oficiais |
| `/admin/*` | CMS: notícias, documentos, patrocinadores, jogos, galeria, textos, leads |

### Slots de patrocínio

- **HERO** — topo da home
- **SIDEBAR** — coluna em notícias
- **GRID** — grade na home
- **NATIVE** — bloco dentro do artigo

Substitua `public/media-kit.pdf` pelo media kit real da marca.
