Portofelul membrului
Portofelul membrului este un sistem de sold monetar care permite membrilor să plătească în avans pentru serviciile cafe-ului. În loc să plătească numerar pentru fiecare sesiune individuală, un membru poate încărca fonduri în portofel, iar sistemul deduce automat din acel sold pe măsură ce folosește PC-uri, console sau comandă produse.
Arhitectură bazată pe credite
Portofelul folosește un sistem de credite în loc de un singur sold curent. De fiecare dată când se adaugă fonduri în portofelul unui membru, sistemul creează un nou credit de portofel. Fiecare intrare de credit este o înregistrare individuală cu propriul sold, sursă, expirare și restricție de dispozitiv. Acest design oferă:
- Trasabilitate completă a provenienței fiecărei unități de sold.
- Date de expirare independente pentru fiecare intrare de credit.
- Restricții specifice pe dispozitiv (unele credite pot fi utilizabile doar pe PC-uri, altele doar pe console).
- Separare clară între fondurile plătite și bonusurile promoționale.
Soldul total al portofelului membrului este suma tuturor valorilor rămase din intrările de credit active.
Tipuri de credite
Fiecare credit de portofel are un tip de credit care identifică modul în care fondurile au intrat în sistem:
| Tipul creditului | Descriere |
|---|---|
| Plătit | Membrul a plătit pentru aceste fonduri (numerar, card sau altă metodă de plată). Creat la achiziționarea unui pachet de campanie bazat pe bani. |
| Bonus | Fonduri promoționale acordate ca parte a unei achiziții de pachet. De exemplu, "plătește 100 de minute, primești 20 de minute bonus ca credit". |
| Manual | Încărcat manual de un casier sau administrator. Folosit pentru credite de bunăvoință sau aranjamente speciale. |
| Corecție | O ajustare administrativă pentru corectarea unei erori în soldul membrului. |
| Migrare | Fonduri importate dintr-un sistem vechi în timpul migrării datelor. |
| Rambursare inversată | Fonduri restaurate când o rambursare emisă anterior este anulată. |
Tipul creditului este setat la crearea creditului și nu poate fi modificat ulterior. Servește ca pistă de audit permanentă.
Starea creditului
Fiecare credit de portofel parcurge un ciclu de viață urmărit prin starea sa:
- Activ: Creditul are fonduri rămase și nu a expirat. Fondurile pot fi consumate din acest credit.
- Expirat: Data de expirare a creditului a trecut. Fondurile rămase nu mai sunt utilizabile.
- Consumat: Soldul rămas al creditului a ajuns la zero prin consum normal.
- Anulat: Creditul a fost anulat manual de un administrator, anulând orice sold rămas.
Consumul din portofel
Când portofelul unui membru este debitat (pentru timp de sesiune, o comandă sau alt eveniment facturabil), sistemul creează o înregistrare de consum din portofel care face legătura cu o intrare de credit specifică și înregistrează exact cât a fost dedus.
Fiecare înregistrare de consum include un context care identifică ce a declanșat deducerea:
| Context | Descriere |
|---|---|
| Utilizare sesiune | Fonduri consumate pentru plata timpului de utilizare a sesiunii. Sistemul deduce din portofel pe măsură ce sesiunea rulează. |
| Plată din portofel | O plată directă din portofel (de exemplu, când membrul plătește pentru o comandă de produse folosind soldul portofelului). |
| Comandă | Fonduri consumate pentru plata unei comenzi de produse la tejghea sau livrată la PC-ul membrului. |
| Rambursare | O ajustare negativă creată la procesarea unei rambursări, reducând consumul pentru a returna fonduri la intrarea de credit. |
Fiecare înregistrare de consum face legătura cu sesiunea, comanda sau tranzacția specifică care a cauzat-o, permițând trasabilitate completă în audit.
Jurnalul de sold
Pe lângă înregistrările de consum la nivel de credit, sistemul menține un jurnal de sold al membrului care înregistrează fiecare eveniment care modifică soldul total al portofelului:
| Tip eveniment | Descriere |
|---|---|
load |
Au fost adăugate fonduri în portofel (intrare de credit nouă creată sau una existentă alimentată). |
spend |
Au fost consumate fonduri din portofel (plată sesiune, plată comandă). |
refund |
Au fost returnate fonduri în portofel (rambursare comandă, rambursare sesiune). |
adjustment |
A fost efectuată o modificare administrativă a soldului (corecție, anulare). |
Fiecare intrare din jurnalul de sold înregistrează suma modificării și soldul rezultat, astfel încât puteți reconstrui soldul membrului la orice moment în timp citind jurnalul cronologic.
Restricție de dispozitiv
Fiecare credit de portofel are o restricție de dispozitiv care controlează ce tipuri de dispozitive pot consuma din el:
| Restricție | Semnificație |
|---|---|
| Client | Utilizabil pe PC-uri client. Utilizabil și pe console cu excepția cazului în care creditul a fost restricționat explicit. |
| Consolă | Utilizabil pe console de gaming. Utilizabil și pe PC-uri cu excepția restricțiilor explicite. |
| Doar PC-uri | Utilizabil exclusiv pe PC-uri client. Nu poate fi consumat de sesiuni pe consolă. |
| Doar console | Utilizabil exclusiv pe console de gaming. Nu poate fi consumat de sesiuni pe PC. |
| Ambele | Utilizabil pe orice tip de dispozitiv, fără restricții. Aceasta este valoarea implicită. |
Când sistemul trebuie să deducă din portofelul unui membru, filtrează creditele disponibile după restricția de dispozitiv pentru a se asigura că doar creditele eligibile sunt debitate.
Categoria portofelului și cheltuielile între categorii
Creditele de portofel pot fi etichetate cu o categorie de portofel (de exemplu, "gaming" sau "general"). Aceasta permite cafe-ului să creeze fonduri izolate care pot fi cheltuite doar în anumite contexte.
Opțiunea de cheltuieli între categorii a fiecărui credit controlează dacă fondurile sale pot fi folosite în afara categoriei desemnate:
- Când este dezactivată (implicit), creditul poate fi consumat doar în propria categorie.
- Când este activată, creditul poate fi consumat și de tranzacții din alte categorii.
Dacă un credit nu are categorie de portofel atribuită, este tratat ca un credit de uz general și poate fi consumat de orice tranzacție indiferent de categorie.
Cum funcționează alimentarea
Fondurile din portofel pot fi adăugate prin mai multe metode:
Achiziție pachet de campanie: Când un membru cumpără un pachet bazat pe bani dintr-o campanie, sistemul creează automat credite de portofel conform definiției pachetului. O singură achiziție de pachet poate crea mai multe credite (unul pentru partea plătită, unul pentru partea de bonus).
Încărcare manuală: Un casier poate adăuga manual fonduri în portofelul unui membru din panoul de detalii al membrului. Aceasta creează o intrare de credit cu tipul "Manual".
Migrare: În timpul configurării sistemului, soldurile existente dintr-un sistem anterior pot fi importate ca intrări de credit cu tipul "Migrare".
Cum este consumat portofelul în timpul sesiunilor
Când un membru cu sold în portofel pornește o sesiune, sistemul poate plăti automat sesiunea din portofel:
- Motorul de tarifare al sesiunii calculează costul pe minut pe baza intervalului de tarifare activ și a oricăror reduceri de nivel aplicabile.
- Pe măsură ce sesiunea rulează, sistemul deduce periodic costul acumulat din creditele de portofel eligibile ale membrului.
- Creditele sunt consumate în ordinea datei de expirare (creditele care expiră mai devreme sunt folosite primele) pentru a minimiza pierderile din expirare.
- Dacă soldul portofelului se epuizează înainte de încheierea sesiunii, costul rămas este facturat ca plată în numerar la închiderea sesiunii.
- Fiecare deducere creează o înregistrare de consum legată de sesiune ca intrare de "Utilizare sesiune".