Skip to main content

GET /api/v1/character/:id

Detail postavy. Odpověď: Plný objekt postavy s povinnými i volitelnými poli.

POST /api/v1/character

Vytvoření nové postavy. Body — povinné:
PoleTyp
facestring (preset)
first_namemax 56
last_namemax 56
genderint (0/1)
ageint 18–80
birth_atYYYY-MM-DD
nationalitystring (CZ/SK/…)
moralityUUID (FK na moralities)
classenum CIVILIAN/SOLDIER/MILITIA
Body — volitelné: alias, middle_name, description, place_of_birth, education, marital_status, openness, positive_traits (JSON array), negative_traits, skills, military_*. Validace: uživatel nesmí mít už 3 živé postavy (jinak 409). Status po vytvoření: PENDING.

PUT /api/v1/character/:id

Edit postavy. Pole upravitelná vlastníkem: alias, description, traits, skills, avatar, banner. Pole upravitelná adminem (review): status (APPROVED/DENIED), denial_reason. Klíčová pole (jméno, věk, gender, class, morality, nationality) jsou po schválení uzamčená.

POST /api/v1/character/:id?action=kill

Označení postavy jako mrtvé. Body: { "death_cause": "Zastřelen banditou" } (max 128). Efekt: is_alive = 0, death_at = now(), death_cause.

POST /api/v1/character/:id?action=publish

Zveřejnění mrtvé postavy jako memoriálu. Předpoklad: is_alive = 0. Efekt: nastaví published_at. Veřejný profil začne postavu zobrazovat.

GET /api/v1/character/:id/stats

Herní statistiky postavy odvozené z relay dat. Odpověď: hodiny, kills, deaths, damage, weapon usage.

Notifikace

Po schválení/zamítnutí dostává vlastník notifikaci typu character.review. Po smrti se spustí webhook character.death.