{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["letter","employer","employee","leave_request","approval","signature"],"properties":{"letter":{"type":"object","additionalProperties":false,"required":["place","date","language"],"properties":{"place":{"type":"string"},"date":{"type":"string","format":"date"},"language":{"type":"string","enum":["fr","nl","de","en"]},"reference":{"type":"string"}}},"employer":{"type":"object","additionalProperties":false,"required":["name","address","bce_number","vat_number","onss_number"],"properties":{"name":{"type":"string"},"address":{"type":"string"},"bce_number":{"type":"string"},"vat_number":{"type":"string"},"onss_number":{"type":"string"},"joint_committee":{"type":"string"},"social_secretariat":{"type":"object","additionalProperties":false,"required":["name","approval_number"],"properties":{"name":{"type":"string"},"approval_number":{"type":"string"}}},"represented_by":{"type":"object","additionalProperties":false,"required":["name","title"],"properties":{"name":{"type":"string"},"title":{"type":"string"}}},"seat_region":{"type":"string","enum":["nl_region","fr_region","brussels","de_region"],"description":"Linguistic region of the operating seat of the employer (Flemish decree of 19 July 1973, decree of the French Community of 30 June 1982, coordinated laws of 18 July 1966, art. 52). Optional; the language of the document is compared with it and a mismatch only warns."}}},"employee":{"type":"object","additionalProperties":false,"required":["surname","given_name","address","national_register_number"],"properties":{"surname":{"type":"string"},"given_name":{"type":"string"},"address":{"type":"string"},"national_register_number":{"type":"string","description":"NISS / Rijksregisternummer (format YY.MM.DD-NNN.CC)."},"date_of_birth":{"type":"string","format":"date"},"statut":{"type":"string","enum":["arbeider","bediende","kaderlid"]},"function_title":{"type":"string"},"department":{"type":"string"}}},"leave_request":{"type":"object","additionalProperties":false,"required":["type","start_date","end_date","total_days","request_date"],"properties":{"type":{"type":"string","enum":["annual","circumstance","compensatory","unpaid","other"],"description":"Type de congé : annuel, de circonstances, compensatoire, non payé, autre."},"start_date":{"type":"string","format":"date","description":"Premier jour de congé approuvé."},"end_date":{"type":"string","format":"date","description":"Dernier jour de congé approuvé."},"total_days":{"type":"number","minimum":0.5,"description":"Nombre total de jours ouvrables de congé approuvés."},"request_date":{"type":"string","format":"date","description":"Date de la demande initiale du travailleur."},"circumstance_type":{"type":"string","description":"Type d'événement si congé de circonstances (ex. mariage, naissance, décès)."},"leave_balance_before":{"type":"number","minimum":0,"description":"Solde de congés avant approbation (jours ouvrables restants)."},"leave_balance_after":{"type":"number","minimum":0,"description":"Solde de congés après approbation."}}},"approval":{"type":"object","additionalProperties":false,"required":["date","approved_by","decision"],"properties":{"date":{"type":"string","format":"date","description":"Date de l'approbation."},"approved_by":{"type":"string","description":"Nom du responsable qui approuve."},"decision":{"type":"string","enum":["approved","approved_modified"],"description":"approved = tel que demandé, approved_modified = approuvé avec modification des dates."},"modified_note":{"type":"string","description":"Note en cas de modification des dates par rapport à la demande initiale."},"conditions":{"type":"string","description":"Conditions éventuelles attachées à l'approbation."},"legal_basis":{"type":"string","description":"Fondement légal ou conventionnel de l'approbation, tel que l'employeur l'indique."}}},"signature":{"type":"object","additionalProperties":false,"required":["signatory_name","signatory_title","date"],"properties":{"signatory_name":{"type":"string"},"signatory_title":{"type":"string"},"date":{"type":"string","format":"date"}}}}}