# 🚀 CONFIGURATION DÉVELOPPEMENT - VEZA PLATFORM

# Configuration générale
project:
  name: "Veza Platform"
  version: "1.0.0"
  description: "Plateforme musicale collaborative complète"
  environment: "development"

# Configuration des services
services:
  backend-api:
    name: "Backend API"
    port: 8080
    language: "go"
    version: "1.23"
    health_endpoint: "/health"
    start_command: "go run cmd/modern-server/main.go"
    working_directory: "veza-backend-api"
    dependencies:
      - "postgresql"
      - "redis"
    
  chat-server:
    name: "Chat Server"
    port: 3001
    language: "rust"
    version: "1.70"
    health_endpoint: "/health"
    start_command: "cargo run"
    working_directory: "veza-chat-server"
    dependencies:
      - "postgresql"
      - "redis"
    
  stream-server:
    name: "Stream Server"
    port: 8000
    language: "rust"
    version: "1.70"
    health_endpoint: "/health"
    start_command: "cargo run"
    working_directory: "veza-stream-server"
    dependencies:
      - "redis"
    
  frontend:
    name: "Frontend"
    port: 3000
    language: "typescript"
    version: "20"
    health_endpoint: "/"
    start_command: "npm run dev"
    working_directory: "veza-frontend"
    dependencies: []
    
  mobile:
    name: "Mobile App"
    port: 19006
    language: "typescript"
    version: "20"
    health_endpoint: "/"
    start_command: "npm start"
    working_directory: "veza-mobile"
    dependencies: []

# Configuration de la base de données
database:
  postgresql:
    host: "localhost"
    port: 5432
    name: "veza_dev"
    user: "veza_user"
    password: "veza_password"
    ssl_mode: "disable"
    
  redis:
    host: "localhost"
    port: 6379
    password: ""
    db: 0

# Configuration des tests
testing:
  coverage_threshold: 90
  timeout: 300
  parallel: true
  types:
    - "unit"
    - "integration"
    - "performance"
    - "security"
  
  tools:
    go:
      - "go test"
      - "gosec"
      - "golangci-lint"
    rust:
      - "cargo test"
      - "cargo clippy"
      - "cargo audit"
    javascript:
      - "jest"
      - "eslint"
      - "npm audit"

# Configuration du monitoring
monitoring:
  prometheus:
    port: 9090
    enabled: true
    
  grafana:
    port: 3001
    enabled: true
    
  jaeger:
    port: 16686
    enabled: true
    
  health_checks:
    interval: 30
    timeout: 10
    retries: 3

# Configuration CI/CD
ci_cd:
  github_actions: true
  docker_registry: "ghcr.io"
  image_name: "veza-platform"
  
  environments:
    development:
      auto_deploy: true
      tests_required: true
      
    staging:
      auto_deploy: false
      tests_required: true
      approval_required: true
      
    production:
      auto_deploy: false
      tests_required: true
      approval_required: true
      security_scan_required: true

# Configuration des outils de développement
tools:
  generators:
    enabled: true
    templates_path: "dev-environment/templates"
    
  validators:
    enabled: true
    pre_commit: true
    
  formatters:
    enabled: true
    auto_format: true
    
  linters:
    enabled: true
    strict_mode: true

# Configuration de la documentation
documentation:
  auto_generate: true
  formats:
    - "markdown"
    - "html"
    - "pdf"
    
  sections:
    - "api"
    - "architecture"
    - "deployment"
    - "monitoring"
    - "development"

# Configuration de la sécurité
security:
  secret_management: true
  encryption_at_rest: true
  encryption_in_transit: true
  
  scans:
    dependency_check: true
    vulnerability_scan: true
    security_audit: true
    
  policies:
    password_policy: "strong"
    session_timeout: 3600
    mfa_required: false

# Configuration des performances
performance:
  load_testing: true
  stress_testing: true
  memory_profiling: true
  
  thresholds:
    response_time: 200
    throughput: 1000
    error_rate: 0.1
    cpu_usage: 80
    memory_usage: 80

# Configuration des logs
logging:
  level: "info"
  format: "json"
  rotation: true
  retention_days: 30
  
  destinations:
    - "file"
    - "stdout"
    - "elasticsearch"
    
  services:
    backend-api: "debug"
    chat-server: "info"
    stream-server: "info"
    frontend: "warn"

# Configuration des notifications
notifications:
  slack:
    enabled: true
    webhook_url: "${SLACK_WEBHOOK_URL}"
    
  email:
    enabled: true
    smtp_host: "${SMTP_HOST}"
    smtp_port: 587
    
  webhook:
    enabled: true
    url: "${WEBHOOK_URL}"

# Configuration des métriques
metrics:
  collection_interval: 30
  retention_days: 90
  
  custom_metrics:
    - "user_registrations"
    - "track_uploads"
    - "chat_messages"
    - "stream_views"
    - "api_requests"
    - "error_rate"
    - "response_time"

# Configuration des environnements
environments:
  development:
    debug: true
    hot_reload: true
    mock_services: true
    
  staging:
    debug: false
    hot_reload: false
    mock_services: false
    
  production:
    debug: false
    hot_reload: false
    mock_services: false
    monitoring: true
    alerting: true
