42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
'use strict'
|
|
|
|
const { execute, queryOne, query } = require('../database/postgres')
|
|
|
|
class Order {
|
|
static async create({ id, customer_id, user_cpf, total_amount, payment_method, asaas_payment_id, qr_code_url, pix_copy_paste }) {
|
|
return execute(
|
|
`INSERT INTO orders (id, customer_id, user_cpf, total_amount, status, payment_method, asaas_payment_id, qr_code_url, pix_copy_paste)
|
|
VALUES ($1, $2, $3, $4, 'pending', $5, $6, $7, $8) RETURNING id`,
|
|
[id, customer_id || null, user_cpf, total_amount, payment_method || 'PIX', asaas_payment_id || null, qr_code_url || null, pix_copy_paste || null]
|
|
)
|
|
}
|
|
|
|
static async updateAsaasPayment(id, asaas_payment_id, qr_code_url, pix_copy_paste) {
|
|
return execute(
|
|
`UPDATE orders SET asaas_payment_id=$1, qr_code_url=$2, pix_copy_paste=$3 WHERE id=$4`,
|
|
[asaas_payment_id, qr_code_url, pix_copy_paste, id]
|
|
)
|
|
}
|
|
|
|
static findByAsaasId(asaas_payment_id) {
|
|
return queryOne('SELECT * FROM orders WHERE asaas_payment_id = $1', [asaas_payment_id])
|
|
}
|
|
|
|
static findById(id) {
|
|
return queryOne('SELECT * FROM orders WHERE id = $1', [id])
|
|
}
|
|
|
|
static async updateStatus(id, newStatus) {
|
|
return execute(
|
|
`UPDATE orders SET status = $1, updated_at = NOW() WHERE id = $2`,
|
|
[newStatus, id]
|
|
)
|
|
}
|
|
|
|
static async delete(id) {
|
|
return execute(`DELETE FROM orders WHERE id = $1`, [id])
|
|
}
|
|
}
|
|
|
|
module.exports = Order
|