Files
service-finder/docs/p0_subscription_tiers_reconnaissance_2026-06-18.md

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.