← Voltar ao índice
⌚ WatchCore
Plataforma social para colecionadores de relógios — catálogo pessoal, feed social, comunidades, diário de uso, trocas e marketplace integrado.
Next.js 14
Prisma
PostgreSQL
JWT (jose)
Tailwind CSS
PWA
Especificação do Produto
Plataforma social completa para colecionadores de relógios — combina catálogo pessoal inteligente, rede social, comunidades temáticas, diário de uso, manutenção e marketplace de trocas.
Colecionadores de relógios, entusiastas de horology, traders de peças
Systemd user service watchcore.service — Caddy → 172.18.0.1:3040
- Fase 1 — Auth + onboarding (JWT jose, registro/login)
- Fase 2 — Perfil + privacidade (avatar, bio, configurações)
- Fase 3 — Catálogo de relógios (browse, filtros, detalhe)
- Fase 4 — Coleção pessoal (add, detalhe, remover) + wishlist
- Fase 5 — Feed social (posts, likes, comentários, follow/unfollow)
- Fase 6 — Discover (sugestões de usuários e relógios) + dashboard
- Fase 7 — Identificação por descrição (stub p/ visão IA) + estimativa de preço heurística; Comunidades públicas/privadas (roles MEMBER/MOD/OWNER); Diário de uso + registros de manutenção (12 tipos)
- Fase 8 — Propostas de troca/venda (SENT→ACCEPTED/REJECTED/COMPLETED) + chat 1:1 + avaliações pós-troca (1–5★); Painel admin (métricas, gestão de usuários, AuditLog)
User, Watch, UserWatch (coleção), WishlistItem, Post, Comment, Like, Follow, Community, CommunityMember, WatchUsageLog, MaintenanceRecord, TradeProposal, TradeMessage, TradeReview, AuditLog
Endpoints principais da API
Autenticação — /api/auth
POST/api/auth/register
Registra novo usuário. Body: { name, email, password }. Retorna JWT.
POST/api/auth/login
Login com email/senha. Retorna JWT assinado com jose.
POST/api/auth/logout
Invalida sessão (cookie HttpOnly).
Catálogo — /api/watches
GET/api/watches
Lista relógios do catálogo global com filtros por marca, modelo e faixa de preço.
GET/api/watches/:id
Detalhe do relógio com estimativa de preço heurística e colecionadores que possuem.
POST/api/watches/identify
Identifica relógio por descrição textual (stub — integração com visão IA prevista).
Coleção — /api/collection
GET/api/collection
Requer JWT
Lista relógios da coleção do usuário autenticado.
POST/api/collection
Requer JWT
Adiciona relógio à coleção. Body: { watch_id, purchase_price, purchase_date, condition }
DELETE/api/collection/:id
Requer JWT
Remove relógio da coleção.
Feed Social — /api/feed
GET/api/feed
Requer JWT
Feed personalizado de posts de usuários seguidos.
POST/api/posts
Requer JWT
Cria post. Body: { content, watch_id?, image_url? }
POST/api/posts/:id/like
Requer JWT
Toggle like em post.
POST/api/posts/:id/comments
Requer JWT
Comenta em post. Body: { content }
Comunidades — /api/communities
GET/api/communities
Lista comunidades públicas disponíveis.
POST/api/communities
Requer JWT
Cria comunidade. Body: { name, description, is_private }
POST/api/communities/:id/join
Requer JWT
Entra em comunidade pública (role MEMBER).
Diário & Manutenção — /api/usage / /api/maintenance
POST/api/usage
Requer JWT
Registra uso diário de relógio. Body: { user_watch_id, date, notes }
POST/api/maintenance
Requer JWT
Registra manutenção. Body: { user_watch_id, type, date, cost, notes }. 12 tipos disponíveis (revisão, troca de pulseira, polimento, etc.).
Trocas/Marketplace — /api/trades
POST/api/trades
Requer JWT
Cria proposta de troca/venda. Body: { target_user_id, offered_watch_id, requested_watch_id?, price? }
PATCH/api/trades/:id/accept
Requer JWT
Aceita proposta (SENT → ACCEPTED).
POST/api/trades/:id/messages
Requer JWT
Envia mensagem no chat 1:1 da proposta.
POST/api/trades/:id/review
Requer JWT
Avaliação pós-troca (1–5★). Body: { rating, comment }
Admin — /api/admin
GET/api/admin/metrics
Requer JWT (admin)
Métricas gerais: usuários, relógios, posts, trocas, comunidades.
GET/api/admin/users
Requer JWT (admin)
Gestão de usuários com paginação e filtros.
GET/api/admin/audit-log
Requer JWT (admin)
AuditLog de ações administrativas e moderação.
Saúde
GET/api/health
Healthcheck. Retorna status do servidor e conexão com banco.
Arquitetura de Deploy
watchcore.service (systemd user)
└─ Next.js 14 (porta 3040)
↑
Caddy Reverse Proxy → 172.18.0.1:3040
↑
watchcore.blackcatcorp.com.br (HTTPS — Cloudflare + Let's Encrypt)
Gerado automaticamente — BlackCat Corp • Voltar ao índice