// config/graphConfig.ts

import { GraphConfig } from "../graphTypes/graphTypes";

export const defaultGraphConfig: GraphConfig = {
  width: 1000,
  height: 700,
  nodeRadius: 25,
  linkDistance: 120,
  chargeStrength: -400,
  collisionRadius: 35,
};

export const neo4jColorScheme = {
  // Neo4j official color palette
  primary: '#008CC1',
  secondary: '#4C8EDA',
  accent: '#FFA500',
  success: '#5DBB63',
  warning: '#FFB74D',
  error: '#F44336',
  
  // Node colors by label type
  nodeColors: {
    Person: '#4C8EDA',
    Company: '#5DBB63',
    Project: '#FFB74D',
    City: '#9C27B0',
    Technology: '#FF5722',
    Department: '#607D8B',
    default: '#008CC1',
  },
  
  // UI colors
  background: '#F8F9FA',
  surface: '#FFFFFF',
  border: '#E1E5E9',
  text: {
    primary: '#1A202C',
    secondary: '#4A5568',
    muted: '#718096',
  },
  
  // Graph specific colors
  link: '#9CA3AF',
  linkLabel: '#6B7280',
  selection: '#FFD700',
  hover: '#E3F2FD',
};

export const graphStyles = {
  node: {
    strokeWidth: 3,
    stroke: '#FFFFFF',
    opacity: 0.9,
  },
  link: {
    strokeWidth: 2,
    opacity: 0.7,
  },
  text: {
    fontSize: '12px',
    fontFamily: 'Inter, system-ui, sans-serif',
    fontWeight: '500',
  },
  linkLabel: {
    fontSize: '10px',
    fontFamily: 'Inter, system-ui, sans-serif',
    fontWeight: '400',
  },
};