{
    "id": "BR-L-02-prime-anciennete",
    "label": "Calcul de la prime d'ancienneté avec paliers",
    "description": "Calcule la prime d'ancienneté du salarié selon son ancienneté et le salaire de base, en utilisant des paliers envoyés en input pour les taux légal et conventionnel.",
  
    "inputs": {
      "salaire_base": "number",
      "date_debut_anciennete": "string",
      "date_paie": "string",
      "paliers_legaux": "array",
      "paliers_conventionnels": "array"
    },
  
    "outputs": {
      "prime_legale": "number",
      "prime_conventionnelle": "number",
      "prime_totale": "number",
      "libelle": "string",
      "type_ligne": "string",
      "periode": "object",
      "base_calcul": "string",
      "commentaire": "string",
      "error": "string|null"
    },
  
    "ast": {
      "type": "Program",
      "body": [
        {
          "type": "Let",
          "name": "anciennete",
          "value": {
            "type": "CallExpression",
            "callee": "datediff_years",
            "arguments": [
              {"type": "Identifier", "name": "date_debut_anciennete"},
              {"type": "Identifier", "name": "date_paie"}
            ]
          }
        },
        {
          "type": "Let",
          "name": "taux_legale",
          "value": {
            "type": "CallExpression",
            "callee": "get_taux_par_paliers",
            "arguments": [
              {"type": "Identifier", "name": "anciennete"},
              {"type": "Identifier", "name": "paliers_legaux"}
            ]
          }
        },
        {
          "type": "Let",
          "name": "taux_conventionnelle",
          "value": {
            "type": "CallExpression",
            "callee": "get_taux_par_paliers",
            "arguments": [
              {"type": "Identifier", "name": "anciennete"},
              {"type": "Identifier", "name": "paliers_conventionnels"}
            ]
          }
        },
        {
          "type": "Let",
          "name": "prime_legale",
          "value": {
            "type": "BinaryExpression",
            "operator": "*",
            "left": {"type": "Identifier", "name": "salaire_base"},
            "right": {"type": "Identifier", "name": "taux_legale"}
          }
        },
        {
          "type": "Let",
          "name": "prime_conventionnelle",
          "value": {
            "type": "BinaryExpression",
            "operator": "*",
            "left": {"type": "Identifier", "name": "salaire_base"},
            "right": {"type": "Identifier", "name": "taux_conventionnelle"}
          }
        },
        {
          "type": "Let",
          "name": "prime_totale",
          "value": {
            "type": "BinaryExpression",
            "operator": "+",
            "left": {"type": "Identifier", "name": "prime_legale"},
            "right": {"type": "Identifier", "name": "prime_conventionnelle"}
          }
        },
        {
          "type": "Return",
          "value": {
            "type": "ObjectExpression",
            "properties": [
              {"key": "prime_legale", "value": {"type": "Identifier", "name": "prime_legale"}},
              {"key": "prime_conventionnelle", "value": {"type": "Identifier", "name": "prime_conventionnelle"}},
              {"key": "prime_totale", "value": {"type": "Identifier", "name": "prime_totale"}},
              {"key": "libelle", "value": {"type": "Literal", "value": "Prime d'ancienneté"}},
              {"key": "type_ligne", "value": {"type": "Literal", "value": "prime"}},
              {"key": "periode", "value": {"type": "Literal", "value": {"debut": "2025-12-01", "fin": "2025-12-31"}}},
              {"key": "base_calcul", "value": {"type": "Literal", "value": "salaire_base * taux selon palier d'ancienneté"}},
              {"key": "commentaire", "value": {"type": "Literal", "value": "Prime d'ancienneté calculée selon les paliers légal et conventionnel envoyés en input"}},
              {"key": "error", "value": {"type": "Literal", "value": null}}
            ]
          }
        }
      ]
    },
  
    "example_input": {
      "salaire_base": 2000,
      "date_debut_anciennete": "2015-06-01",
      "date_paie": "2025-12-01",
      "paliers_legaux": [
        {"anciennete_min": 0, "anciennete_max": 2, "taux": 0.01},
        {"anciennete_min": 3, "anciennete_max": 4, "taux": 0.02},
        {"anciennete_min": 5, "anciennete_max": 9, "taux": 0.03},
        {"anciennete_min": 10, "anciennete_max": 14, "taux": 0.04},
        {"anciennete_min": 15, "anciennete_max": 100, "taux": 0.05}
      ],
      "paliers_conventionnels": [
        {"anciennete_min": 0, "anciennete_max": 2, "taux": 0.005},
        {"anciennete_min": 3, "anciennete_max": 4, "taux": 0.01},
        {"anciennete_min": 5, "anciennete_max": 9, "taux": 0.015},
        {"anciennete_min": 10, "anciennete_max": 14, "taux": 0.02},
        {"anciennete_min": 15, "anciennete_max": 100, "taux": 0.025}
      ]
    },
  
    "example_output": {
      "prime_legale": 200,
      "prime_conventionnelle": 40,
      "prime_totale": 240,
      "libelle": "Prime d'ancienneté",
      "type_ligne": "prime",
      "periode": {"debut": "2025-12-01", "fin": "2025-12-31"},
      "base_calcul": "salaire_base * taux selon palier d'ancienneté",
      "commentaire": "Prime d'ancienneté calculée selon les paliers légal et conventionnel envoyés en input",
      "error": null
    }
  }
  