80 lines
2.7 KiB
JavaScript
80 lines
2.7 KiB
JavaScript
'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' })
|
|
}
|
|
},
|
|
}
|