{
  "name": "Golf — Score Report hebdomadaire",
  "nodes": [
    {
      "parameters": {
        "rule": { "interval": [{ "field": "cronExpression", "expression": "0 18 * * 0" }] }
      },
      "id": "d0e1f2a3-b4c5-6789-defa-890123456789",
      "name": "Chaque dimanche 18h",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [250, 300]
    },
    {
      "parameters": {
        "authentication": "serviceAccount",
        "operation": "readRows",
        "documentId": { "__rl": true, "mode": "id", "value": "VOTRE_GOOGLE_SHEET_ID" },
        "sheetName": { "__rl": true, "mode": "name", "value": "Scores" },
        "options": {}
      },
      "id": "e1f2a3b4-c5d6-7890-efab-901234567890",
      "name": "Lire les scores de la semaine",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [450, 300]
    },
    {
      "parameters": {
        "jsCode": "const rows = $input.all();\nconst scores = rows.map(r => r.json);\n\nconst sorted = scores.sort((a, b) => Number(a['Score net']) - Number(b['Score net']));\nconst best = sorted[0];\nconst participants = scores.length;\nconst avg = (scores.reduce((s, r) => s + Number(r['Score net']), 0) / participants).toFixed(1);\n\nconst leaderboard = sorted.slice(0, 5).map((r, i) => \n  `${i + 1}. ${r['Prénom']} ${r['Nom']} — ${r['Score net']} (index ${r['Index']})`\n).join('\\n');\n\nreturn [{ json: { best, participants, avg, leaderboard, date: new Date().toLocaleDateString('fr-FR') } }];"
      },
      "id": "f2a3b4c5-d6e7-8901-fabc-012345678901",
      "name": "Calculer le classement",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [650, 300]
    },
    {
      "parameters": {
        "sendTo": "capitaine@votre-club.fr",
        "subject": "Rapport des scores — Semaine du {{ $json.date }}",
        "message": "Bonjour,\n\nVoici le rapport des scores de la semaine :\n\n📊 RÉSUMÉ\n• Participants : {{ $json.participants }}\n• Score moyen : {{ $json.avg }}\n• Meilleur score : {{ $json.best['Prénom'] }} {{ $json.best['Nom'] }} ({{ $json.best['Score net'] }})\n\n🏆 TOP 5\n{{ $json.leaderboard }}\n\nBon golf à tous la semaine prochaine !\n\nCe rapport est généré automatiquement.",
        "options": {}
      },
      "id": "a3b4c5d6-e7f8-9012-abcd-123456789012",
      "name": "Envoyer rapport",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [850, 300]
    }
  ],
  "connections": {
    "Chaque dimanche 18h": { "main": [[{ "node": "Lire les scores de la semaine", "type": "main", "index": 0 }]] },
    "Lire les scores de la semaine": { "main": [[{ "node": "Calculer le classement", "type": "main", "index": 0 }]] },
    "Calculer le classement": { "main": [[{ "node": "Envoyer rapport", "type": "main", "index": 0 }]] }
  },
  "active": false,
  "settings": { "executionOrder": "v1" },
  "tags": [{ "name": "golf" }, { "name": "scores" }],
  "meta": {
    "templateId": "likyly-golf-score-report",
    "templateVersion": "1.0",
    "description": "Génère chaque dimanche un rapport automatique des scores de la semaine avec classement.",
    "instructions": "1. Créez une feuille 'Scores' avec : Prénom, Nom, Index, Score brut, Score net, Date\n2. Remplacez VOTRE_GOOGLE_SHEET_ID et l'email du capitaine\n3. Configurez Gmail\n4. Activez le workflow"
  }
}
