{
    "id": "BR-L-04-prime-panier",
    "label": "Calcul de la prime de panier avec statut cadre/non-cadre",
    "description": "Calcule la prime de panier du salarié en prenant en compte le statut cadre/non-cadre et en appliquant un prorata sur les jours travaillés ou forfait jours.",
  
    "inputs": {
      "nb_jours_travailles": "number",
      "prime_panier_legale_jour": "number",
      "prime_panier_conventionnelle_jour": "number",
      "statut": "string" 
    },
  
    "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": "jours_reference",
          "value": {
            "type": "If",
            "condition": {
              "type": "BinaryExpression",
              "operator": "==",
              "left": {"type": "Identifier", "name": "statut"},
              "right": {"type": "Literal", "value": "cadre"}
            },
            "then": {"type": "Literal", "value": 21.67},
            "else": {"type": "Identifier", "name": "nb_jours_travailles"}
          }
        },
        {
          "type": "Let",
          "name": "prime_legale",
          "value": {
            "type": "BinaryExpression",
            "operator": "*",
            "left": {"type": "Identifier", "name": "jours_reference"},
            "right": {"type": "Identifier", "name": "prime_panier_legale_jour"}
          }
        },
        {
          "type": "Let",
          "name": "prime_conventionnelle",
          "value": {
            "type": "BinaryExpression",
            "operator": "*",
            "left": {"type": "Identifier", "name": "jours_reference"},
            "right": {"type": "Identifier", "name": "prime_panier_conventionnelle_jour"}
          }
        },
        {
          "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 de panier"}},
              {"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": "jours_reference * (prime journalière légale + conventionnelle)"}},
              {"key": "commentaire", "value": {"type": "Literal", "value": "Prime de panier calculée selon statut cadre/non-cadre et jours travaillés"}},
              {"key": "error", "value": {"type": "Literal", "value": null}}
            ]
          }
        }
      ]
    },
  
    "example_input": {
      "nb_jours_travailles": 18,
      "prime_panier_legale_jour": 5,
      "prime_panier_conventionnelle_jour": 3,
      "statut": "non_cadre"
    },
  
    "example_output": {
      "prime_legale": 90,
      "prime_conventionnelle": 54,
      "prime_totale": 144,
      "libelle": "Prime de panier",
      "type_ligne": "prime",
      "periode": {"debut": "2025-12-01", "fin": "2025-12-31"},
      "base_calcul": "jours_reference * (prime journalière légale + conventionnelle)",
      "commentaire": "Prime de panier calculée selon statut cadre/non-cadre et jours travaillés",
      "error": null
    }
  }
  