{"openapi":"3.0.3","info":{"title":"Kalkulator materiałowy BIPV - API","version":"0.1.0","description":"Demonstrator Softwise. Wyliczenie zapotrzebowania materiałowego, list cięć profili AL i schematów elektrycznych dla dachów z mikropanelami PV. Dane produktowe przykładowe."},"paths":{"/api/calc":{"post":{"summary":"Pełne wyliczenie dla adresu inwestycji lub geometrii","parameters":[{"name":"view","in":"query","required":false,"schema":{"type":"string","enum":["summary"]},"description":"summary = skrócona odpowiedź (BOM, cięcia, łańcuchy)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalcRequest"},"examples":{"adres":{"summary":"Tylko adres (obrys z OSM, dach z NMPT)","value":{"address":"Warszawa, Puławska 427"}},"geometria":{"summary":"Wymiary budynku i parametry dachu","value":{"site":{"lat":52.23,"lon":21.01,"voivodeship":"mazowieckie"},"building":{"length":14,"width":10,"angle":0},"roof":{"type":"dwuspadowy","pitch":38,"overhang":0.4,"ridgeAlongLength":true},"systemId":"szyny","mainTemplateId":"MP-40H","fillerTemplateId":null}}}}}},"responses":{"200":{"description":"Wynik: połacie, panele, BOM, cięcia, łańcuchy, produkcja energii"},"400":{"description":"Błędne dane"},"404":{"description":"Adres nie znaleziony"}}}},"/api/site":{"get":{"summary":"Geokodowanie adresu, działka ewidencyjna, obrysy budynków","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"example":"Warszawa, Puławska 427"}],"responses":{"200":{"description":"Punkt adresowy (EPSG:2180 i WGS84), działka ULDK, budynki OSM"}}}},"/api/roof":{"post":{"summary":"Analiza dachu z NMPT (wysokość, kąt nachylenia, typ dachu)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ring":{"type":"array","items":{"type":"array","items":{"type":"number"}},"description":"[[lat, lon], ...]"}}}}}},"responses":{"200":{"description":"Wynik analizy"}}}},"/api/catalog":{"get":{"summary":"Baza schematów mikropaneli, systemów montażowych, falowników i profili","responses":{"200":{"description":"Katalog"}}}}},"components":{"schemas":{"CalcRequest":{"type":"object","properties":{"address":{"type":"string","description":"Adres inwestycji (alternatywnie site)"},"site":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"voivodeship":{"type":"string"},"altitude":{"type":"number"}}},"footprintLatLon":{"type":"array","items":{"type":"array","items":{"type":"number"}},"description":"Obrys budynku [[lat, lon], ...]"},"building":{"type":"object","properties":{"length":{"type":"number"},"width":{"type":"number"},"angle":{"type":"number","description":"rad"}}},"autoRoof":{"type":"boolean","description":"Typ i kąt dachu z NMPT (domyślnie true, gdy brak roof)"},"roof":{"type":"object","properties":{"type":{"type":"string","enum":["dwuspadowy","czterospadowy","jednospadowy","plaski"]},"pitch":{"type":"number"},"overhang":{"type":"number"},"ridgeAlongLength":{"type":"boolean"},"rackTilt":{"type":"number"}}},"eaveHeight":{"type":"number"},"systemId":{"type":"string","enum":["zintegrowany","rabek","szyny","balast"]},"mainTemplateId":{"type":"string","example":"MT-16T"},"fillerTemplateId":{"type":"string","nullable":true,"example":"MT-06T"},"customTemplates":{"type":"array","items":{"type":"object"},"description":"Własne schematy mikropaneli (jak w /api/catalog)"},"margins":{"type":"object","properties":{"okap":{"type":"number"},"kalenica":{"type":"number"},"szczyt":{"type":"number"},"naroże":{"type":"number"}}},"orientation":{"type":"string","enum":["auto","pionowo","poziomo"]},"enabledPlanes":{"type":"array","items":{"type":"string"}},"rafterSpacing":{"type":"number","description":"mm"},"electrical":{"type":"object","properties":{"tMin":{"type":"number"},"tCellMax":{"type":"number"},"inverterDistance":{"type":"number"},"slackPct":{"type":"number"},"leadLength":{"type":"number"},"maxDropPct":{"type":"number"},"inverterId":{"type":"string"}}},"options":{"type":"object","properties":{"flashing":{"type":"boolean"},"gutters":{"type":"boolean"},"vatRate":{"type":"number"},"acLength":{"type":"number"}}},"yield":{"type":"boolean","description":"Szacunek produkcji z PVGIS (domyślnie true)"}}}}}}