# 🗺️ Service Finder Adatbázis Térkép > Generálva: 2026-03-23 12:09:44 ## Séma: `audit` ### Tábla: `audit_logs` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('audit.audit_logs_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | True | | 🔗 FK | | **severity** | `VARCHAR(8)` | False | | | | **action** | `VARCHAR(100)` | False | | | | **target_type** | `VARCHAR(50)` | True | | | | **target_id** | `VARCHAR(50)` | True | | | | **old_data** | `JSON` | True | | | | **new_data** | `JSON` | True | | | | **ip_address** | `VARCHAR(45)` | True | | | | **user_agent** | `TEXT` | True | | | | **timestamp** | `TIMESTAMP` | False | `now()` | | ### Tábla: `financial_ledger` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('audit.financial_ledger_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | True | | 🔗 FK | | **person_id** | `BIGINT` | True | | 🔗 FK | | **amount** | `NUMERIC(18, 4)` | False | | | | **currency** | `VARCHAR(10)` | True | | | | **transaction_type** | `VARCHAR(50)` | True | | | | **related_agent_id** | `INTEGER` | True | | 🔗 FK | | **details** | `JSON` | False | `'{}'::jsonb` | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **entry_type** | `VARCHAR(6)` | False | | | | **balance_after** | `NUMERIC(18, 4)` | True | | | | **wallet_type** | `VARCHAR(12)` | True | | | | **issuer_id** | `INTEGER` | True | | 🔗 FK | | **invoice_status** | `VARCHAR(50)` | True | | | | **tax_amount** | `NUMERIC(18, 4)` | True | | | | **gross_amount** | `NUMERIC(18, 4)` | True | | | | **net_amount** | `NUMERIC(18, 4)` | True | | | | **transaction_id** | `UUID` | False | | | | **status** | `VARCHAR(9)` | False | | | ### Tábla: `operational_logs` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('audit.operational_logs_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | True | | 🔗 FK | | **action** | `VARCHAR(100)` | False | | | | **resource_type** | `VARCHAR(50)` | True | | | | **resource_id** | `VARCHAR(100)` | True | | | | **details** | `JSON` | False | `'{}'::jsonb` | | | **ip_address** | `VARCHAR(45)` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `process_logs` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('audit.process_logs_id_seq'::regclass)` | 🔑 PK | | **process_name** | `VARCHAR(100)` | False | | | | **start_time** | `TIMESTAMP` | False | `now()` | | | **end_time** | `TIMESTAMP` | True | | | | **items_processed** | `INTEGER` | False | | | | **items_failed** | `INTEGER` | False | | | | **details** | `JSON` | False | `'{}'::jsonb` | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `security_audit_logs` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('audit.security_audit_logs_id_seq'::regclass)` | 🔑 PK | | **action** | `VARCHAR(50)` | True | | | | **actor_id** | `INTEGER` | True | | 🔗 FK | | **target_id** | `INTEGER` | True | | 🔗 FK | | **confirmed_by_id** | `INTEGER` | True | | 🔗 FK | | **is_critical** | `BOOLEAN` | False | | | | **payload_before** | `JSON` | False | | | | **payload_after** | `JSON` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | ## Séma: `finance` ### Tábla: `credit_logs` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('finance.credit_logs_id_seq'::regclass)` | 🔑 PK | | **org_id** | `INTEGER` | False | | 🔗 FK | | **amount** | `NUMERIC(10, 2)` | False | | | | **description** | `VARCHAR` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `exchange_rates` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('finance.exchange_rates_id_seq'::regclass)` | 🔑 PK | | **rate** | `NUMERIC(18, 6)` | False | | | ### Tábla: `issuers` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('finance.issuers_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR(255)` | False | | | | **tax_id** | `VARCHAR(50)` | True | | | | **type** | `VARCHAR(5)` | False | `'OTHER'::finance.issuer_type` | | | **revenue_limit** | `NUMERIC(18, 4)` | False | `19500000.0` | | | **current_revenue** | `NUMERIC(18, 4)` | False | `0.0` | | | **is_active** | `BOOLEAN` | False | `true` | | | **api_config** | `JSON` | False | | | | **created_at** | `TIMESTAMP` | False | | | | **updated_at** | `TIMESTAMP` | False | | | ### Tábla: `org_subscriptions` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('finance.org_subscriptions_id_seq'::regclass)` | 🔑 PK | | **org_id** | `INTEGER` | False | | 🔗 FK | | **tier_id** | `INTEGER` | False | | 🔗 FK | | **valid_from** | `TIMESTAMP` | False | `now()` | | | **valid_until** | `TIMESTAMP` | True | | | | **is_active** | `BOOLEAN` | False | | | ### Tábla: `payment_intents` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('finance.payment_intents_id_seq'::regclass)` | 🔑 PK | | **intent_token** | `UUID` | False | | | | **payer_id** | `INTEGER` | False | | 🔗 FK | | **beneficiary_id** | `INTEGER` | True | | 🔗 FK | | **target_wallet_type** | `VARCHAR(12)` | False | | | | **net_amount** | `NUMERIC(18, 4)` | False | | | | **handling_fee** | `NUMERIC(18, 4)` | False | | | | **gross_amount** | `NUMERIC(18, 4)` | False | | | | **currency** | `VARCHAR(10)` | False | | | | **status** | `VARCHAR(10)` | False | | | | **stripe_session_id** | `VARCHAR(255)` | True | | | | **stripe_payment_intent_id** | `VARCHAR(255)` | True | | | | **stripe_customer_id** | `VARCHAR(255)` | True | | | | **metadata** | `JSON` | False | `'{}'::jsonb` | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | False | `now()` | | | **completed_at** | `TIMESTAMP` | True | | | | **expires_at** | `TIMESTAMP` | True | | | | **transaction_id** | `UUID` | True | | | | **is_deleted** | `BOOLEAN` | False | | | | **deleted_at** | `TIMESTAMP` | True | | | ### Tábla: `withdrawal_requests` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('finance.withdrawal_requests_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **amount** | `NUMERIC(18, 4)` | False | | | | **currency** | `VARCHAR(10)` | False | | | | **payout_method** | `VARCHAR(13)` | False | | | | **status** | `VARCHAR(9)` | False | | | | **reason** | `VARCHAR(500)` | True | | | | **approved_by_id** | `INTEGER` | True | | 🔗 FK | | **approved_at** | `TIMESTAMP` | True | | | | **refund_transaction_id** | `UUID` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | False | `now()` | | | **is_deleted** | `BOOLEAN` | False | | | | **deleted_at** | `TIMESTAMP` | True | | | ## Séma: `fleet` ### Tábla: `asset_assignments` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `UUID` | False | | 🔑 PK | | **asset_id** | `UUID` | False | | 🔗 FK | | **organization_id** | `INTEGER` | False | | 🔗 FK | | **status** | `VARCHAR(30)` | False | | | ### Tábla: `branches` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `UUID` | False | | 🔑 PK | | **organization_id** | `INTEGER` | False | | 🔗 FK | | **address_id** | `UUID` | True | | 🔗 FK | | **name** | `VARCHAR(100)` | False | | | | **is_main** | `BOOLEAN` | False | | | | **postal_code** | `VARCHAR(10)` | True | | | | **city** | `VARCHAR(100)` | True | | | | **street_name** | `VARCHAR(150)` | True | | | | **street_type** | `VARCHAR(50)` | True | | | | **house_number** | `VARCHAR(20)` | True | | | | **stairwell** | `VARCHAR(20)` | True | | | | **floor** | `VARCHAR(20)` | True | | | | **door** | `VARCHAR(20)` | True | | | | **hrsz** | `VARCHAR(50)` | True | | | | **opening_hours** | `JSONB` | False | `'{}'::jsonb` | | | **branch_rating** | `DOUBLE PRECISION` | False | | | | **status** | `VARCHAR(30)` | False | | | | **is_deleted** | `BOOLEAN` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **location** | `geometry(POINT,4326)` | True | | | ### Tábla: `org_sales_assignments` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('fleet.org_sales_assignments_id_seq'::regclass)` | 🔑 PK | | **organization_id** | `INTEGER` | True | | 🔗 FK | | **agent_user_id** | `INTEGER` | True | | 🔗 FK | | **assigned_at** | `TIMESTAMP` | False | `now()` | | | **is_active** | `BOOLEAN` | False | | | ### Tábla: `organization_financials` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('fleet.organization_financials_id_seq'::regclass)` | 🔑 PK | | **organization_id** | `INTEGER` | False | | 🔗 FK | | **year** | `INTEGER` | False | | | | **turnover** | `NUMERIC(18, 2)` | True | | | | **profit** | `NUMERIC(18, 2)` | True | | | | **employee_count** | `INTEGER` | True | | | | **source** | `VARCHAR(50)` | True | | | | **updated_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `organization_members` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('fleet.organization_members_id_seq'::regclass)` | 🔑 PK | | **organization_id** | `INTEGER` | False | | 🔗 FK | | **user_id** | `INTEGER` | True | | 🔗 FK | | **person_id** | `BIGINT` | True | | 🔗 FK | | **role** | `VARCHAR(7)` | False | | | | **permissions** | `JSON` | False | `'{}'::jsonb` | | | **is_permanent** | `BOOLEAN` | False | | | | **is_verified** | `BOOLEAN` | False | | | ### Tábla: `organizations` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('fleet.organizations_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR(255)` | False | | | | **legal_owner_id** | `BIGINT` | True | | 🔗 FK | | **first_registered_at** | `TIMESTAMP` | False | | | | **current_lifecycle_started_at** | `TIMESTAMP` | False | | | | **last_deactivated_at** | `TIMESTAMP` | True | | | | **lifecycle_index** | `INTEGER` | False | `1` | | | **address_id** | `UUID` | True | | 🔗 FK | | **is_anonymized** | `BOOLEAN` | False | `false` | | | **anonymized_at** | `TIMESTAMP` | True | | | | **full_name** | `VARCHAR` | False | | | | **display_name** | `VARCHAR(50)` | True | | | | **folder_slug** | `VARCHAR(12)` | False | | | | **default_currency** | `VARCHAR(3)` | False | `'HUF'::character varying` | | | **country_code** | `VARCHAR(2)` | False | `'HU'::character varying` | | | **language** | `VARCHAR(5)` | False | `'hu'::character varying` | | | **address_zip** | `VARCHAR(10)` | True | | | | **address_city** | `VARCHAR(100)` | True | | | | **address_street_name** | `VARCHAR(150)` | True | | | | **address_street_type** | `VARCHAR(50)` | True | | | | **address_house_number** | `VARCHAR(20)` | True | | | | **address_hrsz** | `VARCHAR(50)` | True | | | | **tax_number** | `VARCHAR(20)` | True | | | | **reg_number** | `VARCHAR(50)` | True | | | | **org_type** | `VARCHAR(16)` | False | `'individual'::fleet.orgtype` | | | **status** | `VARCHAR(30)` | False | `'pending_verification'::character varying` | | | **is_deleted** | `BOOLEAN` | False | `false` | | | **is_active** | `BOOLEAN` | False | `true` | | | **subscription_plan** | `VARCHAR(30)` | False | | | | **base_asset_limit** | `INTEGER` | False | | | | **purchased_extra_slots** | `INTEGER` | False | | | | **notification_settings** | `JSON` | False | | | | **external_integration_config** | `JSON` | False | | | | **owner_id** | `INTEGER` | True | | 🔗 FK | | **is_verified** | `BOOLEAN` | False | `false` | | | **created_at** | `TIMESTAMP` | False | | | | **updated_at** | `TIMESTAMP` | True | | | | **is_ownership_transferable** | `BOOLEAN` | False | | | ## Séma: `gamification` ### Tábla: `badges` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('gamification.badges_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR` | False | | | | **description** | `VARCHAR` | False | | | | **icon_url** | `VARCHAR` | True | | | ### Tábla: `competitions` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('gamification.competitions_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR` | False | | | | **description** | `TEXT` | True | | | | **start_date** | `TIMESTAMP` | False | | | | **end_date** | `TIMESTAMP` | False | | | | **is_active** | `BOOLEAN` | False | | | ### Tábla: `level_configs` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('gamification.level_configs_id_seq'::regclass)` | 🔑 PK | | **level_number** | `INTEGER` | False | | | | **min_points** | `INTEGER` | False | | | | **rank_name** | `VARCHAR` | False | | | | **is_penalty** | `BOOLEAN` | False | | | ### Tábla: `point_rules` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('gamification.point_rules_id_seq'::regclass)` | 🔑 PK | | **action_key** | `VARCHAR` | False | | | | **points** | `INTEGER` | False | | | | **description** | `VARCHAR` | True | | | | **is_active** | `BOOLEAN` | False | | | ### Tábla: `points_ledger` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('gamification.points_ledger_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **points** | `INTEGER` | False | | | | **penalty_change** | `INTEGER` | False | `0` | | | **reason** | `VARCHAR` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `seasonal_competitions` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('gamification.seasonal_competitions_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR(200)` | False | | | | **description** | `TEXT` | True | | | | **season_id** | `INTEGER` | False | | 🔗 FK | | **start_date** | `DATE` | False | | | | **end_date** | `DATE` | False | | | | **rules** | `JSONB` | True | | | | **status** | `VARCHAR(20)` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `seasons` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | | 🔑 PK | | **name** | `VARCHAR(100)` | False | | | | **start_date** | `DATE` | False | | | | **end_date** | `DATE` | False | | | | **is_active** | `BOOLEAN` | True | `false` | | | **created_at** | `TIMESTAMP` | True | `now()` | | ### Tábla: `user_badges` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('gamification.user_badges_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **badge_id** | `INTEGER` | False | | 🔗 FK | | **earned_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `user_contributions` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **service_fingerprint** | `VARCHAR(255)` | False | | | | **action_type** | `VARCHAR(30)` | False | | | | **provided_fields** | `JSONB` | True | | | | **earned_xp** | `INTEGER` | False | `0` | | | **cooldown_end** | `TIMESTAMP` | False | | | | **created_at** | `TIMESTAMP` | True | `now()` | | | **season_id** | `INTEGER` | True | | | | **contribution_type** | `VARCHAR(50)` | False | | | | **entity_type** | `VARCHAR(50)` | True | | | | **entity_id** | `INTEGER` | True | | | | **points_awarded** | `INTEGER` | False | `0` | | | **xp_awarded** | `INTEGER` | False | `0` | | | **status** | `VARCHAR(20)` | False | `'pending'::character varying` | | | **reviewed_by** | `INTEGER` | True | | | | **reviewed_at** | `TIMESTAMP` | True | | | ### Tábla: `user_scores` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('gamification.user_scores_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **competition_id** | `INTEGER` | False | | 🔗 FK | | **points** | `INTEGER` | False | | | | **last_updated** | `TIMESTAMP` | False | `now()` | | ### Tábla: `user_stats` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **user_id** | `INTEGER` | False | | 🔑 PK 🔗 FK | | **total_xp** | `INTEGER` | False | | | | **social_points** | `INTEGER` | False | | | | **current_level** | `INTEGER` | False | | | | **penalty_points** | `INTEGER` | False | `0` | | | **restriction_level** | `INTEGER` | False | `0` | | | **updated_at** | `TIMESTAMP` | False | `now()` | | | **penalty_quota_remaining** | `INTEGER` | False | `3` | | | **banned_until** | `TIMESTAMP` | True | | | | **places_discovered** | `INTEGER` | False | `0` | | | **places_validated** | `INTEGER` | False | `0` | | ## Séma: `identity` ### Tábla: `active_vouchers` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('identity.active_vouchers_id_seq'::regclass)` | 🔑 PK | | **wallet_id** | `INTEGER` | False | | 🔗 FK | | **amount** | `NUMERIC(18, 4)` | False | | | | **original_amount** | `NUMERIC(18, 4)` | False | | | | **expires_at** | `TIMESTAMP` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `persons` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `BIGINT` | False | `nextval('identity.persons_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | True | | 🔗 FK | | **id_uuid** | `UUID` | False | `gen_random_uuid()` | | | **address_id** | `UUID` | True | | 🔗 FK | | **identity_hash** | `VARCHAR(64)` | True | | | | **last_name** | `VARCHAR` | False | | | | **first_name** | `VARCHAR` | False | | | | **phone** | `VARCHAR` | True | | | | **mothers_last_name** | `VARCHAR` | True | | | | **mothers_first_name** | `VARCHAR` | True | | | | **birth_place** | `VARCHAR` | True | | | | **birth_date** | `TIMESTAMP` | True | | | | **identity_docs** | `JSON` | False | | | | **ice_contact** | `JSON` | False | | | | **lifetime_xp** | `BIGINT` | False | | | | **penalty_points** | `INTEGER` | False | | | | **social_reputation** | `NUMERIC(3, 2)` | False | | | | **is_sales_agent** | `BOOLEAN` | False | | | | **is_active** | `BOOLEAN` | False | `true` | | | **is_ghost** | `BOOLEAN` | False | `false` | | | **created_at** | `TIMESTAMP` | False | | | | **updated_at** | `TIMESTAMP` | True | | | ### Tábla: `social_accounts` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('identity.social_accounts_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **provider** | `VARCHAR(50)` | False | | | | **social_id** | `VARCHAR(255)` | False | | | | **email** | `VARCHAR(255)` | False | | | | **extra_data** | `JSON` | False | `'{}'::jsonb` | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `user_trust_profiles` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **user_id** | `INTEGER` | False | | 🔑 PK 🔗 FK | | **trust_score** | `INTEGER` | False | | | | **maintenance_score** | `NUMERIC(5, 2)` | False | | | | **quality_score** | `NUMERIC(5, 2)` | False | | | | **preventive_score** | `NUMERIC(5, 2)` | False | | | | **last_calculated** | `TIMESTAMP` | False | `now()` | | ### Tábla: `users` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('identity.users_id_seq'::regclass)` | 🔑 PK | | **email** | `VARCHAR(255)` | False | | | | **hashed_password** | `VARCHAR` | True | | | | **role** | `VARCHAR(13)` | False | `'user'::identity.userrole` | | | **person_id** | `BIGINT` | True | | 🔗 FK | | **subscription_plan** | `VARCHAR(30)` | False | | | | **subscription_expires_at** | `TIMESTAMP` | True | | | | **is_vip** | `BOOLEAN` | False | | | | **referral_code** | `VARCHAR(20)` | True | | | | **referred_by_id** | `INTEGER` | True | | 🔗 FK | | **current_sales_agent_id** | `INTEGER` | True | | 🔗 FK | | **is_active** | `BOOLEAN` | False | `false` | | | **is_deleted** | `BOOLEAN` | False | `false` | | | **folder_slug** | `VARCHAR(12)` | True | | | | **preferred_language** | `VARCHAR(5)` | False | | | | **region_code** | `VARCHAR(5)` | False | | | | **preferred_currency** | `VARCHAR(3)` | False | | | | **scope_level** | `VARCHAR(30)` | False | | | | **scope_id** | `VARCHAR(50)` | True | | | | **custom_permissions** | `JSON` | False | | | | **created_at** | `TIMESTAMP` | False | | | ### Tábla: `verification_tokens` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('identity.verification_tokens_id_seq'::regclass)` | 🔑 PK | | **token** | `UUID` | False | | | | **user_id** | `INTEGER` | False | | 🔗 FK | | **token_type** | `VARCHAR(20)` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **expires_at** | `TIMESTAMP` | False | | | | **is_used** | `BOOLEAN` | False | | | ### Tábla: `wallets` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('identity.wallets_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **earned_credits** | `NUMERIC(18, 4)` | False | `0` | | | **purchased_credits** | `NUMERIC(18, 4)` | False | `0` | | | **service_coins** | `NUMERIC(18, 4)` | False | `0` | | | **currency** | `VARCHAR(3)` | False | | | ## Séma: `marketplace` ### Tábla: `discovery_parameters` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.discovery_parameters_id_seq'::regclass)` | 🔑 PK | | **city** | `VARCHAR(100)` | False | | | | **keyword** | `VARCHAR(100)` | False | | | | **is_active** | `BOOLEAN` | False | | | | **last_run_at** | `TIMESTAMP` | True | | | | **country_code** | `VARCHAR(2)` | True | `'HU'::character varying` | | ### Tábla: `expertise_tags` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.expertise_tags_id_seq'::regclass)` | 🔑 PK | | **key** | `VARCHAR(50)` | False | | | | **name_hu** | `VARCHAR(100)` | True | | | | **name_en** | `VARCHAR(100)` | True | | | | **category** | `VARCHAR(30)` | True | | | | **is_official** | `BOOLEAN` | False | `true` | | | **suggested_by_id** | `BIGINT` | True | | 🔗 FK | | **discovery_points** | `INTEGER` | False | `10` | | | **search_keywords** | `JSONB` | False | `'[]'::jsonb` | | | **usage_count** | `INTEGER` | False | `0` | | | **icon** | `VARCHAR(50)` | True | | | | **description** | `TEXT` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | True | | | ### Tábla: `ratings` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.ratings_id_seq'::regclass)` | 🔑 PK | | **author_id** | `INTEGER` | False | | 🔗 FK | | **target_organization_id** | `INTEGER` | True | | 🔗 FK | | **target_user_id** | `INTEGER` | True | | 🔗 FK | | **target_branch_id** | `UUID` | True | | 🔗 FK | | **score** | `NUMERIC(3, 2)` | False | | | | **comment** | `TEXT` | True | | | | **images** | `JSONB` | False | `'[]'::jsonb` | | | **is_verified** | `BOOLEAN` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `service_expertises` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.service_expertises_id_seq'::regclass)` | 🔑 PK | | **service_id** | `INTEGER` | False | | 🔗 FK | | **expertise_id** | `INTEGER` | False | | 🔗 FK | | **confidence_level** | `INTEGER` | False | `0` | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `service_profiles` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.service_profiles_id_seq'::regclass)` | 🔑 PK | | **organization_id** | `INTEGER` | True | | 🔗 FK | | **parent_id** | `INTEGER` | True | | 🔗 FK | | **fingerprint** | `VARCHAR(255)` | False | | | | **location** | `geometry(POINT,4326)` | False | | | | **status** | `VARCHAR(9)` | False | `'ghost'::marketplace.service_status` | | | **last_audit_at** | `TIMESTAMP` | False | `now()` | | | **google_place_id** | `VARCHAR(100)` | True | | | | **rating** | `DOUBLE PRECISION` | True | | | | **user_ratings_total** | `INTEGER` | True | | | | **rating_verified_count** | `INTEGER` | True | `0` | | | **rating_price_avg** | `DOUBLE PRECISION` | True | | | | **rating_quality_avg** | `DOUBLE PRECISION` | True | | | | **rating_time_avg** | `DOUBLE PRECISION` | True | | | | **rating_communication_avg** | `DOUBLE PRECISION` | True | | | | **rating_overall** | `DOUBLE PRECISION` | True | | | | **last_review_at** | `TIMESTAMP` | True | | | | **vibe_analysis** | `JSONB` | False | `'{}'::jsonb` | | | **social_links** | `JSONB` | False | `'{}'::jsonb` | | | **specialization_tags** | `JSONB` | False | `'{}'::jsonb` | | | **trust_score** | `INTEGER` | False | | | | **is_verified** | `BOOLEAN` | False | | | | **verification_log** | `JSONB` | False | `'{}'::jsonb` | | | **opening_hours** | `JSONB` | False | `'{}'::jsonb` | | | **contact_phone** | `VARCHAR` | True | | | | **contact_email** | `VARCHAR` | True | | | | **website** | `VARCHAR` | True | | | | **bio** | `TEXT` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | True | | | ### Tábla: `service_providers` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.service_providers_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR` | False | | | | **address** | `VARCHAR` | False | | | | **category** | `VARCHAR` | True | | | | **status** | `VARCHAR(8)` | False | | | | **source** | `VARCHAR(15)` | False | | | | **validation_score** | `INTEGER` | False | | | | **evidence_image_path** | `VARCHAR` | True | | | | **added_by_user_id** | `INTEGER` | True | | 🔗 FK | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `service_requests` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.service_requests_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **asset_id** | `UUID` | True | | 🔗 FK | | **branch_id** | `UUID` | True | | 🔗 FK | | **status** | `VARCHAR(50)` | False | `'pending'::character varying` | | | **description** | `TEXT` | True | | | | **price_estimate** | `NUMERIC(10, 2)` | True | | | | **requested_date** | `TIMESTAMP` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `service_reviews` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.service_reviews_id_seq'::regclass)` | 🔑 PK | | **service_id** | `INTEGER` | False | | 🔗 FK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **transaction_id** | `UUID` | False | | | | **price_rating** | `INTEGER` | False | | | | **quality_rating** | `INTEGER` | False | | | | **time_rating** | `INTEGER` | False | | | | **communication_rating** | `INTEGER` | False | | | | **comment** | `TEXT` | True | | | | **is_verified** | `BOOLEAN` | False | `true` | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | True | | | ### Tábla: `service_specialties` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.service_specialties_id_seq'::regclass)` | 🔑 PK | | **parent_id** | `INTEGER` | True | | 🔗 FK | | **name** | `VARCHAR` | False | | | | **slug** | `VARCHAR` | False | | | ### Tábla: `service_staging` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.service_staging_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR` | False | | | | **postal_code** | `VARCHAR(10)` | True | | | | **city** | `VARCHAR(100)` | True | | | | **full_address** | `VARCHAR` | True | | | | **fingerprint** | `VARCHAR(255)` | False | | | | **raw_data** | `JSONB` | False | `'{}'::jsonb` | | | **status** | `VARCHAR(20)` | False | `'pending'::character varying` | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **contact_phone** | `VARCHAR` | True | | | | **website** | `VARCHAR` | True | | | | **external_id** | `VARCHAR` | True | | | | **contact_email** | `VARCHAR` | True | | | | **trust_score** | `INTEGER` | True | `0` | | | **audit_trail** | `JSONB` | True | | | | **rejection_reason** | `VARCHAR(500)` | True | | | | **organization_id** | `INTEGER` | True | | | | **service_profile_id** | `INTEGER` | True | | | | **published_at** | `TIMESTAMP` | True | | | | **source** | `VARCHAR(50)` | True | | | | **description** | `TEXT` | True | | | | **submitted_by** | `INTEGER` | True | | | | **updated_at** | `TIMESTAMP` | True | | | | **validation_level** | `INTEGER` | False | `40` | | ### Tábla: `votes` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('marketplace.votes_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **provider_id** | `INTEGER` | False | | 🔗 FK | | **vote_value** | `INTEGER` | False | | | ## Séma: `system` ### Tábla: `addresses` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `UUID` | False | `gen_random_uuid()` | 🔑 PK | | **postal_code_id** | `INTEGER` | True | | 🔗 FK | | **street_name** | `VARCHAR(200)` | False | | | | **street_type** | `VARCHAR(50)` | False | | | | **house_number** | `VARCHAR(50)` | False | | | | **stairwell** | `VARCHAR(20)` | True | | | | **floor** | `VARCHAR(20)` | True | | | | **door** | `VARCHAR(20)` | True | | | | **parcel_id** | `VARCHAR(50)` | True | | | | **full_address_text** | `TEXT` | True | | | | **latitude** | `DOUBLE PRECISION` | True | | | | **longitude** | `DOUBLE PRECISION` | True | | | | **created_at** | `TIMESTAMP` | False | | | ### Tábla: `competitions_deprecated` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.competitions_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR` | False | | | | **description** | `TEXT` | True | | | | **start_date** | `TIMESTAMP` | False | | | | **end_date** | `TIMESTAMP` | False | | | | **is_active** | `BOOLEAN` | False | | | ### Tábla: `documents` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `UUID` | False | `gen_random_uuid()` | 🔑 PK | | **parent_type** | `VARCHAR(20)` | True | | | | **parent_id** | `VARCHAR(50)` | True | | | | **doc_type** | `VARCHAR(50)` | True | | | | **original_name** | `VARCHAR(255)` | True | | | | **file_hash** | `VARCHAR(64)` | True | | | | **file_ext** | `VARCHAR(10)` | True | `'webp'::character varying` | | | **mime_type** | `VARCHAR(100)` | True | `'image/webp'::character varying` | | | **file_size** | `INTEGER` | True | | | | **has_thumbnail** | `BOOLEAN` | True | `false` | | | **thumbnail_path** | `VARCHAR(255)` | True | | | | **uploaded_by** | `INTEGER` | True | | 🔗 FK | | **status** | `VARCHAR(50)` | True | `'uploaded'::character varying` | | | **ocr_data** | `TEXT` | True | | | | **error_log** | `TEXT` | True | | | | **created_at** | `TIMESTAMP` | True | `CURRENT_TIMESTAMP` | | ### Tábla: `geo_postal_codes` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.geo_postal_codes_id_seq'::regclass)` | 🔑 PK | | **country_code** | `VARCHAR(5)` | False | | | | **zip_code** | `VARCHAR(10)` | False | | | | **city** | `VARCHAR(100)` | False | | | ### Tábla: `geo_street_types` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.geo_street_types_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR(50)` | False | | | ### Tábla: `geo_streets` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.geo_streets_id_seq'::regclass)` | 🔑 PK | | **postal_code_id** | `INTEGER` | True | | 🔗 FK | | **name** | `VARCHAR(200)` | False | | | ### Tábla: `internal_notifications` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `UUID` | False | | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **title** | `VARCHAR(255)` | False | | | | **message** | `TEXT` | False | | | | **category** | `VARCHAR(50)` | False | `'info'::character varying` | | | **priority** | `VARCHAR(20)` | False | `'medium'::character varying` | | | **is_read** | `BOOLEAN` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **read_at** | `TIMESTAMP` | True | | | | **data** | `JSONB` | True | | | ### Tábla: `pending_actions` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.pending_actions_id_seq'::regclass)` | 🔑 PK | | **requester_id** | `INTEGER` | False | | 🔗 FK | | **approver_id** | `INTEGER` | True | | 🔗 FK | | **status** | `VARCHAR(8)` | False | | | | **action_type** | `VARCHAR(50)` | False | | | | **payload** | `JSONB` | False | | | | **reason** | `VARCHAR(255)` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **expires_at** | `TIMESTAMP` | False | `(now() + '24:00:00'::interval)` | | | **processed_at** | `TIMESTAMP` | True | | | ### Tábla: `service_staging` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.service_staging_id_seq1'::regclass)` | 🔑 PK | | **name** | `VARCHAR(255)` | False | | | | **source** | `VARCHAR(50)` | False | | | | **external_id** | `VARCHAR(100)` | True | | | | **fingerprint** | `VARCHAR(64)` | False | | | | **postal_code** | `VARCHAR(20)` | True | | | | **city** | `VARCHAR(100)` | False | | | | **full_address** | `VARCHAR(500)` | True | | | | **contact_phone** | `VARCHAR(50)` | True | | | | **website** | `VARCHAR(255)` | True | | | | **contact_email** | `VARCHAR(255)` | True | | | | **raw_data** | `JSONB` | False | `'{}'::jsonb` | | | **status** | `VARCHAR(20)` | False | | | | **trust_score** | `INTEGER` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | True | | | | **read_at** | `TIMESTAMP` | True | | | | **data** | `JSONB` | True | | | ### Tábla: `service_staging_deprecated` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.service_staging_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR` | False | | | | **postal_code** | `VARCHAR(10)` | True | | | | **city** | `VARCHAR(100)` | True | | | | **full_address** | `VARCHAR` | True | | | | **fingerprint** | `VARCHAR(255)` | False | | | | **raw_data** | `JSONB` | False | `'{}'::jsonb` | | | **status** | `VARCHAR(20)` | False | `'pending'::character varying` | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **source** | `VARCHAR(255)` | True | | | | **external_id** | `VARCHAR(255)` | True | | | | **contact_phone** | `VARCHAR(50)` | True | | | | **website** | `VARCHAR(255)` | True | | | | **contact_email** | `VARCHAR(255)` | True | | | | **trust_score** | `INTEGER` | False | | | | **updated_at** | `TIMESTAMP` | True | | | | **read_at** | `TIMESTAMP` | True | | | | **data** | `JSONB` | True | | | ### Tábla: `staged_vehicle_data` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.staged_vehicle_data_id_seq'::regclass)` | 🔑 PK | | **source_url** | `VARCHAR` | True | | | | **raw_data** | `JSONB` | False | `'{}'::jsonb` | | | **status** | `VARCHAR(20)` | False | | | | **error_log** | `VARCHAR` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `subscription_tiers` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.subscription_tiers_id_seq'::regclass)` | 🔑 PK | | **name** | `VARCHAR(100)` | False | | | | **rules** | `JSONB` | False | | | | **is_custom** | `BOOLEAN` | False | `false` | | ### Tábla: `system_parameters` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.system_parameters_id_seq'::regclass)` | 🔑 PK | | **key** | `VARCHAR` | False | | | | **category** | `VARCHAR` | False | `'general'::character varying` | | | **value** | `JSONB` | False | | | | **scope_level** | `VARCHAR(7)` | False | `'global'::system.parameter_scope` | | | **scope_id** | `VARCHAR(50)` | True | | | | **is_active** | `BOOLEAN` | False | | | | **description** | `VARCHAR` | True | | | | **last_modified_by** | `INTEGER` | True | | | | **updated_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `translations` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.translations_id_seq'::regclass)` | 🔑 PK | | **key** | `VARCHAR(255)` | False | | | | **lang** | `VARCHAR(5)` | False | | | | **value** | `TEXT` | False | | | | **is_published** | `BOOLEAN` | False | `true` | | ### Tábla: `user_scores_deprecated` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('system.user_scores_id_seq'::regclass)` | 🔑 PK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **competition_id** | `INTEGER` | False | | 🔗 FK | | **points** | `INTEGER` | False | | | | **last_updated** | `TIMESTAMP` | False | `now()` | | ## Séma: `vehicle` ### Tábla: `asset_costs` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `UUID` | False | | 🔑 PK | | **asset_id** | `UUID` | False | | 🔗 FK | | **organization_id** | `INTEGER` | False | | 🔗 FK | | **cost_category** | `VARCHAR(50)` | False | | | | **amount_net** | `NUMERIC(18, 2)` | False | | | | **currency** | `VARCHAR(3)` | False | | | | **date** | `TIMESTAMP` | False | `now()` | | | **invoice_number** | `VARCHAR(100)` | True | | | | **data** | `JSONB` | False | `'{}'::jsonb` | | ### Tábla: `asset_events` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `UUID` | False | | 🔑 PK | | **asset_id** | `UUID` | False | | 🔗 FK | | **event_type** | `VARCHAR(50)` | False | | | ### Tábla: `asset_financials` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.asset_financials_id_seq'::regclass)` | 🔑 PK | | **asset_id** | `UUID` | False | | 🔗 FK | | **purchase_price_net** | `NUMERIC(18, 2)` | False | | | | **purchase_price_gross** | `NUMERIC(18, 2)` | False | | | | **vat_rate** | `NUMERIC(5, 2)` | False | | | | **activation_date** | `TIMESTAMP` | True | | | | **financing_type** | `VARCHAR(50)` | False | | | | **accounting_details** | `JSONB` | False | `'{}'::jsonb` | | ### Tábla: `asset_inspections` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.asset_inspections_id_seq'::regclass)` | 🔑 PK | | **asset_id** | `UUID` | False | | 🔗 FK | | **inspector_id** | `INTEGER` | False | | 🔗 FK | | **timestamp** | `TIMESTAMP` | False | `now()` | | | **checklist_results** | `JSONB` | False | | | | **is_safe** | `BOOLEAN` | False | | | ### Tábla: `asset_reviews` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.asset_reviews_id_seq'::regclass)` | 🔑 PK | | **asset_id** | `UUID` | False | | 🔗 FK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **overall_rating** | `INTEGER` | True | | | | **comment** | `TEXT` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `asset_telemetry` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.asset_telemetry_id_seq'::regclass)` | 🔑 PK | | **asset_id** | `UUID` | False | | 🔗 FK | | **current_mileage** | `INTEGER` | False | | | ### Tábla: `assets` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `UUID` | False | `gen_random_uuid()` | 🔑 PK | | **catalog_id** | `INTEGER` | True | | 🔗 FK | | **vin** | `VARCHAR(17)` | False | | | | **license_plate** | `VARCHAR(20)` | True | | | | **name** | `VARCHAR` | True | | | | **year_of_manufacture** | `INTEGER` | True | | | | **first_registration_date** | `TIMESTAMP` | True | | | | **current_mileage** | `INTEGER` | False | `0` | | | **condition_score** | `INTEGER` | False | `100` | | | **is_for_sale** | `BOOLEAN` | False | `false` | | | **price** | `NUMERIC(15, 2)` | True | | | | **currency** | `VARCHAR(3)` | False | `'EUR'::character varying` | | | **current_organization_id** | `INTEGER` | True | | 🔗 FK | | **owner_person_id** | `BIGINT` | True | | 🔗 FK | | **owner_org_id** | `INTEGER` | True | | 🔗 FK | | **operator_person_id** | `BIGINT` | True | | 🔗 FK | | **operator_org_id** | `INTEGER` | True | | 🔗 FK | | **status** | `VARCHAR(20)` | False | `'active'::character varying` | | | **individual_equipment** | `JSONB` | False | | | | **created_at** | `TIMESTAMP` | False | | | | **updated_at** | `TIMESTAMP` | True | | | ### Tábla: `auto_data_crawler_queue` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.auto_data_crawler_queue_id_seq'::regclass)` | 🔑 PK | | **url** | `TEXT` | False | | | | **level** | `VARCHAR(20)` | False | | | | **parent_id** | `INTEGER` | True | | | | **name** | `VARCHAR(255)` | True | | | | **status** | `VARCHAR(20)` | True | `'pending'::character varying` | | | **created_at** | `TIMESTAMP` | True | `now()` | | | **updated_at** | `TIMESTAMP` | True | `now()` | | | **error_msg** | `VARCHAR(1000)` | True | | | | **retry_count** | `INTEGER` | True | `0` | | | **category** | `VARCHAR(20)` | True | `'car'::character varying` | | ### Tábla: `catalog_discovery` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.catalog_discovery_id_seq'::regclass)` | 🔑 PK | | **make** | `VARCHAR(100)` | False | | | | **model** | `VARCHAR(100)` | False | | | | **vehicle_class** | `VARCHAR(50)` | False | `'car'::character varying` | | | **market** | `VARCHAR(20)` | False | `'GLOBAL'::character varying` | | | **model_year** | `INTEGER` | True | | | | **status** | `VARCHAR(20)` | False | `'pending'::character varying` | | | **source** | `VARCHAR(100)` | True | | | | **priority_score** | `INTEGER` | False | `0` | | | **attempts** | `INTEGER` | False | `0` | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `cost_categories` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.cost_categories_id_seq'::regclass)` | 🔑 PK | | **code** | `VARCHAR(50)` | True | | | | **parent_id** | `INTEGER` | True | | 🔗 FK | | **name** | `VARCHAR(100)` | False | | | | **description** | `TEXT` | True | | | | **is_system** | `BOOLEAN` | False | `false` | | | **created_at** | `TIMESTAMP` | False | | | | **updated_at** | `TIMESTAMP` | False | | | ### Tábla: `costs` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.costs_id_seq'::regclass)` | 🔑 PK | | **vehicle_id** | `INTEGER` | False | | 🔗 FK | | **organization_id** | `INTEGER` | True | | 🔗 FK | | **category_id** | `INTEGER` | False | | 🔗 FK | | **amount** | `NUMERIC(12, 2)` | False | | | | **currency** | `VARCHAR(3)` | False | `'''HUF'''::character varying` | | | **odometer** | `INTEGER` | False | | | | **date** | `TIMESTAMP` | False | | | | **notes** | `TEXT` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `external_reference_library` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.external_reference_library_id_seq'::regclass)` | 🔑 PK | | **source_name** | `VARCHAR(50)` | True | | | | **make** | `VARCHAR(100)` | True | | | | **model** | `VARCHAR(100)` | True | | | | **generation** | `VARCHAR(255)` | True | | | | **modification** | `VARCHAR(255)` | True | | | | **year_from** | `INTEGER` | True | | | | **year_to** | `INTEGER` | True | | | | **power_kw** | `INTEGER` | True | | | | **engine_cc** | `INTEGER` | True | | | | **specifications** | `JSON` | True | | | | **source_url** | `VARCHAR(500)` | True | | | | **last_scraped_at** | `TIMESTAMP` | True | `now()` | | | **created_at** | `TIMESTAMP` | True | `now()` | | | **category** | `VARCHAR(20)` | True | `'car'::character varying` | | | **pipeline_status** | `VARCHAR(30)` | True | `'pending_enrich'::character varying` | | | **matched_vmd_id** | `INTEGER` | True | | 🔗 FK | ### Tábla: `feature_definitions` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.feature_definitions_id_seq'::regclass)` | 🔑 PK | | **vehicle_type_id** | `INTEGER` | False | | 🔗 FK | | **code** | `VARCHAR(50)` | False | | | | **name** | `VARCHAR(100)` | False | | | | **category** | `VARCHAR(50)` | False | | | ### Tábla: `gb_catalog_discovery` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.gb_catalog_discovery_id_seq'::regclass)` | 🔑 PK | | **vrm** | `VARCHAR(20)` | True | | | | **make** | `VARCHAR(100)` | True | | | | **model** | `VARCHAR(100)` | True | | | | **status** | `VARCHAR(20)` | True | `'pending'::character varying` | | | **created_at** | `TIMESTAMP` | True | `now()` | | ### Tábla: `model_feature_maps` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.model_feature_maps_id_seq'::regclass)` | 🔑 PK | | **model_definition_id** | `INTEGER` | False | | 🔗 FK | | **feature_id** | `INTEGER` | False | | 🔗 FK | | **is_standard** | `BOOLEAN` | False | | | ### Tábla: `motorcycle_specs` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.motorcycle_specs_id_seq'::regclass)` | 🔑 PK | | **crawler_id** | `INTEGER` | True | | 🔗 FK | | **full_name** | `TEXT` | True | | | | **raw_data** | `JSONB` | True | | | | **url** | `TEXT` | True | | | | **created_at** | `TIMESTAMP` | True | `now()` | | | **updated_at** | `TIMESTAMP` | True | | | ### Tábla: `reference_lookup` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.reference_lookup_id_seq'::regclass)` | 🔑 PK | | **make** | `VARCHAR` | False | | | | **model** | `VARCHAR` | False | | | | **year** | `INTEGER` | True | | | | **specs** | `JSONB` | False | | | | **source** | `VARCHAR` | False | | | | **source_id** | `VARCHAR` | True | | | | **updated_at** | `TIMESTAMP` | True | `now()` | | ### Tábla: `vehicle_catalog` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.vehicle_catalog_id_seq'::regclass)` | 🔑 PK | | **make** | `VARCHAR(100)` | True | | | | **model** | `VARCHAR(100)` | True | | | | **master_definition_id** | `INTEGER` | True | | 🔗 FK | | **generation** | `VARCHAR` | True | | | | **year_from** | `INTEGER` | True | | | | **year_to** | `INTEGER` | True | | | | **fuel_type** | `VARCHAR` | True | | | | **power_kw** | `INTEGER` | True | | | | **engine_capacity** | `INTEGER` | True | | | | **factory_data** | `JSONB` | False | | | ### Tábla: `vehicle_logbook` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.vehicle_logbook_id_seq'::regclass)` | 🔑 PK | | **asset_id** | `UUID` | False | | 🔗 FK | | **driver_id** | `INTEGER` | False | | 🔗 FK | | **trip_type** | `VARCHAR(30)` | False | | | | **is_reimbursable** | `BOOLEAN` | False | | | | **start_mileage** | `INTEGER` | False | | | | **end_mileage** | `INTEGER` | True | | | | **distance_km** | `NUMERIC(10, 2)` | True | | | | **start_lat** | `NUMERIC(10, 6)` | True | | | | **start_lng** | `NUMERIC(10, 6)` | True | | | | **end_lat** | `NUMERIC(10, 6)` | True | | | | **end_lng** | `NUMERIC(10, 6)` | True | | | | **gps_calculated_distance** | `NUMERIC(10, 2)` | True | | | | **obd_verified** | `BOOLEAN` | False | | | | **max_acceleration** | `DOUBLE PRECISION` | True | | | | **average_speed** | `DOUBLE PRECISION` | True | | | ### Tábla: `vehicle_model_definitions` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.vehicle_model_definitions_id_seq'::regclass)` | 🔑 PK | | **make** | `VARCHAR(100)` | True | | | | **marketing_name** | `VARCHAR(100)` | True | | | | **market** | `VARCHAR(20)` | False | `'EU'::character varying` | | | **official_marketing_name** | `VARCHAR(255)` | True | | | | **attempts** | `INTEGER` | False | `0` | | | **last_error** | `TEXT` | True | | | | **updated_at** | `TIMESTAMP` | False | `now()` | | | **priority_score** | `INTEGER` | False | `0` | | | **normalized_name** | `VARCHAR(255)` | True | | | | **marketing_name_aliases** | `JSONB` | False | `'[]'::jsonb` | | | **engine_code** | `VARCHAR(50)` | True | | | | **technical_code** | `VARCHAR(100)` | False | | | | **variant_code** | `VARCHAR(100)` | True | | | | **version_code** | `VARCHAR(100)` | True | | | | **type_approval_number** | `VARCHAR(100)` | True | | | | **seats** | `INTEGER` | True | | | | **width** | `INTEGER` | True | | | | **wheelbase** | `INTEGER` | True | | | | **list_price** | `INTEGER` | True | | | | **max_speed** | `INTEGER` | True | | | | **towing_weight_unbraked** | `INTEGER` | True | | | | **towing_weight_braked** | `INTEGER` | True | | | | **fuel_consumption_combined** | `NUMERIC(10, 2)` | True | | | | **co2_emissions_combined** | `INTEGER` | True | | | | **vehicle_type_id** | `INTEGER` | True | | 🔗 FK | | **vehicle_class** | `VARCHAR(50)` | True | | | | **body_type** | `VARCHAR(100)` | True | | | | **fuel_type** | `VARCHAR(50)` | True | | | | **engine_capacity** | `INTEGER` | False | `0` | | | **power_kw** | `INTEGER` | False | `0` | | | **torque_nm** | `INTEGER` | True | | | | **cylinders** | `INTEGER` | True | | | | **cylinder_layout** | `VARCHAR(50)` | True | | | | **curb_weight** | `INTEGER` | True | | | | **max_weight** | `INTEGER` | True | | | | **euro_classification** | `VARCHAR(20)` | True | | | | **doors** | `INTEGER` | True | | | | **transmission_type** | `VARCHAR(50)` | True | | | | **drive_type** | `VARCHAR(50)` | True | | | | **year_from** | `INTEGER` | True | | | | **year_to** | `INTEGER` | True | | | | **production_status** | `VARCHAR(50)` | True | | | | **status** | `VARCHAR(50)` | False | | | | **is_manual** | `BOOLEAN` | False | `false` | | | **source** | `VARCHAR(100)` | True | | | | **raw_search_context** | `TEXT` | False | `''::text` | | | **research_metadata** | `JSONB` | False | `'{}'::jsonb` | | | **specifications** | `JSONB` | False | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **last_research_at** | `TIMESTAMP` | True | | | | **trim_level** | `VARCHAR(100)` | True | `''::character varying` | | | **raw_api_data** | `JSONB` | True | `'{}'::jsonb` | | ### Tábla: `vehicle_odometer_states` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **vehicle_id** | `INTEGER` | False | | 🔑 PK 🔗 FK | | **last_recorded_odometer** | `INTEGER` | False | | | | **last_recorded_date** | `TIMESTAMP` | False | | | | **daily_avg_distance** | `NUMERIC(10, 2)` | False | | | | **estimated_current_odometer** | `NUMERIC(12, 2)` | False | | | | **confidence_score** | `DOUBLE PRECISION` | False | | | | **manual_override_avg** | `NUMERIC(10, 2)` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | False | `now()` | | ### Tábla: `vehicle_ownership_history` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.vehicle_ownership_history_id_seq'::regclass)` | 🔑 PK | | **asset_id** | `UUID` | False | | 🔗 FK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **acquired_at** | `TIMESTAMP` | False | `now()` | | | **disposed_at** | `TIMESTAMP` | True | | | ### Tábla: `vehicle_types` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `INTEGER` | False | `nextval('vehicle.vehicle_types_id_seq'::regclass)` | 🔑 PK | | **code** | `VARCHAR(30)` | False | | | | **name** | `VARCHAR(50)` | False | | | | **icon** | `VARCHAR(50)` | True | | | | **units** | `JSONB` | False | `'{"power": "kW", "weight": "kg"}'::jsonb` | | ### Tábla: `vehicle_user_ratings` | Oszlop | Típus | Nullable | Alapértelmezett | Extrák | | :--- | :--- | :--- | :--- | :--- | | **id** | `UUID` | False | `gen_random_uuid()` | 🔑 PK | | **vehicle_id** | `INTEGER` | False | | 🔗 FK | | **user_id** | `INTEGER` | False | | 🔗 FK | | **driving_experience** | `INTEGER` | False | | | | **reliability** | `INTEGER` | False | | | | **comfort** | `INTEGER` | False | | | | **consumption_satisfaction** | `INTEGER` | False | | | | **comment** | `TEXT` | True | | | | **created_at** | `TIMESTAMP` | False | `now()` | | | **updated_at** | `TIMESTAMP` | False | `now()` | |