'use strict' const PedidoRecorrente = require('../models/PedidoRecorrente') const Cotacao = require('../models/Cotacao') const Produto = require('../models/Produto') const TENANT_ID = parseInt(process.env.TENANT_ID || '1', 10) module.exports = { /** GET /api/recorrentes — lista do usuário logado */ async list(req, res) { try { const rows = await PedidoRecorrente.listByUser(req.user.id, TENANT_ID) res.json(rows) } catch (e) { console.error('[recorrente.list]', e.message) res.status(500).json({ error: 'Erro ao listar pedidos recorrentes' }) } }, /** POST /api/recorrentes */ async create(req, res) { try { const { nome, itens, frequencia, proximo_em, cliente_id } = req.body if (!itens?.length) return res.status(400).json({ error: 'Informe ao menos um item' }) if (!proximo_em) return res.status(400).json({ error: 'Informe a data do primeiro pedido' }) const rec = await PedidoRecorrente.create({ tenant_id: TENANT_ID, user_id: req.user.id, cliente_id: cliente_id || null, nome: nome || 'Pedido Recorrente', itens, frequencia: frequencia || 'mensal', proximo_em, }) res.status(201).json(rec) } catch (e) { console.error('[recorrente.create]', e.message) res.status(500).json({ error: 'Erro ao criar pedido recorrente' }) } }, /** PUT /api/recorrentes/:id */ async update(req, res) { try { const { nome, itens, frequencia, proximo_em, pausado } = req.body await PedidoRecorrente.update(req.params.id, req.user.id, { nome, itens, frequencia, proximo_em, pausado }) res.json({ ok: true }) } catch (e) { console.error('[recorrente.update]', e.message) res.status(500).json({ error: 'Erro ao atualizar pedido recorrente' }) } }, /** PATCH /api/recorrentes/:id/pausa */ async togglePausa(req, res) { try { const rec = await PedidoRecorrente.findById(req.params.id, req.user.id) if (!rec) return res.status(404).json({ error: 'Não encontrado' }) await PedidoRecorrente.togglePausa(req.params.id, req.user.id, !rec.pausado) res.json({ pausado: !rec.pausado }) } catch (e) { console.error('[recorrente.togglePausa]', e.message) res.status(500).json({ error: 'Erro ao pausar/retomar' }) } }, /** DELETE /api/recorrentes/:id */ async remove(req, res) { try { await PedidoRecorrente.remove(req.params.id, req.user.id) res.json({ ok: true }) } catch (e) { console.error('[recorrente.remove]', e.message) res.status(500).json({ error: 'Erro ao remover pedido recorrente' }) } }, }