clinica-veterinaria/database/seeds/fase8/01-veterinaria-catalogos.sql
rckrdmrd 6e195553d2 feat: Initial commit - clinica-veterinaria
ERP especializado para clínicas veterinarias.

Estructura inicial:
- database/ (PostgreSQL DDL)
- docs/ (Documentación)
- orchestration/ (Sistema NEXUS)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 04:42:03 -06:00

147 lines
5.2 KiB
SQL

-- ============================================================================
-- SEED DATA: Catálogos de Veterinaria
-- Especialización de ERP-Clínicas
-- ============================================================================
-- NOTA: Ejecutar después de SET app.current_tenant_id = 'UUID-DEL-TENANT';
-- ============================================================================
-- Especies
INSERT INTO veterinaria.especies (tenant_id, nombre, nombre_cientifico)
SELECT current_setting('app.current_tenant_id', true)::UUID, nombre, nombre_cientifico
FROM (VALUES
('Perro', 'Canis lupus familiaris'),
('Gato', 'Felis silvestris catus'),
('Ave', NULL),
('Reptil', NULL),
('Roedor', NULL),
('Conejo', 'Oryctolagus cuniculus'),
('Pez', NULL),
('Hurón', 'Mustela putorius furo'),
('Otro', NULL)
) AS t(nombre, nombre_cientifico)
WHERE current_setting('app.current_tenant_id', true) IS NOT NULL
AND current_setting('app.current_tenant_id', true) != ''
ON CONFLICT DO NOTHING;
-- Razas de perro
INSERT INTO veterinaria.razas (tenant_id, especie_id, nombre, tamanio_promedio, peso_promedio_kg)
SELECT
current_setting('app.current_tenant_id', true)::UUID,
e.id,
r.nombre,
r.tamanio,
r.peso
FROM veterinaria.especies e
CROSS JOIN (VALUES
('Mestizo', 'mediano', 15.0),
('Chihuahua', 'pequeño', 2.5),
('Poodle', 'pequeño', 5.0),
('Bulldog Francés', 'pequeño', 12.0),
('Beagle', 'mediano', 12.0),
('Labrador Retriever', 'grande', 30.0),
('Golden Retriever', 'grande', 32.0),
('Pastor Alemán', 'grande', 35.0),
('Rottweiler', 'grande', 45.0),
('Husky Siberiano', 'grande', 25.0),
('Pug', 'pequeño', 8.0),
('Yorkshire Terrier', 'pequeño', 3.0),
('Schnauzer', 'mediano', 7.0),
('Boxer', 'grande', 30.0),
('Pitbull', 'mediano', 25.0)
) AS r(nombre, tamanio, peso)
WHERE e.nombre = 'Perro'
AND e.tenant_id = current_setting('app.current_tenant_id', true)::UUID
ON CONFLICT DO NOTHING;
-- Razas de gato
INSERT INTO veterinaria.razas (tenant_id, especie_id, nombre, tamanio_promedio, peso_promedio_kg)
SELECT
current_setting('app.current_tenant_id', true)::UUID,
e.id,
r.nombre,
r.tamanio,
r.peso
FROM veterinaria.especies e
CROSS JOIN (VALUES
('Mestizo', 'mediano', 4.0),
('Siamés', 'mediano', 4.5),
('Persa', 'mediano', 5.0),
('Maine Coon', 'grande', 8.0),
('Bengalí', 'mediano', 5.5),
('Ragdoll', 'grande', 7.0),
('British Shorthair', 'mediano', 6.0),
('Angora', 'mediano', 4.5),
('Sphynx', 'mediano', 4.0),
('Abisinio', 'mediano', 4.0)
) AS r(nombre, tamanio, peso)
WHERE e.nombre = 'Gato'
AND e.tenant_id = current_setting('app.current_tenant_id', true)::UUID
ON CONFLICT DO NOTHING;
-- Vacunas para perros
INSERT INTO veterinaria.vacunas (tenant_id, especie_id, nombre, descripcion, intervalo_refuerzo_dias, es_obligatoria)
SELECT
current_setting('app.current_tenant_id', true)::UUID,
e.id,
v.nombre,
v.descripcion,
v.intervalo,
v.obligatoria
FROM veterinaria.especies e
CROSS JOIN (VALUES
('Parvovirus', 'Protege contra parvovirus canino', 365, false),
('Moquillo', 'Protege contra distemper canino', 365, false),
('Hepatitis', 'Protege contra hepatitis infecciosa canina', 365, false),
('Rabia', 'Vacuna antirrábica - OBLIGATORIA', 365, true),
('Leptospirosis', 'Protege contra leptospirosis', 365, false),
('Bordetella', 'Protege contra tos de las perreras', 180, false),
('Cuádruple', 'Moquillo, Hepatitis, Parvo, Parainfluenza', 365, false),
('Séxtuple', 'Cuádruple + Coronavirus + Leptospira', 365, false)
) AS v(nombre, descripcion, intervalo, obligatoria)
WHERE e.nombre = 'Perro'
AND e.tenant_id = current_setting('app.current_tenant_id', true)::UUID
ON CONFLICT DO NOTHING;
-- Vacunas para gatos
INSERT INTO veterinaria.vacunas (tenant_id, especie_id, nombre, descripcion, intervalo_refuerzo_dias, es_obligatoria)
SELECT
current_setting('app.current_tenant_id', true)::UUID,
e.id,
v.nombre,
v.descripcion,
v.intervalo,
v.obligatoria
FROM veterinaria.especies e
CROSS JOIN (VALUES
('Triple Felina', 'Rinotraqueitis, Calicivirus, Panleucopenia', 365, false),
('Leucemia Felina', 'Protege contra FeLV', 365, false),
('Rabia', 'Vacuna antirrábica', 365, true),
('PIF', 'Peritonitis Infecciosa Felina', 365, false)
) AS v(nombre, descripcion, intervalo, obligatoria)
WHERE e.nombre = 'Gato'
AND e.tenant_id = current_setting('app.current_tenant_id', true)::UUID
ON CONFLICT DO NOTHING;
-- Skills específicos veterinarios
INSERT INTO hr.skills (tenant_id, skill_type_id, name, requiere_cedula)
SELECT
current_setting('app.current_tenant_id', true)::UUID,
st.id,
unnest(ARRAY[
'Medicina Veterinaria General',
'Cirugía Veterinaria',
'Dermatología Veterinaria',
'Cardiología Veterinaria',
'Oftalmología Veterinaria',
'Ortopedia Veterinaria',
'Oncología Veterinaria',
'Medicina de Exóticos',
'Anestesiología Veterinaria',
'Imagenología Veterinaria'
]),
true
FROM hr.skill_types st
WHERE st.name = 'Especialidad Médica'
AND st.tenant_id = current_setting('app.current_tenant_id', true)::UUID
ON CONFLICT DO NOTHING;