Initial commit - Migrated to Dev environment

This commit is contained in:
2026-02-03 19:55:45 +00:00
commit a34e5b7976
3518 changed files with 481663 additions and 0 deletions

161
docs/DB_STATE_FLEET_2026-01-28.md Executable file
View File

@@ -0,0 +1,161 @@
# DB State Fleet / Cost / Service Search
**Snapshot:** 2026-01-28
**Source:** “Adatbázis állapot napló” (user log)
**Scope:** Fleet management + cost tracking + service search
**Out of scope:** CRM (explicit), Email/Auth/Bot/Subscriptions (kezelve, de nem most)
---
## 1. Canonical status (most reliable)
### 1.1 Database base
- **Schema separation:** `data` schema is the business schema (public cleanup in progress earlier, later marked stable).
- **Scale:** ~40 tables reported as “stabil” on 2026-01-28 (21052230 blocks).
- **Integrity:** FK constraints + enums “élesek” (2026-01-28 2219).
### 1.2 Backup reference
- **Backup created:** `/mnt/nas/git_vault/backup_20260128_alap_kesz.sql` (20260128_2130)
- **Action:** Use this as baseline snapshot identifier for future diffs.
---
## 2. In-scope modules
## 2.1 Fleet: vehicle registry & hierarchy
### Reported as implemented
- Vehicle hierarchy guaranteed: **Category -> Brand -> Model -> Variant** (20260128_2145)
- Vehicle categories seeded: `CAR`, `MOTORCYCLE`, `TRUCK` (20260128_2200)
- Vehicle variants extended with:
- `power`
- `fuel`
- `cylinder`
(2026-01-28 22:45)
### VIN verification
- `vin_deadline` logic (14 days) for temporary vehicles (2026-01-28 22:15)
- User Vehicles extended with:
- `vin_verified`
- `vin_deadline`
(20260128_2230)
### OPEN / NEED CONFIRMATION
- Exact table names for fleet core (mentioned: `vehicles`, `vehicle_ownership`, `user_vehicles`).
- Confirm whether `user_vehicles` exists or its a logical label for ownership.
---
## 2.2 Cost Tracking (expenses / fueling / TCO)
### Reported as partially implemented
- Mentioned: “companies, equipment and subscription tables live” and “specifications (tire, service interval) added” (2026-01-28 21:50)
- Mentioned custom variable:
- `custom_service_interval_km` introduced (2026-01-28 21:50)
### OPEN / NEED CONFIRMATION (critical)
- Expense tables (expected examples):
- `expenses` / `vehicle_expenses`
- `fuel_logs` / `refuels`
- `service_events` / `maintenance_records`
- Expense category enum exists: `expense_category` (reported in 20260128_2105)
- We must confirm:
- columns (amount, currency, vendor, odometer, date, invoice link)
- whether costs are per vehicle and per org (tenant).
---
## 2.3 Service Search / Marketplace (matching)
### Reported as implemented
- `MatchingService` exists + `/api/v1/search/match` endpoint created (v2.1 / 2026-01-27)
- Ranking formula recorded:
- `S = (Pdist * Wdist) + (Prate * Wrate) + Btier`
(v1.9)
- Dynamic weights served via ConfigService reading from `data.system_settings` (v1.9v1.7)
- Geo base:
- `data.organization_locations` created to support multi-site providers (v2.2v2.6)
- lat/lng stored there; join to organizations
### Provider entities
- `data.organizations` is canonical org table
- `orgtype.SERVICE` enum introduced for service providers (v2.7)
- `service_specialties` exists (v2.0)
### OPEN / NEED CONFIRMATION
- Whether distance calculation is in SQL or Python (Haversine mention, but no final implementation proof).
- Whether PostGIS is used (not mentioned) vs plain numeric calculation.
---
## 3. Config / rules engine (used by in-scope modules)
### system_settings canonical structure
- Canonical columns:
- `key_name` (varchar)
- `value_json` (jsonb)
- overrides: `region_code`, `tier_id`, `org_id`
- Unique index:
- `idx_settings_lookup` over `(key_name, COALESCE(region_code,''), COALESCE(tier_id,0), COALESCE(org_id,0))`
- Confirmed “sync with ConfigService” (v1.7)
### Known keys (from variable map)
- `max_vehicles` default 3
- `search_radius` default 20 (mentioned)
- ranking policy weights exist via system_settings or `ranking_policies`
---
## 4. Out of scope (present but not in current focus)
> Keep in DB, ignore in implementation planning for now.
- Auth v1/v2, verification_tokens, audit_logs
- email_providers/email_logs/email_templates
- subscription tiers / org_subscriptions / notification rules
- bot_discovery_logs & bot module
---
## 5. Known fixes already applied (from logs)
- `system_settings` and `email_templates` got a `key` column earlier, then standardized to `key_name/value_json` for system_settings.
- verification_tokens expiration validation: “now() based check” added.
- Sequences resynced with `setval(...)` to resolve ID collisions.
- Enum issue fixed (`tokentype email_verify` added).
---
## 6. Risks & ambiguity markers
### High risk (must verify)
- Cost tracking schema: tables/columns not explicitly listed.
- Fleet ownership: `vehicle_ownership` vs `user_vehicles` naming.
- Ranking storage split: `ranking_policies` table exists but weights also in `system_settings`.
### Medium risk
- Duplicate log entries may hide a later revert.
- “40 tables stable” statement needs objective verification.
---
## 7. Verification checklist (run on DB, capture output)
Run these and paste results into a new section “Verification Output”.
1) List schemas and table count
- `SELECT table_schema, count(*) FROM information_schema.tables WHERE table_type='BASE TABLE' GROUP BY 1 ORDER BY 1;`
2) Confirm canonical tables exist
- `SELECT to_regclass('data.system_settings'), to_regclass('data.organizations'), to_regclass('data.organization_locations');`
3) system_settings columns
- `SELECT column_name, data_type FROM information_schema.columns WHERE table_schema='data' AND table_name='system_settings' ORDER BY ordinal_position;`
4) idx_settings_lookup exists
- `SELECT indexname, indexdef FROM pg_indexes WHERE schemaname='data' AND tablename='system_settings';`
5) Find cost tables (discovery)
- `SELECT table_name FROM information_schema.tables WHERE table_schema='data' AND table_name ILIKE '%expense%' OR table_name ILIKE '%fuel%' OR table_name ILIKE '%service%' ORDER BY 1;`
6) Enumerations list
- `SELECT t.typname, e.enumlabel FROM pg_type t JOIN pg_enum e ON t.oid=e.enumtypid ORDER BY t.typname, e.enumsortorder;`
---
## 8. Next actions (implementation-oriented)
1) Freeze baseline: label backup as DB_BASELINE_20260128
2) Validate in-scope tables and fill missing schema details (cost module)
3) Create “Module Status” doc based on verified tables:
- Fleet
- Cost
- Service Search