'use strict' const { execute, queryOne, query } = require('../database/postgres') class Promotion { static findAllActive(tenantId) { if (tenantId) return query('SELECT * FROM promotions WHERE ativo = TRUE AND tenant_id=$1 ORDER BY data_criacao DESC', [tenantId]) return query('SELECT * FROM promotions WHERE ativo = TRUE ORDER BY data_criacao DESC') } static findAll(tenantId) { if (tenantId) return query('SELECT * FROM promotions WHERE tenant_id=$1 ORDER BY data_criacao DESC', [tenantId]) return query('SELECT * FROM promotions ORDER BY data_criacao DESC') } static findById(id) { return queryOne('SELECT * FROM promotions WHERE id = $1', [id]) } static create({ nome, descricao, preco_original, preco_promocional, imagem, tenant_id }) { return execute( `INSERT INTO promotions (nome, descricao, preco_original, preco_promocional, imagem, tenant_id, ativo) VALUES ($1, $2, $3, $4, $5, $6, TRUE) RETURNING id`, [nome, descricao || null, preco_original || null, preco_promocional, imagem || '', tenant_id || 1] ) } static update(id, { nome, descricao, preco_original, preco_promocional, imagem, ativo }) { return execute( `UPDATE promotions SET nome=$1, descricao=$2, preco_original=$3, preco_promocional=$4, imagem=$5, ativo=$6 WHERE id=$7`, [nome, descricao || null, preco_original || null, preco_promocional, imagem || '', ativo !== false, id] ) } static deleteById(id) { return execute('DELETE FROM promotions WHERE id = $1', [id]) } } module.exports = Promotion