28 lines
888 B
JavaScript
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');
|
|
};
|