Zalozit nebo doplnit ticket: doplneni konecne doplnuje
Krok mel v poli Obsah nastaveno {{rating}}. Data v behu prokazatelne byla,
v udalostech ticketu je hodnoceni videt cele, ale ticket zustal s prazdnym
obsahem.
intakeEvent deli praci na zalozeni a navazani na existujici ticket a vsechno
z `create` platilo jen pro tu prvni vetev. U existujiciho ticketu se doplnovaly
pouze vlastni pole a stitky, zbytek se tise zahodil. U hovoru to znamena, ze
obsah nedorazi nikdy: prvni zprava jen oznami, ze hovor zacal (in-progress,
data null), a prave ta ticket zaklada. Hodnoceni prijde az posledni zpravou,
kdy uz ticket existuje. Stav byl jedina vyjimka, protoze ho krok nastavuje
zvlast pres updateTicketStatus - proto fungoval a zbytek ne.
Jedno pravidlo misto dvou seznamu poli:
- neprazdna hodnota prepise, prazdna nemaze. IntakeInput ma na to `apply`,
v `create` zustala jen zaloha predmetu a vychozi stav
- prazdna hodnota nemaze schvalne. Prave to byla puvodni obava, kvuli ktere se
zapisovalo jen pri zalozeni: pozdejsi zprava bez jmena zakaznika je bezna
a smazat kvuli ni jmeno by bylo horsi nez ho nedoplnit
- vyjimky zustavaji dve: zaloha predmetu z externiho ID plati jen pri vzniku
a stav chodi pres updateTicketStatus, ktere resi i priznak vyrizeni, cas
vyreseni a pocet znovuotevreni
Data smi chodit po castech:
- vlastni pole typu se scitaji podle klicu. Prvni zprava posle `data`, druha
`data2` a ticket ma obe
- prazdny retezec pole nemaze. Sablona, ktera na nic neukazuje, se dosadi
prazdnem, takze {"vysledek":"{{result}}"} u zpravy bez vysledku posilalo
prazdno a prepsalo tim hodnotu z minule zpravy. Vymazat pole jde poslanim
null, coz uz je zamer
Dalsi dve veci, ktere u toho vyplavaly:
- create.status se do createTicket vubec nepredaval, takze ticket vznikl
s vychozim "Nový" a hned se prepsal. V logu pak stalo "stav Nový ->
completed" u ticketu, ktery v nem nikdy nebyl
- faze byla zrusena uz driv, ale v katalogu po ni zbyval krok "Posunout do
dalsi faze" a pole Faze u zalozeni ticketu. Ticket ani typ ticketu fazi
nemaji, takze krok by selhal na chybejicim skriptu a pole se zahazovalo.
Oboji je pryc
Krok navic v logu rekne, co doplnil: "doplnen TK-123, stav completed, obsah".
Driv radek jen oznamil, ze se ticket doplnil, a nebylo poznat cim.
Overeno na bezici instanci s vlastnim DATA_DIR, tremi zpravami o jednom hovoru:
prvni zaklada ticket s prazdnym obsahem, druha doplni obsah i zakaznika, treti
bez dat je nechava byt a meni jen stav. Scenar s `data` a pak `data2` ma na konci
obe hodnoty.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
35d1e43307
commit
1134852bff
@@ -60,6 +60,10 @@ patri telo e-mailu, zprava z WhatsApp nebo prepis hovoru. Kdyz je prazdne,
|
||||
znamena to, ze krok "Zalozit ticket" nemel nastavene pole Obsah - detail ticketu
|
||||
to napise nahlas misto toho, aby ukazal prazdne misto.
|
||||
|
||||
`body` se zapisuje **pri kazde udalosti**, ne jen pri zalozeni, stejne jako
|
||||
skoro vsechno ostatni - podrobnosti nize v "Zalozeni a doplneni delaji totez".
|
||||
Cela historie zustava v udalostech ticketu, at uz je v `body` cokoliv.
|
||||
|
||||
Uvnitr ulozista se drzi jen `assigneeId`, jmeno se dopocitava pri cteni. Kdyz
|
||||
resitel ze seznamu zmizi, ticket nespadne - jen se zaloguje a tvari se jako
|
||||
neprirazeny.
|
||||
@@ -249,6 +253,39 @@ spoustece.
|
||||
Nabidka parametru je pod poli. Kliknuti vlozi `{{nazev}}` na pozici kurzoru,
|
||||
takze se nemusi psat rucne a neudela se preklep.
|
||||
|
||||
### Zalozeni a doplneni delaji totez
|
||||
|
||||
Kdyz uz ticket se stejnym externim ID existuje, **zapise se do nej totez co pri
|
||||
zalozeni**. Plati jedno pravidlo:
|
||||
|
||||
> Neprazdna hodnota prepise, prazdna nemaze.
|
||||
|
||||
Diky tomu nemusi data prijit najednou. U hovoru prvni zprava jen ohlasi, ze
|
||||
zacal, a hodnoceni dorazi az posledni - ta uz na ticket dopadne, i kdyz ticket
|
||||
zalozila ta prvni.
|
||||
|
||||
| Pole | Chovani u druhe a dalsi zpravy |
|
||||
| ------------------------ | -------------------------------------------- |
|
||||
| Predmet, Obsah | neprazdna hodnota prepise |
|
||||
| Typ, Priorita, Kanal | neprazdna hodnota prepise |
|
||||
| Zakaznik, Resitel, Skupina | neprazdna hodnota prepise, po polozkach |
|
||||
| Stav, Vyrizeny | prepise se, pres `updateTicketStatus` |
|
||||
| Stitky | pridaji se, existujici zustanou |
|
||||
| Vlastni pole typu | klice se scitaji, prazdna hodnota nemaze |
|
||||
|
||||
Dve vyjimky, obe zamerne:
|
||||
|
||||
- **Zaloha predmetu** (externi ID, kdyz zadny predmet nezadate) se dosadi jen
|
||||
pri vzniku. Jinak by se predmet prepisoval externim ID i tam, kde ho nikdo
|
||||
nechtel.
|
||||
- **Stav** nechodi tudy, ale pres `updateTicketStatus`. To resi i priznak
|
||||
vyrizeni, cas vyreseni a pocet znovuotevreni - obejit ho by ta cisla rozbilo.
|
||||
|
||||
Vlastni pole typu se **scitaji podle klicu**: kdyz prvni zprava prinese `data`
|
||||
a druha `data2`, ma ticket obe. Prazdny retezec nemaze, protoze sablona, ktera
|
||||
na nic neukazuje, se dosadi prazdnem. Vymazat pole jde poslanim `null` - to uz
|
||||
je zamer, ne vedlejsi ucinek nevyplnene sablony.
|
||||
|
||||
Vyber resitele se plni ze seznamu v `people.ts`, ne z rucne psaneho ID. Novy
|
||||
clovek v tymu se v nabidce objevi sam.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user