Data Model
Purpose
This page documents the actual high-level Maqsafy data model from the exported MySQL metadata. It uses table names, column counts, estimated row counts, foreign keys, and indexes to describe the current database structure.
Model Summary
| Metric | Count |
|---|---|
| Tables | 189 |
| Columns | 2112 |
| Foreign key links | 197 |
| Index entries | 633 |
Domain-Based Table Inventory
Credentials & NFC
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| card_import | 0 | 4 | 1 | 0 |
| copy_nfc_codes | 48303 | 17 | 1 | 0 |
| importing_nfc_codes_operations | 4090 | 11 | 1 | 0 |
| nfc_codes | 50511 | 13 | 1 | 1 |
Notification & Communication
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| automated_calls | 20665 | 14 | 1 | 0 |
| contacts | 49 | 13 | 1 | 0 |
| notification_logs | 0 | 5 | 1 | 0 |
| notifications | 385500 | 8 | 1 | 0 |
| notifications_new | 94248 | 8 | 1 | 0 |
| nova_notifications | 0 | 9 | 1 | 0 |
| onesignal_devices | 57849 | 4 | 1 | 0 |
Order & Cart
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| carts | 372 | 9 | 1 | 5 |
| company_package_order_items | 46 | 13 | 1 | 0 |
| company_package_orders | 12 | 19 | 1 | 0 |
| deposit_orders | 179505 | 14 | 1 | 1 |
| export_deposit_orders | 0 | 8 | 0 | 0 |
| export_orders | 6301 | 7 | 0 | 0 |
| export_withdraw_orders | 0 | 11 | 0 | 0 |
| free_subscription_orders | 3248952 | 11 | 1 | 5 |
| free_subscription_orders_details | 16184449 | 11 | 1 | 3 |
| free_subscriptions | 16197 | 17 | 1 | 3 |
| invoices | 284636 | 7 | 1 | 3 |
| maqsafy_product_order_items | 2259 | 6 | 1 | 2 |
| maqsafy_product_orders | 1723 | 19 | 1 | 1 |
| order_items | 3254404 | 25 | 1 | 3 |
| order_vending_details | 0 | 13 | 1 | 2 |
| orders | 1500880 | 50 | 1 | 6 |
| return_carts | 3 | 11 | 1 | 6 |
| return_invoices | 2101 | 8 | 1 | 4 |
| return_order_items | 24264 | 17 | 1 | 4 |
| return_orders | 16419 | 24 | 1 | 5 |
| supplier_carts | 6 | 8 | 1 | 2 |
| supplier_order_items | 52100 | 9 | 1 | 2 |
| supplier_orders | 51327 | 31 | 1 | 2 |
| tax_invoice_requests | 0 | 11 | 1 | 0 |
| withdraw_orders | 5123 | 18 | 1 | 0 |
Other
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| cities | 156 | 6 | 1 | 1 |
| companies | 44032 | 16 | 1 | 0 |
| discount_reasons | 0 | 5 | 1 | 0 |
| excuses | 250 | 11 | 1 | 0 |
| features | 75 | 14 | 1 | 0 |
| group_notes | 0 | 7 | 1 | 2 |
| groups | 0 | 18 | 1 | 0 |
| guide_manuals | 18 | 10 | 1 | 0 |
| importing_stock_operations | 0 | 12 | 1 | 0 |
| login_loggers | 18784 | 5 | 1 | 0 |
| mobile_verifications | 38691 | 7 | 1 | 0 |
| pages | 4 | 10 | 1 | 0 |
| questions | 33 | 7 | 1 | 0 |
| rates | 3350733 | 13 | 1 | 1 |
| regions | 18 | 5 | 1 | 0 |
| register_requests | 0 | 8 | 1 | 0 |
| service_provider_companies | 2 | 15 | 1 | 0 |
| settings | 7 | 8 | 1 | 0 |
| soft_pos | 1 | 15 | 1 | 0 |
| status_logs | 64211 | 8 | 1 | 0 |
| stock_logs | 22936 | 15 | 1 | 3 |
| store_landings | 0 | 11 | 1 | 1 |
| store_statistics | 2008535 | 8 | 1 | 2 |
| store_stocks | 616 | 6 | 1 | 2 |
| stores | 42663 | 53 | 1 | 7 |
| table_105 | 898 | 3 | 1 | 0 |
| test | 513 | 18 | 0 | 0 |
| top_sale | 362 | 6 | 1 | 2 |
| trips | 308 | 7 | 1 | 2 |
| tv_link_codes | 3 | 8 | 1 | 0 |
| vending_machines | 0 | 10 | 1 | 2 |
Product & Catalog
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| block_products | 32041 | 6 | 1 | 3 |
| commission_packages | 26 | 14 | 1 | 0 |
| company_free_package_statistics | 676 | 6 | 1 | 1 |
| company_packages | 8 | 17 | 1 | 0 |
| favourites | 101 | 8 | 1 | 1 |
| free_packages | 21 | 21 | 1 | 2 |
| general_commission_packages | 0 | 9 | 1 | 0 |
| importing_products_operations | 0 | 15 | 1 | 0 |
| maqsafy_product_commission_packages | 9 | 10 | 1 | 0 |
| maqsafy_products | 17 | 10 | 1 | 0 |
| package_landings | 2 | 6 | 1 | 1 |
| product_categories | 101 | 7 | 1 | 0 |
| product_packages | 41854 | 7 | 1 | 1 |
| product_packages_products | 6558 | 9 | 1 | 2 |
| products | 3015811 | 19 | 1 | 3 |
| products_info | 171 | 11 | 1 | 1 |
| push_notification_packages | 19 | 8 | 1 | 0 |
| service_provider_commission_packages | 1 | 14 | 1 | 0 |
| supplier_products | 1444 | 16 | 1 | 2 |
| withdraw_commission_packages | 0 | 8 | 1 | 0 |
School & Education
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| classrooms | 82039 | 7 | 1 | 1 |
| educational_administrations | 60 | 6 | 1 | 0 |
| educational_levels | 18454 | 7 | 1 | 1 |
| educational_offices | 448 | 8 | 1 | 1 |
| export_schools | 0 | 20 | 0 | 0 |
| group_school | 0 | 5 | 1 | 2 |
| import_school | 42154 | 11 | 1 | 0 |
| maqsafy_school_products | 1459 | 7 | 1 | 2 |
| school_commission_packages | 7 | 14 | 1 | 0 |
| school_fee_classroom | 26 | 5 | 1 | 2 |
| school_fee_educational_level | 14 | 5 | 1 | 2 |
| school_fee_full_installment_payments | 0 | 9 | 1 | 1 |
| school_fee_installment_upfront_payments | 0 | 11 | 1 | 1 |
| school_fee_logs | 2 | 13 | 1 | 2 |
| school_fee_order_type_program_dates | 28 | 7 | 1 | 1 |
| school_fee_order_type_program_educational_levels | 155 | 5 | 1 | 2 |
| school_fee_order_type_programs | 34 | 16 | 1 | 1 |
| school_fee_order_types | 42870 | 14 | 1 | 2 |
| school_fee_orders | 2071 | 16 | 1 | 1 |
| school_fee_upfront_payments | 2 | 7 | 1 | 1 |
| school_fees | 2 | 9 | 1 | 1 |
| school_fees_discount_reasons | 0 | 5 | 1 | 2 |
| school_landings | 0 | 14 | 1 | 1 |
| school_managers | 0 | 16 | 1 | 1 |
| school_mobile_messages | 57 | 9 | 1 | 2 |
| school_notification_classrooms | 975 | 7 | 1 | 3 |
| school_notification_settings | 86 | 17 | 1 | 1 |
| school_page_visibility | 37953 | 6 | 1 | 1 |
| school_push_notification_packages | 38 | 10 | 1 | 2 |
| school_report_titles | 11 | 5 | 1 | 0 |
| school_reports | 3379 | 32 | 1 | 0 |
| schools | 43155 | 58 | 1 | 5 |
| schools_package | 42582 | 39 | 1 | 0 |
Supplier & Company
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| automated_drivers | 134 | 6 | 1 | 0 |
| company_insights_statistecs | 1183 | 6 | 1 | 1 |
| company_page_visibility | 4368 | 6 | 1 | 1 |
| service_provider_company_page_visibility | 40 | 6 | 1 | 1 |
| supplier_categories | 350 | 7 | 1 | 1 |
| supplier_classifications | 29 | 6 | 1 | 0 |
| supplier_landings | 2 | 10 | 1 | 1 |
| supplier_store_classification | 167 | 5 | 1 | 2 |
| supplier_store_supplier_employee | 0 | 6 | 1 | 2 |
| supplier_stores | 245 | 31 | 1 | 0 |
| supplier_stores_cities | 834 | 5 | 1 | 2 |
| supplier_stores_page_visibility | 4400 | 6 | 1 | 1 |
System & Operations
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| action_events | 441890 | 17 | 1 | 0 |
| export_data | 284831 | 12 | 1 | 0 |
| failed_jobs | 384 | 7 | 1 | 0 |
| jobs | 0 | 7 | 1 | 0 |
| media | 531 | 18 | 1 | 0 |
| migrations | 477 | 3 | 1 | 0 |
| nova_field_attachments | 0 | 8 | 1 | 0 |
| nova_pending_field_attachments | 0 | 6 | 1 | 0 |
| websockets_statistics_entries | 0 | 7 | 1 | 0 |
User & Identity
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| company_packages_staffs | 0 | 5 | 1 | 2 |
| fcm_tokens | 25071 | 5 | 1 | 0 |
| guardians | 635 | 8 | 0 | 0 |
| importing_students_operations | 64523 | 23 | 1 | 0 |
| mobile_password_resets | 2519 | 5 | 1 | 0 |
| model_has_permissions | 0 | 3 | 3 | 1 |
| model_has_roles | 1213 | 3 | 3 | 1 |
| nfc_users | 89607 | 15 | 1 | 4 |
| password_resets | 100 | 3 | 0 | 0 |
| permissions | 505 | 6 | 1 | 0 |
| personal_access_tokens | 41527 | 13 | 1 | 0 |
| role_has_permissions | 3115 | 2 | 2 | 2 |
| roles | 24 | 6 | 1 | 1 |
| school_fee_order_types_staff | 29 | 5 | 1 | 2 |
| school_fee_student | 10 | 5 | 1 | 2 |
| school_notification_users | 8861 | 8 | 1 | 1 |
| school_number_users_log | 0 | 6 | 1 | 2 |
| staff_automated_calls | 67 | 13 | 1 | 0 |
| student_guardian | 32529 | 9 | 1 | 2 |
| student_school_fee_logs | 4 | 15 | 1 | 1 |
| student_school_fees | 10 | 15 | 1 | 4 |
| students_king_abdallah_balances | 345 | 10 | 0 | 0 |
| supervisory_agencies | 9 | 6 | 1 | 0 |
| supervisory_agencies_stores | 807 | 5 | 1 | 2 |
| supervisory_agency_page_visibility | 48 | 6 | 1 | 1 |
| update_student_school_operations | 6 | 12 | 1 | 0 |
| user_bank_accounts | 3430 | 12 | 1 | 0 |
| user_landings | 6 | 7 | 1 | 0 |
| user_notification_targets | 35501 | 6 | 1 | 1 |
| user_notifications | 5 | 16 | 1 | 0 |
| userables | 359064 | 11 | 1 | 0 |
| users | 301200 | 62 | 1 | 9 |
Wallet & Finance
| Table | Estimated Rows | Columns | PK Columns | FKs |
|---|---|---|---|---|
| bank_accounts | 0 | 6 | 1 | 1 |
| banks | 36 | 7 | 1 | 0 |
| export_transactions | 294805 | 6 | 0 | 0 |
| export_wallets | 22648 | 2 | 1 | 0 |
| girls_balances | 79 | 10 | 0 | 0 |
| mastercard_payments | 40 | 7 | 1 | 0 |
| money_transfers | 301617 | 8 | 1 | 0 |
| payment | 31847 | 12 | 1 | 0 |
| payouts | 0 | 10 | 1 | 0 |
| system_wallets | 10 | 10 | 1 | 0 |
| tax_inovices | 0 | 9 | 1 | 0 |
| transaction_issues | 125 | 6 | 1 | 0 |
| transactions | 5819051 | 15 | 1 | 2 |
| value_added_taxes | 0 | 4 | 1 | 0 |
| wallets | 419549 | 11 | 1 | 0 |
| wallets_reports | 0 | 9 | 1 | 0 |
Foreign Key Relationship Inventory
| Table | Column | Referenced Table | Referenced Column |
|---|---|---|---|
| bank_accounts | bank_id | banks | id |
| block_products | guardian_id | users | id |
| block_products | product_id | products | id |
| block_products | student_id | users | id |
| carts | guardian_id | users | id |
| carts | product_id | products | id |
| carts | seller_id | users | id |
| carts | store_id | stores | id |
| carts | student_id | users | id |
| cities | region_id | regions | id |
| classrooms | educational_level_id | educational_levels | id |
| company_free_package_statistics | company_id | companies | id |
| company_insights_statistecs | company_id | companies | id |
| company_packages_staffs | package_id | company_packages | id |
| company_packages_staffs | user_id | users | id |
| company_page_visibility | company_id | companies | id |
| deposit_orders | order_id | orders | id |
| educational_levels | school_id | schools | id |
| educational_offices | educational_administration_id | educational_administrations | id |
| favourites | seller_id | users | id |
| free_packages | company_id | companies | id |
| free_packages | supplier_store_id | supplier_stores | id |
| free_subscription_orders | creator_id | users | id |
| free_subscription_orders | free_subscriptions_id | free_subscriptions | id |
| free_subscription_orders | seller_id | users | id |
| free_subscription_orders | stores_id | stores | id |
| free_subscription_orders | student_id | users | id |
| free_subscription_orders_details | order_id | free_subscription_orders | id |
| free_subscription_orders_details | seller_id | users | id |
| free_subscription_orders_details | student_id | users | id |
| free_subscriptions | free_packages_id | free_packages | id |
| free_subscriptions | school_id | schools | id |
| free_subscriptions | stores_id | stores | id |
| group_notes | group_id | groups | id |
| group_notes | user_id | users | id |
| group_school | group_id | groups | id |
| group_school | school_id | schools | id |
| invoices | company_id | companies | id |
| invoices | order_id | orders | id |
| invoices | store_id | stores | id |
| maqsafy_product_order_items | maqsafy_product_id | maqsafy_products | id |
| maqsafy_product_order_items | maqsafy_product_order_id | maqsafy_product_orders | id |
| maqsafy_product_orders | school_id | schools | id |
| maqsafy_school_products | maqsafy_products_id | maqsafy_products | id |
| maqsafy_school_products | school_id | schools | id |
| model_has_permissions | permission_id | permissions | id |
| model_has_roles | role_id | roles | id |
| nfc_codes | userable_id | userables | id |
| nfc_users | nfc_code_id | nfc_codes | id |
| nfc_users | school_id | schools | id |
| nfc_users | student_id | users | id |
| nfc_users | userable_id | userables | id |
| order_items | order_id | orders | id |
| order_items | product_id | products | id |
| order_items | student_id | users | id |
| order_vending_details | order_id | orders | id |
| order_vending_details | vending_machine_id | vending_machines | id |
| orders | classroom_id | classrooms | id |
| orders | educational_level_id | educational_levels | id |
| orders | guardian_id | users | id |
| orders | seller_id | users | id |
| orders | store_id | stores | id |
| orders | student_id | users | id |
| package_landings | user_landing_id | user_landings | id |
| product_packages | company_id | companies | id |
| product_packages_products | product_id | products | id |
| product_packages_products | product_package_id | product_packages | id |
| products | category_id | product_categories | id |
| products | company_id | companies | id |
| products | store_id | stores | id |
| products_info | category_id | product_categories | id |
| rates | store_id | stores | id |
| return_carts | guardian_id | users | id |
| return_carts | order_id | orders | id |
| return_carts | order_item_id | order_items | id |
| return_carts | product_id | products | id |
| return_carts | seller_id | users | id |
| return_carts | student_id | users | id |
| return_invoices | company_id | companies | id |
| return_invoices | order_id | orders | id |
| return_invoices | return_order_id | return_orders | id |
| return_invoices | store_id | stores | id |
| return_order_items | order_item_id | order_items | id |
| return_order_items | product_id | products | id |
| return_order_items | return_order_id | return_orders | id |
| return_order_items | student_id | users | id |
| return_orders | guardian_id | users | id |
| return_orders | order_id | orders | id |
| return_orders | seller_id | users | id |
| return_orders | store_id | stores | id |
| return_orders | student_id | users | id |
| role_has_permissions | permission_id | permissions | id |
| role_has_permissions | role_id | roles | id |
| roles | school_id | schools | id |
| school_fee_classroom | classroom_id | classrooms | id |
| school_fee_classroom | school_fee_id | school_fees | id |
| school_fee_educational_level | educational_level_id | educational_levels | id |
| school_fee_educational_level | school_fee_id | school_fees | id |
| school_fee_full_installment_payments | school_fee_id | school_fees | id |
| school_fee_installment_upfront_payments | school_fee_id | school_fees | id |
| school_fee_logs | created_id | users | id |
| school_fee_logs | student_school_fee_log_id | student_school_fee_logs | id |
| school_fee_order_type_program_dates | school_fee_order_type_program_id | school_fee_order_type_programs | id |
| school_fee_order_type_program_educational_levels | educational_level_id | educational_levels | id |
| school_fee_order_type_program_educational_levels | school_fee_order_type_program_id | school_fee_order_type_programs | id |
| school_fee_order_type_programs | school_fee_order_type_id | school_fee_order_types | id |
| school_fee_order_types | commission_package_id | service_provider_commission_packages | id |
| school_fee_order_types | service_provider_company_id | service_provider_companies | id |
| school_fee_order_types_staff | school_fee_order_type_id | school_fee_order_types | id |
| school_fee_order_types_staff | user_id | users | id |
| school_fee_orders | program_id | school_fee_order_type_programs | id |
| school_fee_student | school_fee_id | school_fees | id |
| school_fee_student | student_id | users | id |
| school_fee_upfront_payments | school_fee_id | school_fees | id |
| school_fees | school_id | schools | id |
| school_fees_discount_reasons | discount_reason_id | discount_reasons | id |
| school_fees_discount_reasons | school_fee_id | school_fees | id |
| school_landings | user_landing_id | user_landings | id |
| school_managers | school_id | schools | id |
| school_mobile_messages | manager_id | users | id |
| school_mobile_messages | school_id | schools | id |
| school_notification_classrooms | classroom_id | classrooms | id |
| school_notification_classrooms | educational_level_id | educational_levels | id |
| school_notification_classrooms | notification_setting_id | school_notification_settings | id |
| school_notification_settings | school_id | schools | id |
| school_notification_users | school_notification_setting_id | school_notification_settings | id |
| school_number_users_log | school_id | schools | id |
| school_number_users_log | student_id | users | id |
| school_page_visibility | school_id | schools | id |
| school_push_notification_packages | push_notification_id | push_notification_packages | id |
| school_push_notification_packages | school_id | schools | id |
| schools | city_id | cities | id |
| schools | educational_administration_id | educational_administrations | id |
| schools | maqsafy_product_commission_package_id | maqsafy_product_commission_packages | id |
| schools | office_id | educational_offices | id |
| schools | region_id | regions | id |
| service_provider_company_page_visibility | company_id | service_provider_companies | id |
| stock_logs | product_id | products | id |
| stock_logs | store_id | stores | id |
| stock_logs | store_stock_id | store_stocks | id |
| store_landings | user_landing_id | user_landings | id |
| store_statistics | product_id | products | id |
| store_statistics | store_id | stores | id |
| store_stocks | product_id | products | id |
| store_stocks | store_id | stores | id |
| stores | commission_package_id | commission_packages | id |
| stores | company_id | companies | id |
| stores | educational_administration_id | educational_administrations | id |
| stores | office_id | educational_offices | id |
| stores | product_package_id | product_packages | id |
| stores | school_id | schools | id |
| stores | soft_pos_id | soft_pos | id |
| student_guardian | guardian_id | users | id |
| student_guardian | student_id | users | id |
| student_school_fee_logs | student_school_fee_id | student_school_fees | id |
| student_school_fees | discount_reason_id | discount_reasons | id |
| student_school_fees | school_fee_id | school_fees | id |
| student_school_fees | school_id | schools | id |
| student_school_fees | student_id | users | id |
| supervisory_agencies_stores | store_id | stores | id |
| supervisory_agencies_stores | supervisory_agency_id | supervisory_agencies | id |
| supervisory_agency_page_visibility | supervisory_agency_id | supervisory_agencies | id |
| supplier_carts | store_id | stores | id |
| supplier_carts | supplier_product_id | supplier_products | id |
| supplier_categories | supplier_store_id | supplier_stores | id |
| supplier_landings | user_landing_id | user_landings | id |
| supplier_order_items | supplier_order_id | supplier_orders | id |
| supplier_order_items | supplier_product_id | supplier_products | id |
| supplier_orders | supplier_id | users | id |
| supplier_orders | supplier_store_id | supplier_stores | id |
| supplier_products | category_id | supplier_categories | id |
| supplier_products | supplier_store_id | supplier_stores | id |
| supplier_store_classification | supplier_classification_id | supplier_classifications | id |
| supplier_store_classification | supplier_store_id | supplier_stores | id |
| supplier_store_supplier_employee | supplier_id | users | id |
| supplier_store_supplier_employee | supplier_store_id | supplier_stores | id |
| supplier_stores_cities | city_id | cities | id |
| supplier_stores_cities | supplier_store_id | supplier_stores | id |
| supplier_stores_page_visibility | supplier_stores_id | supplier_stores | id |
| top_sale | product_id | products | id |
| top_sale | store_id | stores | id |
| transactions | parent_id | transactions | id |
| transactions | wallet_id | wallets | id |
| trips | driver_id | users | id |
| trips | supplier_order_id | supplier_orders | id |
| user_notification_targets | user_notification_id | user_notifications | id |
| users | classroom_id | classrooms | id |
| users | company_id | companies | id |
| users | created_by | users | id |
| users | educational_administration_id | educational_administrations | id |
| users | educational_level_id | educational_levels | id |
| users | office_id | educational_offices | id |
| users | school_id | schools | id |
| users | supervisory_agency_id | supervisory_agencies | id |
| users | supplier_store_id | supplier_stores | id |
| vending_machines | company_id | companies | id |
| vending_machines | store_id | stores | id |
Key Data Model Observations
- The model contains multiple major domains: identity, schools, products, orders, wallet/finance, supplier/company, notifications, credentials/NFC, and operational/system tables.
- The schema includes explicit foreign key relationships for many core tables, but a full application-level relationship review is still required because some Laravel models may define relationships not enforced as database foreign keys.
- Credential/NFC-related tables exist, including
nfc_codes,nfc_users,copy_nfc_codes, andcard_import. This supports documenting credential inventory boundaries separately from dashboard NFC scanning. - High-volume tables should receive separate performance review:
transactions,order_items,products,orders,wallets, and free subscription order tables.
Open Items
| Item | Status | Notes |
|---|---|---|
| Confirm model relationships from Laravel code | Partial | Database foreign keys extracted; Eloquent relations still need code review. |
| Confirm sensitive columns | Open | Requires privacy/security review. |
| Confirm table owners by module | Partial | Can be mapped from module names and route definitions. |
| Confirm archival strategy for high-volume tables | Open | Required for performance and retention. |