Add speech-topic policy from tomorrow and a morning family talk.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 13:53:12 +03:00
co-authored by Cursor
parent 5e147a8e47
commit 92c2143329
31 changed files with 909 additions and 35 deletions
+30
View File
@@ -572,6 +572,36 @@ omitted sides keep their current rule. Unknown `{id}` is `404` `unknown-school`.
{ "students": { "form": "strict", "color": "noBright" } }
```
### `GET /api/schools/{id}/speech-rules`
Student and staff speech-topic policy for the school. Only the owner may read this (`403`
`not-owner`). Unknown `{id}` is `404` `unknown-school`.
Policy is one of `free`, `noRude`, `studyOnly`. When a `POST` has been accepted but not yet
applied, `pendingStudents` and/or `pendingStaff` show what takes effect on the **next work
morning** — the same morning as dress rules. Today's live circles keep their topic; the system
does not start a new circle whose topic is outside the live policy.
```json
{
"students": "free",
"staff": "free",
"pendingStudents": null,
"pendingStaff": null
}
```
### `POST /api/schools/{id}/speech-rules`
Queues a change for the next work morning. Only the owner may post (`403` `not-owner`). Either or
both of `students` and `staff` may be sent; omitted sides keep their current pending/live rule.
Unknown `{id}` is `404` `unknown-school`. Unknown policy is `400` `unknown-speech`. Response body
matches `GET`.
```json
{ "students": "studyOnly" }
```
### `GET /api/schools/{id}/staffing`
Money, uncovered subjects, the applicant pool and current staff. Only the owner may read this