-- ============================================================================ -- 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;