Přeskočit obsah
P
API pro partnery
Napojení vlastní aplikace — přístup, autentizace a endpointy
Reference endpointů / Moje firma

Company — moje firma#

Prezentace vlastní firmy provozovatele webu, její rezervační kalendář a agenda zakázek. Nezaměňujte s katalogem cizích firem — to je jiný modul s vlastní sadou zdrojů.

🔴 Zvenčí jen pro administrátorský klíč#

Běžný ani nepřihlášený klíč z tohoto modulu nedostane nic

Všechny akce s HTTP obalem jsou povolené jen roli administrátora — čtení nevyjímaje. Ostatní klíče dostanou zamítnutí (HTTP 403):

{"success":false,"code":400,"message":"Permission denied","data":null}

404 tu neznamená chybnou adresu

Doménové operace modulu — objednání termínu, dostupnost kalendáře, veřejné výpisy profilu, klientský přehled zakázek, uzávěrka listu, fakturace, archivace — HTTP obal nemají a vracejí 404. Web si je volá vnitřně. Nehledejte v adrese překlep; zvenčí se na ně nedostanete ani s administrátorským klíčem.

Každý zdroj nabízí standardní sadu akcí

get, get-by, get-all, save, update-columns, delete, delete-all — není-li u něj uvedeno jinak. Podrobně CRUD vzor.

Zdroje#

Zdroj Co obsahuje
company firma — jediný prezentovaný záznam
block obsahový blok profilu
highlight vypíchnutý údaj profilu
reference referenční zakázka do portfolia
team-member člen týmu
service položka ceníku
service-group skupina ceníku
category kategorie referencí — strom
calendar rezervační kalendář
time-slot úsek kalendáře — pracovní okno, obsazený čas, zavřený den
reservation rezervace termínu
work-list zakázka — složka práce pro jednoho klienta
work-sheet pracovní list — fakturační dávka uvnitř zakázky
work-item práce — jeden řádek listu
work-item-comment komentář k práci

Prezentuje se jediná firma#

Který záznam web ukazuje, řídí příznak presented na zdroji company.

Uložení firmy s presented vypne příznak u všech ostatních

Server exkluzivitu vynucuje sám: nastavíte-li příznak jednomu záznamu, ostatním ho tichým zápisem odebere. Nic to nehlásí a v odpovědi to nepoznáte. Prezentovanou firmu proto nepřepínejte hromadným importem.

Tři patra zakázky#

Zakázka se nefakturuje ani neuzavírá jako celek. Uvnitř má pracovní listy a teprve list je fakturační dávka; v listu jsou jednotlivé práce.

work-list je zakázka, ne seznam prací

Název je historický. Práce visí na work-sheet, ne na work-list — cesta k nim vede přes dva skoky, ne přes jeden.

Cena práce je bez daně a nezapisuje se

price počítá server jako hodiny × sazba, nebo z ručně zadané pevné částky. Sazba DPH je samostatné pole a připočítává se až na dokladu.

Sazba je snímek, ne odkaz do ceníku

Práce si hodinovou sazbu opíše při založení a dál se nemění. Změna ceníku staré práce nepřepočítá — a je to tak zamýšlené, protože už mohou být na faktuře.

Pole, která zvenčí zapsat nejde#

Část polí je pro externího klienta jen ke čtení. Server je z uloženého požadavku vyhodí a zbytek uloží.

Zdroj Nezapisovatelná pole
work-item workSheetId, price
work-list state, closedDatetime
work-sheet state, stateBeforeClosing, bill, closedDatetime, invoicerInvoiceId
reservation state, userId, cancelToken, gdprConsentDatetime, insertIp
work-item-comment userId, byClient, authorName, ip, readDatetime
calendar companyId
company ratingThreadId

K tomu u většiny zdrojů technická pole deleted, insertDatetime a updateDatetime — mazat se má akcí delete a časová razítka plní server.

Zahozené pole se neohlásí — odpověď vypadá jako úspěch

success bude true a záznam se uloží, jen bez těch polí. Uložený stav si po zápisu ověřte čtením, ne z návratové hodnoty.

Stav se proto nedá posunout obyčejným uložením

Uzavření listu, vystavení faktury i potvrzení rezervace jsou vlastní operace se svými kontrolami. Zvenčí dostupné nejsou — a zápis state je právě proto zakázaný, aby se nedaly obejít.

Přesun práce mezi listy je zakázaný záměrně

workSheetId by dovolilo vytáhnout hodiny z už vyfakturovaného listu a udělat je znovu fakturovatelné, nebo je přehodit jinému klientovi.

Rezervace stojí na úsecích kalendáře#

Čas nese time-slot (den, od, do, typ), rezervace na něj jen ukazuje přes timeSlotId. Horní hranice je výlučná.

Zápisem do time-slot obejdete kontrolu překryvu

Obsazenost, dělení a zkracování úseků řeší doménové operace, které zvenčí nejsou. Ruční zápis úseku o ně přijde a kalendář se může rozejít se skutečností.

Komentáře práce se nemoderují#

Vlákno u práce je konverzace klienta s firmou. Nemá vnořování, schvalování ani nahlašování; text je prostý, nejvýš 5 000 znaků, a příspěvek je vidět hned.

Nepřečtenost se sleduje po stranách, ne po lidech

Komentář se počítá jako přečtený, jakmile ho uvidí kdokoli z protistrany. Firma je jeden subjekt — přečtení jedním pracovníkem platí za všechny.