162 lines
6.0 KiB
Markdown
162 lines
6.0 KiB
Markdown
# P0 Reconnaissance Report — Subscription Tiers & Organization State
|
|
|
|
**Dátum:** 2026-06-18
|
|
**Szerző:** Fast Coder (Core Developer)
|
|
**Cél:** A meglévő előfizetési csomagok (subscription_tiers) és a hozzájuk tartozó JSON rules struktúrák teljes körű felmérése, valamint a fleet.organizations tábla aktuális hozzárendeléseinek auditálása.
|
|
|
|
---
|
|
|
|
## 1. AUDIT: Subscription Tiers (`system.subscription_tiers`)
|
|
|
|
A tábla jelenleg **10 aktív csomagot** tartalmaz. Az alábbi táblázat összefoglalja az összes csomagot:
|
|
|
|
| ID | Név (name) | Típus (rules->>type) | Display Name | Árazás |
|
|
|----|-----------|---------------------|-------------|--------|
|
|
| 13 | `private_free_v1` | `private` | Privát Ingyenes | 0 EUR |
|
|
| 14 | `private_pro_v1` | `private` | Privát Pro | 4.99 EUR/hó |
|
|
| 15 | `private_vip_v1` | `private` | Privát VIP | 9.99 EUR/hó |
|
|
| 16 | `corp_premium_v1` | `corporate` | Céges Prémium | 29.99 EUR/hó |
|
|
| 17 | `corp_premium_plus_v1` | `corporate` | Céges Prémium Plus | 59.99 EUR/hó |
|
|
| 18 | `corp_vip_v1` | `corporate` | Céges VIP | 149.99 EUR/hó |
|
|
| 19 | `private_test_v01` | `private` | Privát teszt | 0 HUF |
|
|
| 20 | `org_test_v01` | `corporate` | Céges teszt | 0 EUR |
|
|
| 21 | `corp_ree` | `corporate` | Corp Free | 0 EUR |
|
|
| 22 | `corp_free_v1` | `corporate` | Céges Ingyenes | 0 EUR |
|
|
|
|
### 1.1 Teljes JSON rules — "Free" csomag (ID 13: `private_free_v1`)
|
|
|
|
```json
|
|
{
|
|
"type": "private",
|
|
"pricing": {
|
|
"currency": "EUR",
|
|
"credit_price": 0,
|
|
"yearly_price": 0,
|
|
"monthly_price": 0
|
|
},
|
|
"affiliate": {
|
|
"referral_bonus_credits": 0,
|
|
"commission_rate_percent": 0
|
|
},
|
|
"lifecycle": {
|
|
"is_public": true
|
|
},
|
|
"allowances": {
|
|
"max_garages": 1,
|
|
"max_vehicles": 1,
|
|
"monthly_free_credits": 0
|
|
},
|
|
"display_name": "Privát Ingyenes",
|
|
"entitlements": []
|
|
}
|
|
```
|
|
|
|
### 1.2 Teljes JSON rules — "Legnagyobb céges" csomag (ID 18: `corp_vip_v1`)
|
|
|
|
```json
|
|
{
|
|
"type": "corporate",
|
|
"pricing": {
|
|
"currency": "EUR",
|
|
"credit_price": 15000,
|
|
"yearly_price": 1499.99,
|
|
"monthly_price": 149.99
|
|
},
|
|
"affiliate": {
|
|
"referral_bonus_credits": 500,
|
|
"commission_rate_percent": 25
|
|
},
|
|
"lifecycle": {
|
|
"is_public": true
|
|
},
|
|
"allowances": {
|
|
"max_garages": 50,
|
|
"max_vehicles": 200,
|
|
"monthly_free_credits": 2500
|
|
},
|
|
"display_name": "Céges VIP",
|
|
"entitlements": [
|
|
"SRV_DATA_EXPORT",
|
|
"SRV_AI_UPLOAD",
|
|
"SRV_ACCOUNTING_SYNC",
|
|
"SRV_API_ACCESS"
|
|
]
|
|
}
|
|
```
|
|
|
|
### 1.3 A JSON rules struktúra elemzése
|
|
|
|
A `rules` JSONB mező egységes szerkezetet követ minden csomagnál:
|
|
|
|
| Kulcs | Típus | Leírás |
|
|
|-------|-------|--------|
|
|
| `type` | `string` | `"private"` vagy `"corporate"` — a csomag típusa |
|
|
| `pricing` | `object` | Árazási adatok: `currency`, `credit_price`, `yearly_price`, `monthly_price` |
|
|
| `affiliate` | `object` | MLM/affiliate beállítások: `referral_bonus_credits`, `commission_rate_percent` |
|
|
| `lifecycle` | `object` | Életciklus: `is_public` (bool), opcionálisan `available_until` (date/null) |
|
|
| `allowances` | `object` | Korlátok: `max_garages`, `max_vehicles`, `monthly_free_credits` |
|
|
| `display_name` | `string` | Felhasználói felületen megjelenő név |
|
|
| `entitlements` | `string[]` | Jogosultságok listája (pl. `SRV_DATA_EXPORT`, `SRV_AI_UPLOAD`) |
|
|
|
|
**Felfedezett entitlement kódok:**
|
|
- `SRV_DATA_EXPORT` — Adatexport szolgáltatás
|
|
- `SRV_AI_UPLOAD` — AI feltöltés
|
|
- `SRV_ACCOUNTING_SYNC` — Számviteli szinkron
|
|
- `SRV_API_ACCESS` — API hozzáférés
|
|
|
|
---
|
|
|
|
## 2. AUDIT: Current Assignments (`fleet.organizations`)
|
|
|
|
A `fleet.organizations` táblában jelenleg **2 garázs** rendelkezik nem-NULL `subscription_tier_id` értékkel:
|
|
|
|
| Org ID | Név | Csomag ID | Csomag Neve | Display Name |
|
|
|--------|-----|-----------|-------------|-------------|
|
|
| 45 | Gyöngyössy garázs | 17 | `corp_premium_plus_v1` | Céges Prémium Plus |
|
|
| 49 | Test Garázsa | 16 | `corp_premium_v1` | Céges Prémium |
|
|
|
|
**Megjegyzés:** A többi garázs (beleértve az admin garázsait is) `subscription_tier_id = NULL` értékkel rendelkezik, azaz jelenleg nincs hozzájuk rendelve előfizetési csomag.
|
|
|
|
---
|
|
|
|
## 3. IDENTIFY: Admin Garages (User ID 2 — admin@profibot.hu)
|
|
|
|
### 3.1 Tulajdonolt garázsok (owner_id = 2)
|
|
|
|
| Org ID | Név | Típus (org_type) | Státusz | subscription_tier_id |
|
|
|--------|-----|------------------|---------|---------------------|
|
|
| 67 | Admin Garázsa | `individual` | active | **NULL** |
|
|
|
|
### 3.2 Tagsági viszonyok (organization_members)
|
|
|
|
A 2-es user (admin@profibot.hu) az alábbi szervezetekben tag:
|
|
|
|
| Org ID | Szervezet Neve | Szerepkör | Státusz |
|
|
|--------|---------------|-----------|---------|
|
|
| 1 | **Test Company** | `ADMIN` | active |
|
|
| 57 | Teszt Autószerviz Kft. | `OWNER` | active |
|
|
| 58 | Autónyíri Kft. | `OWNER` | active |
|
|
| 62 | Bokebo Kft. | `OWNER` | active |
|
|
| 67 | **Admin Garázsa** | `OWNER` | active |
|
|
|
|
### 3.3 Kiemelt garázsok azonosítói
|
|
|
|
A Tervező által kért két kiemelt garázs:
|
|
|
|
| Megnevezés | Organization ID | Jelenlegi Csomag |
|
|
|------------|---------------|-----------------|
|
|
| **Test Company** (Céges) | **1** | **NINCS** (NULL) |
|
|
| **Admin Garázsa** (Privát) | **67** | **NINCS** (NULL) |
|
|
|
|
---
|
|
|
|
## 4. Összefoglaló és Következtetések
|
|
|
|
1. **A subscription_tiers rendszer teljes és jól strukturált.** 10 csomag áll rendelkezésre, 4 privát és 6 céges kategóriában. A JSON rules séma egységes, jól bővíthető.
|
|
|
|
2. **Csak 2 garázs kapott eddig csomagot** (Gyöngyössy garázs → corp_premium_plus_v1, Test Garázsa → corp_premium_v1). A többi garázs, köztük az admin garázsai is, csomag nélküli állapotban vannak.
|
|
|
|
3. **Az admin két kiemelt garázsa** — `Test Company` (org_id=1) és `Admin Garázsa` (org_id=67) — jelenleg nem rendelkezik előfizetési csomaggal. Ezeket a későbbiekben fel kell címkézni a megfelelő tier-rel.
|
|
|
|
4. **A JSON rules struktúra lehetővé teszi** a korlátok (max_vehicles, max_garages), árazás, affiliate jutalékok és entitlement-ök (feature flagek) finomhangolását csomagonként.
|