modularizado de prompts
This commit is contained in:
58
db/migrations/20260125120000_tenant_settings.sql
Normal file
58
db/migrations/20260125120000_tenant_settings.sql
Normal file
@@ -0,0 +1,58 @@
|
||||
-- migrate:up
|
||||
|
||||
-- Tabla para configuración del tenant (variables de prompts, horarios, etc.)
|
||||
CREATE TABLE tenant_settings (
|
||||
id SERIAL PRIMARY KEY,
|
||||
tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
|
||||
-- Info básica del negocio
|
||||
store_name VARCHAR(100) NOT NULL DEFAULT 'Mi Negocio',
|
||||
bot_name VARCHAR(50) NOT NULL DEFAULT 'Piaf',
|
||||
store_address TEXT,
|
||||
store_phone VARCHAR(50),
|
||||
|
||||
-- Horarios de delivery
|
||||
delivery_enabled BOOLEAN DEFAULT true,
|
||||
delivery_days VARCHAR(50) DEFAULT 'lun,mar,mie,jue,vie,sab', -- días separados por coma
|
||||
delivery_hours_start TIME DEFAULT '09:00',
|
||||
delivery_hours_end TIME DEFAULT '18:00',
|
||||
delivery_min_order DECIMAL(10,2) DEFAULT 0,
|
||||
|
||||
-- Horarios de retiro en tienda
|
||||
pickup_enabled BOOLEAN DEFAULT true,
|
||||
pickup_days VARCHAR(50) DEFAULT 'lun,mar,mie,jue,vie,sab',
|
||||
pickup_hours_start TIME DEFAULT '08:00',
|
||||
pickup_hours_end TIME DEFAULT '20:00',
|
||||
|
||||
-- Metadatos
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
|
||||
-- Solo un registro por tenant
|
||||
CONSTRAINT uq_tenant_settings UNIQUE(tenant_id)
|
||||
);
|
||||
|
||||
-- Trigger para actualizar updated_at
|
||||
CREATE OR REPLACE FUNCTION update_tenant_settings_timestamp()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.updated_at := NOW();
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER tenant_settings_updated_trigger
|
||||
BEFORE UPDATE ON tenant_settings
|
||||
FOR EACH ROW EXECUTE FUNCTION update_tenant_settings_timestamp();
|
||||
|
||||
-- Crear registro default para tenants existentes
|
||||
INSERT INTO tenant_settings (tenant_id, store_name, bot_name)
|
||||
SELECT id, 'Mi Carnicería', 'Piaf'
|
||||
FROM tenants
|
||||
ON CONFLICT (tenant_id) DO NOTHING;
|
||||
|
||||
-- migrate:down
|
||||
|
||||
DROP TRIGGER IF EXISTS tenant_settings_updated_trigger ON tenant_settings;
|
||||
DROP FUNCTION IF EXISTS update_tenant_settings_timestamp();
|
||||
DROP TABLE IF EXISTS tenant_settings;
|
||||
Reference in New Issue
Block a user