Files
mercadodevida/project/migrations/023_tax_rates.js
2026-08-17 22:23:10 +02:00

28 lines
888 B
JavaScript

/**
* Migration 023: Tax rates configuration.
* Stores configurable tax rates per category.
*/
exports.up = async (pgm) => {
pgm.sql(`
CREATE TABLE IF NOT EXISTS tax_rates (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(40) NOT NULL,
rate_percent NUMERIC(5,2) NOT NULL,
country VARCHAR(2) NOT NULL DEFAULT 'ES',
applies_to VARCHAR(20) NOT NULL DEFAULT 'general',
active BOOLEAN NOT NULL DEFAULT true,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
INSERT INTO tax_rates (name, rate_percent, country, applies_to, active) VALUES
('IVA General', 21.0, 'ES', 'general', true),
('IVA Reducido', 10.0, 'ES', 'reduced', true),
('IVA Superreducido', 4.0, 'ES', 'super-reduced', true)
ON CONFLICT DO NOTHING;
`);
};
exports.down = async (pgm) => {
pgm.sql('DROP TABLE IF EXISTS tax_rates');
};