Files
service-finder/docs/Old_versions/DB_STATE_FLEET_2026-01-28.md
2026-02-04 21:58:57 +00:00

6.1 KiB
Executable File
Raw Blame History

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;
  1. Confirm canonical tables exist
  • SELECT to_regclass('data.system_settings'), to_regclass('data.organizations'), to_regclass('data.organization_locations');
  1. 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;
  1. idx_settings_lookup exists
  • SELECT indexname, indexdef FROM pg_indexes WHERE schemaname='data' AND tablename='system_settings';
  1. 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;
  1. 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