43 lines
1.5 KiB
JavaScript
43 lines
1.5 KiB
JavaScript
'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
|