Files
mercado.clube67.com/backend/models/Promotion.js
T

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