{"openapi":"3.1.0","info":{"title":"CRT Instalații Tariff Calculator API","version":"1.0.0","description":"Calcul read-only pentru tarifele și duratele publice ale serviciilor CRT Instalații."},"externalDocs":{"description":"Documentație publică pentru asistenți AI și integratori.","url":"https://crt-instalatii.ro/api"},"servers":[{"url":"https://crt-instalatii.ro"}],"paths":{"/api/public/tarife":{"get":{"operationId":"getTariff","summary":"Calculează un tarif prin parametri query","parameters":[{"name":"service","in":"query","required":true,"schema":{"type":"string"}},{"name":"phase","in":"query","required":false,"schema":{"type":"string"}},{"name":"destination","in":"query","required":true,"schema":{"type":"string"}},{"name":"levels","in":"query","required":false,"schema":{"type":"integer"}},{"name":"builtAreaSqm","in":"query","required":false,"schema":{"type":"number"}},{"name":"developedAreaSqm","in":"query","required":false,"schema":{"type":"number"}},{"name":"installations","in":"query","required":false,"schema":{"type":"string"},"description":"Chei separate prin virgulă."},{"name":"specialties","in":"query","required":false,"schema":{"type":"string"},"description":"Sluguri separate prin virgulă."}],"responses":{"200":{"description":"Tarif calculat.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TariffResponse"}}}},"400":{"description":"Date invalide."}}},"post":{"operationId":"calculateTariff","summary":"Calculează un tarif prin JSON","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TariffRequest"}}}},"responses":{"200":{"description":"Tarif calculat.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TariffResponse"}}}},"400":{"description":"Date invalide."}}}}},"components":{"schemas":{"TariffRequest":{"type":"object","required":["service","destination"],"properties":{"service":{"type":"string","enum":["project-design","nzeb","verification-mdlpa"]},"phase":{"type":"string","description":"Obligatoriu pentru project-design și verification-mdlpa."},"destination":{"type":"string"},"measurements":{"type":"object","required":["levels","builtAreaSqm","developedAreaSqm"],"properties":{"levels":{"type":"integer","minimum":1,"maximum":100},"builtAreaSqm":{"type":"number","exclusiveMinimum":0},"developedAreaSqm":{"type":"number","exclusiveMinimum":0}}},"installations":{"type":"array","items":{"type":"string"},"description":"Chei din projectDesignInstallations."},"specialties":{"type":"array","items":{"type":"string","enum":["ie","is","it","ci"]}}}},"TariffDuration":{"type":"object","required":["value","unit","label"],"properties":{"value":{"type":"number"},"unit":{"type":"string","enum":["business_days","hours"]},"label":{"type":"string"}}},"TariffResponse":{"type":"object","required":["apiVersion","source","service","destination","input","offer","calculation","disclaimer"],"properties":{"apiVersion":{"type":"string"},"source":{"type":"string","example":"CRT Instalații"},"service":{"type":"object","properties":{"slug":{"type":"string"},"label":{"type":"string"}}},"phase":{"type":"object","nullable":true,"properties":{"slug":{"type":"string"},"label":{"type":"string"}}},"destination":{"type":"object","properties":{"slug":{"type":"string"},"label":{"type":"string"}}},"input":{"type":"object","additionalProperties":true},"offer":{"type":"object","required":["currency","netLei","vatRate","vatLei","totalLei","duration"],"properties":{"currency":{"type":"string","enum":["RON"]},"netLei":{"type":"number"},"vatRate":{"type":"number"},"vatLei":{"type":"number"},"totalLei":{"type":"number"},"duration":{"$ref":"#/components/schemas/TariffDuration"}}},"calculation":{"type":"object","additionalProperties":true},"disclaimer":{"type":"string"}}}}}}