Save a check-in
Creates or replaces the entry for the day and type — the client never has to ask whether one exists. Submit the whole flow at the end, and resubmit the same way after an edit; fields left out of the body read back as unanswered.
Every step is skippable: an empty body still records that the student showed up, and
“Atla ve kaydet” is a body without ready. Feelings accept the key or the Turkish
chip label. Photos go through POST /api/media first, then arrive here as mediaIds;
anything not ready is dropped.
Saving a check-in counts as meaningful activity for the streak.
Authorizations
Supabase access token: Authorization: Bearer <token>
Body
The whole entry, replaced on every PUT. Every field is optional — each step of the flow is skippable, and a field left out reads back as unanswered.
1 <= x <= 5A CheckInFeeling or its Turkish label. Unknown feelings are a 400.
101 - 404000Media uploaded through POST /api/media. Anything not ready is dropped.
5^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Response
The saved entry
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Local Istanbul calendar date, YYYY-MM-DD.
morning is the Sabah Özeti, evening is the Akşam Z-Raporu.
morning, evening "Bugün nasıl geçti?" — 1 (worst) to 5 (best). Null when skipped.
-9007199254740991 <= x <= 9007199254740991In the order the student tapped.
A feeling chip. Turkish labels, in order: Cesur, Memnun, Gururlu, Sevgi dolu, Heyecanlı, Sakin, Mutlu, Motive, Minnettar, Rahatlamış. On write, the Turkish name is accepted too.
brave, content, proud, loving, excited, calm, happy, motivated, grateful, relieved The free-text summary of the day.
The closing yes/no. Evening: "Yatmaya hazır hissediyor musun?", morning: "Güne hazır hissediyor musun?". Null when the student tapped "Atla ve kaydet".
Photos attached to the summary.
call or chat when Lala filled the entry from a conversation.
manual, call, chat student, lala When the flow was first finished. Edits move updatedAt, not this.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$