""" Seed default color palettes Usage: python scripts/seed_palettes.py """ import sys from pathlib import Path backend_dir = Path(__file__).resolve().parent.parent sys.path.insert(0, str(backend_dir)) from app.config.database import SessionLocal from app.models.theme.color_palette_model import ColorPalette # 1. Default Palette (Dark Navy Sidebar) DEFAULT_PALETTE = { "name": "Default Navy", "description": "The default theme with navy blue sidebar", "is_default": True, "colors": { "primary": "#3B82F6", "primary_hover": "#2563EB", "sidebar_bg": "#1D2A4B", "sidebar_text": "#F1F5F9", "sidebar_text_muted": "#94A3B8", "sidebar_active_bg": "#0077FF", "sidebar_active_text": "#FFFFFF", "sidebar_hover_bg": "rgba(255,255,255,0.2)", "sidebar_border": "#334155", "header_bg": "#FFFFFF", "header_text": "#1F2937", "header_border": "#E5E7EB", "background": "#F9FAFB", "background_secondary": "#FFFFFF", "text_primary": "#1F2937", "text_secondary": "#6B7280", "card_bg": "#FFFFFF", "card_border": "#E2E8F0", "table_header_bg": "#F8FAFC", "table_row_hover": "#F1F5F9", "table_border": "#E2E8F0" } } # 2. Light Palette LIGHT_PALETTE = { "name": "Clean White", "description": "Minimalist white theme", "is_default": False, "colors": { "primary": "#2563EB", "primary_hover": "#1D4ED8", "sidebar_bg": "#FFFFFF", "sidebar_text": "#374151", "sidebar_text_muted": "#6B7280", "sidebar_active_bg": "#EFF6FF", "sidebar_active_text": "#2563EB", "sidebar_hover_bg": "#F3F4F6", "sidebar_border": "#E5E7EB", "header_bg": "#FFFFFF", "header_text": "#1F2937", "header_border": "#E5E7EB", "background": "#FFFFFF", "background_secondary": "#F9FAFB", "text_primary": "#111827", "text_secondary": "#6B7280", "card_bg": "#FFFFFF", "card_border": "#E5E7EB", "table_header_bg": "#F9FAFB", "table_row_hover": "#F3F4F6", "table_border": "#E5E7EB" } } # 3. Dark Palette DARK_PALETTE = { "name": "Dark Mode", "description": "Dark theme for low light environments", "is_default": False, "colors": { "primary": "#60A5FA", "primary_hover": "#3B82F6", "sidebar_bg": "#111827", "sidebar_text": "#E5E7EB", "sidebar_text_muted": "#9CA3AF", "sidebar_active_bg": "#3B82F6", "sidebar_active_text": "#FFFFFF", "sidebar_hover_bg": "rgba(255,255,255,0.1)", "sidebar_border": "#374151", "header_bg": "#1F2937", "header_text": "#F9FAFB", "header_border": "#374151", "background": "#111827", "background_secondary": "#1F2937", "text_primary": "#F9FAFB", "text_secondary": "#9CA3AF", "card_bg": "#1F2937", "card_border": "#374151", "table_header_bg": "#111827", "table_row_hover": "#374151", "table_border": "#374151" } } def seed_palettes(): db = SessionLocal() try: palettes = [DEFAULT_PALETTE, LIGHT_PALETTE, DARK_PALETTE] for p_data in palettes: existing = db.query(ColorPalette).filter(ColorPalette.name == p_data["name"]).first() if not existing: palette = ColorPalette( name=p_data["name"], description=p_data["description"], is_default=p_data["is_default"], colors=p_data["colors"], ) db.add(palette) print(f"Creating palette: {p_data['name']}") else: print(f"Palette already exists: {p_data['name']}") existing.colors = p_data["colors"] existing.is_default = p_data["is_default"] db.commit() print("Done seeding palettes.") except Exception as e: print(f"Error seeding palettes: {e}") db.rollback() finally: db.close() if __name__ == "__main__": seed_palettes()