-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Tausta
Pelissä on kaksi demomoodia:
Pelitaiteen opetusdemo (käytetään opetustilanteissa)
Pelaajien tilit / data poistetaan opetusjakson päätyttyä
Kaikille avoin pelidemo (open demo for all)
Pysyvämpi testausympäristö kaikille testaajille
Kuvassa UI:ssa nämä kuvataan erillisinä “pelimuotoina”.
Tavoite
Serverin tulee tukea kahta erillistä “environmentia” niin, että:
Opetusdemo ei sekoitu avoimeen demoon (data, leaderboardit, klaanit, matchit)
Opetusdemo voidaan resetata (tai poistaa käyttäjät) hallitusti opetuksen jälkeen
Avoin demo säilyttää datansa normaalisti (tai eri omalla reset-aikataululla)
Vaatimukset (server)
- Environment / Mode -tunniste
Lisätään selkeä ympäristö-/mooditunniste (esim. enum):
TEACHING_DEMO
OPEN_DEMO
Tämän tulee kulkea läpi kaikissa oleellisissa entiteeteissä tai ainakin niiden “namespace”-tasolla:
user/account
clan
match/battle results
leaderboard entries
inventory/assets
soulhome / jukebox / fleamarket
Hyvä periaate: mikään haku ei saa vahingossa palauttaa toisen ympäristön dataa.
- Tilien elinkaari (TTL / deletion policy)
Teaching demo:
Tilit ja niihin liittyvä data ovat tilapäisiä
Kun opetusjakso päättyy → tilit poistetaan tai nollataan (valitkaa malli)
Ehdotus toteutusvaihtoehdoiksi:
A) expiresAt-kenttä userille + taustaprosessi joka poistaa/nollaa
B) “session/batch id” (esim. teachingBatchId), jonka perusteella admin voi tehdä resetin
C) manuaalinen admin-endpoint: “delete all teaching demo accounts created after X”
Open demo:
Tilit säilyvät normaalisti (ei automaattipoistoa oletuksena)
- Resetointikyvykkyys (Teaching demo)
Tarvitaan serverille hallittu tapa siivota opetusdemon data, vähintään:
käyttäjätilit (TEACHING_DEMO)
klaanit ja klaanidata (TEACHING_DEMO)
leaderboardit (TEACHING_DEMO)
matchit ja tulokset (TEACHING_DEMO)
Mahdolliset endpointit:
POST /admin/demo/teaching/reset
poistaa/nollaa kaiken TEACHING_DEMO -datan
tai turvallisemmin:
POST /admin/demo/teaching/reset?batchId=...
(Autentikointi: admin token / internal-only.)
- Leaderboard-erottelu
Leaderboardin on oltava ympäristökohtainen:
leaderboard (TEACHING_DEMO) ≠ leaderboard (OPEN_DEMO)
Sama koskee klaanien leaderboardia / tilastoja:
klaanin voitot/tappiot ja rankingit eivät saa sekoittua ympäristöjen välillä.
Definition of Done / Acceptance Criteria
Client voi kirjautua / luoda tilin valitun moodin alle, ja serveri merkitsee tilin environmentilla.
Kaikki serverin haut (clan, leaderboard, match history, inventory) palauttavat vain saman environmentin dataa.
Teaching demo voidaan resetata: resetin jälkeen opetusdemon tilit ja niihin liittyvä data eivät ole enää saatavilla.
Open demo -data säilyy resetistä muuttumattomana.
“Cross-environment” viittauksia ei synny (esim. OPEN_DEMO -klaani ei voi sisältää TEACHING_DEMO -jäsentä).
Huomio (implementaatiovinkki)
Helpoin tapa estää vahinkosekoitukset on tehdä environment pakolliseksi:
joko kaikissa primääriavaimellisissa tauluissa (environment-sarake + indeksit)
tai erillisissä skeemoissa / tietokannoissa (isompi muutos, mutta “idiot-proof”)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status