-- Seed task templates for MyCrib -- Run with: ./dev.sh seed (after running 001_lookups.sql) -- -- Category IDs (from 001_lookups.sql): -- 1 = Appliances, 2 = Cleaning, 3 = Electrical, 4 = Exterior -- 5 = General, 6 = HVAC, 7 = Interior, 8 = Pest Control, 9 = Plumbing, 10 = Safety -- -- Frequency IDs (from 001_lookups.sql): -- 1 = Once, 2 = Daily, 3 = Weekly, 4 = Bi-Weekly, 5 = Monthly -- 6 = Quarterly, 7 = Semi-Annually, 8 = Annually -- Task Templates from adam_task list INSERT INTO task_tasktemplate (id, created_at, updated_at, title, description, category_id, frequency_id, icon_ios, icon_android, tags, display_order, is_active) VALUES -- PLUMBING (category_id = 9) (1, NOW(), NOW(), 'Check/Replace Water Heater Anode Rod', 'Inspect anode rod for corrosion and replace if more than 50% depleted', 9, 8, 'wrench.and.screwdriver.fill', 'Build', 'water heater,anode,corrosion,tank', 1, true), (2, NOW(), NOW(), 'Test Interior Water Shutoffs', 'Turn each shutoff valve to ensure it works properly', 9, 8, 'spigot.fill', 'Water', 'shutoff,valve,water,emergency', 2, true), (3, NOW(), NOW(), 'Test Gas Shutoffs', 'Verify gas shutoff valves operate correctly', 9, 8, 'flame.fill', 'LocalGasStation', 'gas,shutoff,valve,safety', 3, true), (4, NOW(), NOW(), 'Test Water Meter Shutoff', 'Ensure main water shutoff at meter is functional', 9, 8, 'gauge.with.dots.needle.33percent', 'Speed', 'meter,shutoff,main,emergency', 4, true), (5, NOW(), NOW(), 'Check Water Meter for Leaks', 'Turn off all water and check if meter is still moving', 9, 5, 'drop.triangle.fill', 'WaterDrop', 'leak,meter,water,detection', 5, true), (6, NOW(), NOW(), 'Run Drain Cleaner', 'Use enzyme-based drain cleaner to prevent clogs', 9, 5, 'arrow.down.to.line.circle.fill', 'VerticalAlignBottom', 'drain,clog,cleaner,pipes', 6, true), (7, NOW(), NOW(), 'Test Water Heater Pressure Relief Valve', 'Lift lever to release some water and ensure valve works', 9, 8, 'bolt.horizontal.fill', 'Compress', 'water heater,pressure,safety,valve', 7, true), (8, NOW(), NOW(), 'Replace Water Filters', 'Replace whole-house or point-of-use water filters', 9, 6, 'drop.fill', 'Water', 'filter,water,replacement,drinking', 8, true), (9, NOW(), NOW(), 'Flush Water Heater', 'Drain sediment from bottom of tank', 9, 6, 'drop.degreesign.fill', 'WaterDamage', 'water heater,sediment,flush,maintenance', 9, true), (10, NOW(), NOW(), 'Inspect for Leaks', 'Check under sinks and around toilets for water damage', 9, 5, 'exclamationmark.triangle.fill', 'Warning', 'leak,inspection,water damage,plumbing', 10, true), (11, NOW(), NOW(), 'Inspect Caulking', 'Check bathroom and kitchen caulk for cracks or mold', 9, 5, 'seal.fill', 'LineWeight', 'caulk,bathroom,kitchen,seal', 11, true), (12, NOW(), NOW(), 'Septic Tank Inspection', 'Have septic system inspected and pumped if needed', 9, 8, 'arrow.down.to.line.circle.fill', 'VerticalAlignBottom', 'septic,tank,pump,inspection', 12, true), (13, NOW(), NOW(), 'Winterize Outdoor Faucets', 'Shut off water supply and drain lines before freeze', 9, 8, 'snowflake', 'AcUnit', 'winterize,faucet,freeze,outdoor', 13, true), (14, NOW(), NOW(), 'Replace Fridge Water Line', 'Replace refrigerator water supply hose', 9, 8, 'refrigerator.fill', 'Kitchen', 'refrigerator,hose,water line,replacement', 14, true), (15, NOW(), NOW(), 'Replace Laundry Hoses', 'Replace washing machine supply hoses to prevent flooding', 9, 8, 'washer.fill', 'LocalLaundryService', 'laundry,hoses,washing machine,flood prevention', 15, true), (16, NOW(), NOW(), 'Test Water Sensors', 'Test water leak sensors and replace batteries', 9, 6, 'sensor.tag.radiowaves.forward.fill', 'Sensors', 'water sensor,leak detection,battery,test', 16, true), -- SAFETY (category_id = 10) (17, NOW(), NOW(), 'Test Smoke and Carbon Monoxide Detectors', 'Press test button on each detector and verify alarm sounds', 10, 5, 'smoke.fill', 'Sensors', 'smoke,carbon monoxide,detector,safety,fire', 17, true), (18, NOW(), NOW(), 'Check Fire Extinguishers', 'Check pressure gauge and ensure accessibility', 10, 6, 'flame.fill', 'LocalFireDepartment', 'fire,extinguisher,safety,inspection', 18, true), (19, NOW(), NOW(), 'Replace Smoke and CO Detector Batteries', 'Replace batteries in all smoke and CO detectors', 10, 7, 'battery.100', 'Battery5Bar', 'battery,smoke,detector,safety', 19, true), (20, NOW(), NOW(), 'Replace Smoke and CO Detectors', 'Replace detectors every 10 years or as recommended', 10, 8, 'smoke.fill', 'Sensors', 'smoke,carbon monoxide,replacement,safety', 20, true), (21, NOW(), NOW(), 'Test GFCI Outlets', 'Press test/reset buttons on all GFCI outlets', 10, 5, 'poweroutlet.type.b', 'ElectricalServices', 'gfci,outlet,safety,electrical', 21, true), (22, NOW(), NOW(), 'Schedule Chimney Cleaning', 'Professional chimney inspection and cleaning before heating season', 10, 8, 'flame.fill', 'Fireplace', 'chimney,fireplace,cleaning,inspection', 22, true), (23, NOW(), NOW(), 'Termite Inspection', 'Professional inspection for wood-destroying insects', 10, 8, 'ant.fill', 'BugReport', 'termite,pest,inspection,wood damage', 23, true), (24, NOW(), NOW(), 'Pest Control Treatment', 'Inspect for signs of pests; treat or call professional', 10, 6, 'ant.fill', 'BugReport', 'pest,control,inspection,treatment', 24, true), (25, NOW(), NOW(), 'Check/Charge Security Cameras', 'Ensure wireless cameras are functioning and charged', 10, 3, 'video.fill', 'Videocam', 'security,camera,battery,charge', 25, true), -- HVAC (category_id = 6) (26, NOW(), NOW(), 'Change HVAC Filters', 'Replace air conditioning/furnace filters for efficiency', 6, 5, 'air.purifier', 'Air', 'hvac,filter,air,replacement', 26, true), (27, NOW(), NOW(), 'Flush HVAC Drain Lines', 'Clear condensate drain line to prevent clogs and water damage', 6, 6, 'drop.degreesign.fill', 'WaterDamage', 'hvac,condensate,drain,clog', 27, true), (28, NOW(), NOW(), 'Clean Return Vents', 'Remove dust and debris from return air vents', 6, 6, 'wind', 'AirPurifier', 'vent,return,dust,cleaning', 28, true), (29, NOW(), NOW(), 'Clean Floor Registers', 'Remove and clean floor heating/cooling registers', 6, 6, 'rectangle.grid.1x2.fill', 'GridOn', 'register,floor,vent,cleaning', 29, true), (30, NOW(), NOW(), 'Clean HVAC Compressor Coils', 'Clean outdoor AC unit condenser coils', 6, 8, 'fan', 'WindPower', 'ac,condenser,coils,outdoor,cleaning', 30, true), (31, NOW(), NOW(), 'Schedule HVAC Inspection and Service', 'Professional maintenance for heating and cooling system', 6, 7, 'wrench.and.screwdriver', 'Build', 'hvac,service,maintenance,professional', 31, true), -- APPLIANCES (category_id = 1) (32, NOW(), NOW(), 'Clean Microwave', 'Clean interior and exterior of microwave', 1, 5, 'microwave.fill', 'Microwave', 'microwave,cleaning,appliance', 32, true), (33, NOW(), NOW(), 'Clean Toaster', 'Empty crumb tray and clean toaster interior', 1, 5, 'rectangle.fill', 'BreakfastDining', 'toaster,cleaning,crumbs,appliance', 33, true), (34, NOW(), NOW(), 'Clean Garbage Disposal', 'Run ice cubes and lemon peels to clean and deodorize', 1, 5, 'trash.fill', 'Delete', 'garbage disposal,cleaning,deodorize', 34, true), (35, NOW(), NOW(), 'Clean Oven', 'Run self-clean cycle or manually clean oven interior', 1, 6, 'oven.fill', 'Microwave', 'oven,cleaning,grease', 35, true), (36, NOW(), NOW(), 'Clean Refrigerator Coils', 'Vacuum dust from condenser coils for efficiency', 1, 6, 'refrigerator.fill', 'Kitchen', 'refrigerator,coils,cleaning,efficiency', 36, true), (37, NOW(), NOW(), 'Clean Dishwasher Filter', 'Remove and clean the dishwasher food trap/filter', 1, 5, 'dishwasher.fill', 'LocalLaundryService', 'dishwasher,filter,cleaning', 37, true), (38, NOW(), NOW(), 'Clean Vent Hood Filters', 'Soak and scrub range hood filters to remove grease', 1, 5, 'stove.fill', 'Microwave', 'range hood,filter,grease,cleaning', 38, true), (39, NOW(), NOW(), 'Clean Dryer Vent', 'Remove lint buildup from dryer vent and ductwork to prevent fires', 1, 7, 'dryer.fill', 'LocalLaundryService', 'dryer,vent,lint,fire hazard', 39, true), -- CLEANING (category_id = 2) (40, NOW(), NOW(), 'Wipe Kitchen Counters', 'Clean countertops and stovetop after cooking', 2, 2, 'sparkles', 'CleaningServices', 'kitchen,counters,stovetop,cleaning', 40, true), (41, NOW(), NOW(), 'Take Out Trash', 'Empty full trash cans to prevent odors and pests', 2, 2, 'trash.fill', 'Delete', 'trash,garbage,disposal', 41, true), (42, NOW(), NOW(), 'Vacuum Floors', 'Vacuum all carpets and rugs, especially high-traffic areas', 2, 3, 'rectangle.and.hand.point.up.left.fill', 'Carpet', 'vacuum,floors,carpet,cleaning', 42, true), (43, NOW(), NOW(), 'Mop Hard Floors', 'Mop tile, hardwood, and laminate floors', 2, 3, 'square.grid.3x3.fill', 'CleaningServices', 'mop,floors,tile,hardwood', 43, true), (44, NOW(), NOW(), 'Clean Bathrooms', 'Scrub toilets, sinks, showers, and mirrors', 2, 3, 'shower.fill', 'Bathroom', 'bathroom,toilet,shower,cleaning', 44, true), (45, NOW(), NOW(), 'Change Bed Linens', 'Wash and replace sheets, pillowcases, and mattress covers', 2, 3, 'bed.double.fill', 'Bed', 'bed,linens,sheets,laundry', 45, true), (46, NOW(), NOW(), 'Do Laundry', 'Wash, dry, fold, and put away clothes', 2, 3, 'washer.fill', 'LocalLaundryService', 'laundry,clothes,washing', 46, true), (47, NOW(), NOW(), 'Clean Kitchen Appliances', 'Wipe down microwave, dishwasher exterior, coffee maker', 2, 3, 'refrigerator.fill', 'Kitchen', 'kitchen,appliances,cleaning,exterior', 47, true), (48, NOW(), NOW(), 'Dust Surfaces', 'Dust furniture, shelves, and decorations', 2, 3, 'sparkles', 'CleaningServices', 'dust,furniture,shelves,cleaning', 48, true), (49, NOW(), NOW(), 'Clean Out Refrigerator', 'Discard expired food and wipe down shelves', 2, 3, 'refrigerator.fill', 'Kitchen', 'refrigerator,cleaning,expired food', 49, true), (50, NOW(), NOW(), 'Clean Vacuum', 'Empty canister, clean filters, and check for clogs', 2, 5, 'rectangle.and.hand.point.up.left.fill', 'Carpet', 'vacuum,maintenance,filter,cleaning', 50, true), (51, NOW(), NOW(), 'Clean Bathroom Exhaust Fans', 'Remove covers and clean dust from exhaust fans', 2, 6, 'fan.fill', 'WindPower', 'bathroom,exhaust,fan,cleaning', 51, true), (52, NOW(), NOW(), 'Vacuum Under Furniture', 'Move furniture to vacuum underneath, especially beds', 2, 5, 'rectangle.and.hand.point.up.left.fill', 'Carpet', 'vacuum,furniture,deep clean', 52, true), (53, NOW(), NOW(), 'Clean Inside Trash Cans', 'Wash and disinfect garbage and recycling bins', 2, 5, 'trash.fill', 'Delete', 'trash can,cleaning,disinfect', 53, true), (54, NOW(), NOW(), 'Clean Window Tracks', 'Remove dirt and debris from window and door tracks', 2, 6, 'window.horizontal', 'Window', 'window,tracks,cleaning,debris', 54, true), (55, NOW(), NOW(), 'Deep Clean Carpets', 'Professional carpet cleaning or DIY steam clean', 2, 7, 'rectangle.and.hand.point.up.left.fill', 'Carpet', 'carpet,deep clean,steam,professional', 55, true), (56, NOW(), NOW(), 'Clean and Reverse Ceiling Fans', 'Clean fan blades and reverse direction for season', 2, 7, 'fanblades.fill', 'WindPower', 'ceiling fan,cleaning,seasonal,direction', 56, true), -- EXTERIOR (category_id = 4) (57, NOW(), NOW(), 'Clean Gutters', 'Remove leaves and debris; check for proper drainage', 4, 7, 'house.fill', 'Roofing', 'gutter,cleaning,leaves,debris', 57, true), (58, NOW(), NOW(), 'Wash Windows', 'Clean interior and exterior glass and screens', 4, 7, 'window.horizontal', 'Window', 'window,cleaning,glass,screens', 58, true), (59, NOW(), NOW(), 'Inspect Roof', 'Look for missing shingles, damage, or debris', 4, 7, 'house.circle.fill', 'Roofing', 'roof,shingles,inspection,damage', 59, true), (60, NOW(), NOW(), 'Service Garage Door', 'Lubricate springs, hinges, and rollers', 4, 8, 'door.garage.closed', 'Garage', 'garage door,lubricate,maintenance', 60, true), (61, NOW(), NOW(), 'Inspect Weather Stripping', 'Check doors and windows; replace worn seals', 4, 8, 'wind', 'Air', 'weather stripping,door,window,insulation', 61, true), (62, NOW(), NOW(), 'Pressure Wash Exterior', 'Clean siding, driveway, sidewalks, and deck', 4, 8, 'water.waves', 'CleaningServices', 'power wash,siding,driveway,cleaning', 62, true), (63, NOW(), NOW(), 'Touch Up Exterior Paint', 'Address peeling or cracking paint to prevent moisture damage', 4, 8, 'paintbrush.fill', 'FormatPaint', 'paint,exterior,touch up,maintenance', 63, true), (64, NOW(), NOW(), 'Service Sprinkler System', 'Inspect heads, adjust coverage, winterize if needed', 4, 8, 'sprinkler.and.droplets.fill', 'Grass', 'sprinkler,irrigation,winterize,lawn', 64, true), (65, NOW(), NOW(), 'Weed Garden Beds', 'Remove weeds and prune plants as needed', 4, 5, 'leaf.fill', 'Grass', 'garden,weeds,pruning,landscaping', 65, true), (66, NOW(), NOW(), 'Water Indoor Plants', 'Check soil moisture and water as needed', 4, 3, 'leaf.fill', 'Eco', 'plants,watering,indoor,gardening', 66, true) ON CONFLICT (id) DO UPDATE SET title = EXCLUDED.title, description = EXCLUDED.description, category_id = EXCLUDED.category_id, frequency_id = EXCLUDED.frequency_id, icon_ios = EXCLUDED.icon_ios, icon_android = EXCLUDED.icon_android, tags = EXCLUDED.tags, display_order = EXCLUDED.display_order, is_active = EXCLUDED.is_active, updated_at = NOW(); -- Reset sequence SELECT setval('task_tasktemplate_id_seq', (SELECT COALESCE(MAX(id), 0) + 1 FROM task_tasktemplate), false);