38471-vm/db/schema.sql
2026-02-21 10:07:29 +00:00

1044 lines
40 KiB
SQL

/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: 127.0.0.1 Database: app_38471
-- ------------------------------------------------------
-- Server version 10.11.14-MariaDB-0+deb12u2
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `acc_accounts`
--
DROP TABLE IF EXISTS `acc_accounts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `acc_accounts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(20) NOT NULL,
`name_en` varchar(100) NOT NULL,
`name_ar` varchar(100) NOT NULL,
`type` enum('asset','liability','equity','revenue','expense') NOT NULL,
`parent_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`),
KEY `parent_id` (`parent_id`),
CONSTRAINT `acc_accounts_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `acc_accounts` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `acc_journal_entries`
--
DROP TABLE IF EXISTS `acc_journal_entries`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `acc_journal_entries` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`entry_date` date NOT NULL,
`description` text DEFAULT NULL,
`reference` varchar(100) DEFAULT NULL,
`source_type` varchar(50) DEFAULT NULL,
`source_id` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=136 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `acc_ledger`
--
DROP TABLE IF EXISTS `acc_ledger`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `acc_ledger` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`journal_entry_id` int(11) NOT NULL,
`account_id` int(11) NOT NULL,
`debit` decimal(15,3) DEFAULT 0.000,
`credit` decimal(15,3) DEFAULT 0.000,
PRIMARY KEY (`id`),
KEY `journal_entry_id` (`journal_entry_id`),
KEY `account_id` (`account_id`),
CONSTRAINT `acc_ledger_ibfk_1` FOREIGN KEY (`journal_entry_id`) REFERENCES `acc_journal_entries` (`id`) ON DELETE CASCADE,
CONSTRAINT `acc_ledger_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `acc_accounts` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=409 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `activations`
--
DROP TABLE IF EXISTS `activations`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `activations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`license_id` int(11) NOT NULL,
`fingerprint` varchar(255) NOT NULL,
`domain` varchar(255) DEFAULT NULL,
`product` varchar(255) DEFAULT NULL,
`activated_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `license_id` (`license_id`,`fingerprint`),
CONSTRAINT `activations_ibfk_1` FOREIGN KEY (`license_id`) REFERENCES `licenses` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `cash_registers`
--
DROP TABLE IF EXISTS `cash_registers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `cash_registers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`status` enum('active','inactive') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `customers`
--
DROP TABLE IF EXISTS `customers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `customers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
`phone` varchar(50) DEFAULT NULL,
`tax_id` varchar(50) DEFAULT NULL,
`balance` decimal(15,3) DEFAULT 0.000,
`credit_limit` decimal(15,3) DEFAULT 0.000,
`created_at` timestamp NULL DEFAULT current_timestamp(),
`loyalty_points` decimal(15,3) DEFAULT 0.000,
`loyalty_tier` enum('bronze','silver','gold') DEFAULT 'bronze',
`total_spent` decimal(15,3) DEFAULT 0.000,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `discount_codes`
--
DROP TABLE IF EXISTS `discount_codes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `discount_codes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(50) NOT NULL,
`type` enum('percentage','fixed') NOT NULL DEFAULT 'percentage',
`value` decimal(15,3) NOT NULL,
`min_purchase` decimal(15,3) DEFAULT 0.000,
`expiry_date` date DEFAULT NULL,
`status` enum('active','inactive') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `expense_categories`
--
DROP TABLE IF EXISTS `expense_categories`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `expense_categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_en` varchar(255) NOT NULL,
`name_ar` varchar(255) NOT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `expenses`
--
DROP TABLE IF EXISTS `expenses`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `expenses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category_id` int(11) NOT NULL,
`amount` decimal(10,3) NOT NULL,
`expense_date` date NOT NULL,
`description` text DEFAULT NULL,
`reference_no` varchar(50) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `category_id` (`category_id`),
CONSTRAINT `expenses_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `expense_categories` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `hr_attendance`
--
DROP TABLE IF EXISTS `hr_attendance`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `hr_attendance` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`employee_id` int(11) NOT NULL,
`attendance_date` date NOT NULL,
`clock_in` time DEFAULT NULL,
`clock_out` time DEFAULT NULL,
`status` enum('present','absent','on_leave') DEFAULT 'present',
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `employee_id` (`employee_id`,`attendance_date`),
CONSTRAINT `hr_attendance_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `hr_employees` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `hr_biometric_devices`
--
DROP TABLE IF EXISTS `hr_biometric_devices`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `hr_biometric_devices` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`device_name` varchar(100) NOT NULL,
`ip_address` varchar(50) NOT NULL,
`port` int(11) DEFAULT 4370,
`io_address` varchar(100) DEFAULT NULL,
`serial_number` varchar(100) DEFAULT NULL,
`status` enum('active','inactive') DEFAULT 'active',
`last_sync` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `hr_biometric_logs`
--
DROP TABLE IF EXISTS `hr_biometric_logs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `hr_biometric_logs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`biometric_id` varchar(50) NOT NULL,
`device_id` int(11) DEFAULT NULL,
`employee_id` int(11) DEFAULT NULL,
`timestamp` datetime NOT NULL,
`type` enum('check_in','check_out','unknown') DEFAULT 'unknown',
`processed` tinyint(1) DEFAULT 0,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `employee_id` (`employee_id`),
KEY `device_id` (`device_id`),
CONSTRAINT `hr_biometric_logs_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `hr_employees` (`id`) ON DELETE SET NULL,
CONSTRAINT `hr_biometric_logs_ibfk_2` FOREIGN KEY (`device_id`) REFERENCES `hr_biometric_devices` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `hr_departments`
--
DROP TABLE IF EXISTS `hr_departments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `hr_departments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `hr_employees`
--
DROP TABLE IF EXISTS `hr_employees`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `hr_employees` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`department_id` int(11) DEFAULT NULL,
`biometric_id` varchar(50) DEFAULT NULL,
`name` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
`position` varchar(100) DEFAULT NULL,
`salary` decimal(15,3) DEFAULT 0.000,
`joining_date` date DEFAULT NULL,
`status` enum('active','inactive') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `biometric_id` (`biometric_id`),
KEY `department_id` (`department_id`),
CONSTRAINT `hr_employees_ibfk_1` FOREIGN KEY (`department_id`) REFERENCES `hr_departments` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `hr_payroll`
--
DROP TABLE IF EXISTS `hr_payroll`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `hr_payroll` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`employee_id` int(11) NOT NULL,
`payroll_month` int(11) NOT NULL,
`payroll_year` int(11) NOT NULL,
`basic_salary` decimal(15,3) DEFAULT 0.000,
`bonus` decimal(15,3) DEFAULT 0.000,
`deductions` decimal(15,3) DEFAULT 0.000,
`net_salary` decimal(15,3) DEFAULT 0.000,
`payment_date` date DEFAULT NULL,
`status` enum('pending','paid') DEFAULT 'pending',
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `employee_month_year` (`employee_id`,`payroll_month`,`payroll_year`),
CONSTRAINT `hr_payroll_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `hr_employees` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `invoice_items`
--
DROP TABLE IF EXISTS `invoice_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `invoice_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`invoice_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`quantity` decimal(15,2) NOT NULL,
`unit_price` decimal(15,3) DEFAULT 0.000,
`total_price` decimal(15,3) DEFAULT 0.000,
PRIMARY KEY (`id`),
KEY `invoice_id` (`invoice_id`),
KEY `item_id` (`item_id`),
CONSTRAINT `invoice_items_ibfk_1` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE CASCADE,
CONSTRAINT `invoice_items_ibfk_2` FOREIGN KEY (`item_id`) REFERENCES `stock_items` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `invoices`
--
DROP TABLE IF EXISTS `invoices`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `invoices` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`customer_id` int(11) DEFAULT NULL,
`invoice_date` date NOT NULL,
`type` enum('sale','purchase') NOT NULL,
`payment_type` varchar(100) DEFAULT NULL,
`total_amount` decimal(15,3) DEFAULT 0.000,
`created_at` timestamp NULL DEFAULT current_timestamp(),
`vat_amount` decimal(15,3) DEFAULT 0.000,
`total_with_vat` decimal(15,3) DEFAULT 0.000,
`terms_conditions` text DEFAULT NULL,
`paid_amount` decimal(15,3) DEFAULT 0.000,
`status` enum('paid','unpaid','partially_paid') DEFAULT 'unpaid',
PRIMARY KEY (`id`),
KEY `customer_id` (`customer_id`),
CONSTRAINT `invoices_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `licenses`
--
DROP TABLE IF EXISTS `licenses`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `licenses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`license_key` varchar(255) NOT NULL,
`max_activations` int(11) DEFAULT 1,
`max_counters` int(11) DEFAULT 1,
`status` enum('active','suspended','expired') DEFAULT 'active',
`owner` varchar(255) DEFAULT NULL,
`address` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `license_key` (`license_key`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `loyalty_transactions`
--
DROP TABLE IF EXISTS `loyalty_transactions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `loyalty_transactions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`customer_id` int(11) NOT NULL,
`transaction_id` int(11) DEFAULT NULL,
`points_change` decimal(15,3) NOT NULL,
`transaction_type` enum('earned','redeemed','adjustment') NOT NULL,
`description` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `customer_id` (`customer_id`),
CONSTRAINT `loyalty_transactions_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `lpo_items`
--
DROP TABLE IF EXISTS `lpo_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `lpo_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lpo_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`quantity` decimal(15,3) NOT NULL,
`unit_price` decimal(15,3) NOT NULL,
`vat_percentage` decimal(5,2) DEFAULT 0.00,
`vat_amount` decimal(15,3) DEFAULT 0.000,
`total_amount` decimal(15,3) DEFAULT 0.000,
PRIMARY KEY (`id`),
KEY `lpo_id` (`lpo_id`),
KEY `item_id` (`item_id`),
CONSTRAINT `lpo_items_ibfk_1` FOREIGN KEY (`lpo_id`) REFERENCES `lpos` (`id`) ON DELETE CASCADE,
CONSTRAINT `lpo_items_ibfk_2` FOREIGN KEY (`item_id`) REFERENCES `stock_items` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `lpos`
--
DROP TABLE IF EXISTS `lpos`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `lpos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`supplier_id` int(11) NOT NULL,
`lpo_date` date NOT NULL,
`delivery_date` date DEFAULT NULL,
`status` enum('pending','converted','cancelled') DEFAULT 'pending',
`total_amount` decimal(15,3) DEFAULT 0.000,
`vat_amount` decimal(15,3) DEFAULT 0.000,
`total_with_vat` decimal(15,3) DEFAULT 0.000,
`terms_conditions` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `supplier_id` (`supplier_id`),
CONSTRAINT `lpos_ibfk_1` FOREIGN KEY (`supplier_id`) REFERENCES `customers` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `migrations`
--
DROP TABLE IF EXISTS `migrations`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `migrations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`migration` varchar(255) NOT NULL,
`executed_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `payment_methods`
--
DROP TABLE IF EXISTS `payment_methods`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `payment_methods` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_en` varchar(255) DEFAULT NULL,
`name_ar` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `payments`
--
DROP TABLE IF EXISTS `payments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `payments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`invoice_id` int(11) NOT NULL,
`payment_date` date NOT NULL,
`amount` decimal(15,3) DEFAULT 0.000,
`payment_method` varchar(50) DEFAULT 'Cash',
`notes` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `invoice_id` (`invoice_id`),
CONSTRAINT `payments_ibfk_1` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `pos_devices`
--
DROP TABLE IF EXISTS `pos_devices`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `pos_devices` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`device_name` varchar(100) NOT NULL,
`device_type` enum('scale','printer','display') DEFAULT 'scale',
`connection_type` enum('usb','network','serial') DEFAULT 'usb',
`ip_address` varchar(50) DEFAULT NULL,
`port` int(11) DEFAULT NULL,
`baud_rate` int(11) DEFAULT NULL,
`status` enum('active','inactive') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `pos_held_carts`
--
DROP TABLE IF EXISTS `pos_held_carts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `pos_held_carts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cart_name` varchar(100) NOT NULL,
`items_json` text NOT NULL,
`customer_id` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `customer_id` (`customer_id`),
CONSTRAINT `pos_held_carts_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `pos_items`
--
DROP TABLE IF EXISTS `pos_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `pos_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`transaction_id` int(11) NOT NULL,
`product_id` int(11) NOT NULL,
`quantity` decimal(15,3) NOT NULL,
`unit_price` decimal(15,3) NOT NULL,
`subtotal` decimal(15,3) NOT NULL,
PRIMARY KEY (`id`),
KEY `transaction_id` (`transaction_id`),
CONSTRAINT `pos_items_ibfk_1` FOREIGN KEY (`transaction_id`) REFERENCES `pos_transactions` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `pos_payments`
--
DROP TABLE IF EXISTS `pos_payments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `pos_payments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`transaction_id` int(11) NOT NULL,
`payment_method` varchar(50) NOT NULL,
`amount` decimal(15,3) NOT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `transaction_id` (`transaction_id`),
CONSTRAINT `pos_payments_ibfk_1` FOREIGN KEY (`transaction_id`) REFERENCES `pos_transactions` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `pos_transactions`
--
DROP TABLE IF EXISTS `pos_transactions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `pos_transactions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`transaction_no` varchar(50) NOT NULL,
`customer_id` int(11) DEFAULT NULL,
`total_amount` decimal(15,3) NOT NULL,
`tax_amount` decimal(15,3) DEFAULT 0.000,
`discount_code_id` int(11) DEFAULT NULL,
`discount_amount` decimal(15,3) DEFAULT 0.000,
`loyalty_points_earned` decimal(15,3) DEFAULT 0.000,
`loyalty_points_redeemed` decimal(15,3) DEFAULT 0.000,
`net_amount` decimal(15,3) NOT NULL DEFAULT 0.000,
`payment_method` varchar(100) DEFAULT NULL,
`status` enum('completed','refunded','cancelled') DEFAULT 'completed',
`created_at` timestamp NULL DEFAULT current_timestamp(),
`created_by` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `transaction_no` (`transaction_no`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `purchase_items`
--
DROP TABLE IF EXISTS `purchase_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `purchase_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`purchase_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`quantity` decimal(15,2) NOT NULL,
`unit_price` decimal(15,3) DEFAULT NULL,
`vat_amount` decimal(15,3) DEFAULT NULL,
`total_price` decimal(15,3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `purchase_payments`
--
DROP TABLE IF EXISTS `purchase_payments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `purchase_payments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`purchase_id` int(11) NOT NULL,
`payment_date` date NOT NULL,
`amount` decimal(15,3) DEFAULT NULL,
`payment_method` varchar(50) DEFAULT NULL,
`notes` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `purchase_return_items`
--
DROP TABLE IF EXISTS `purchase_return_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `purchase_return_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`return_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`quantity` decimal(15,2) NOT NULL,
`unit_price` decimal(15,3) NOT NULL,
`total_price` decimal(15,3) NOT NULL,
PRIMARY KEY (`id`),
KEY `return_id` (`return_id`),
KEY `item_id` (`item_id`),
CONSTRAINT `purchase_return_items_ibfk_1` FOREIGN KEY (`return_id`) REFERENCES `purchase_returns` (`id`) ON DELETE CASCADE,
CONSTRAINT `purchase_return_items_ibfk_2` FOREIGN KEY (`item_id`) REFERENCES `stock_items` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `purchase_returns`
--
DROP TABLE IF EXISTS `purchase_returns`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `purchase_returns` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`invoice_id` int(11) NOT NULL,
`supplier_id` int(11) DEFAULT NULL,
`return_date` date NOT NULL,
`total_amount` decimal(15,3) NOT NULL DEFAULT 0.000,
`notes` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `invoice_id` (`invoice_id`),
KEY `supplier_id` (`supplier_id`),
CONSTRAINT `purchase_returns_ibfk_1` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE CASCADE,
CONSTRAINT `purchase_returns_ibfk_2` FOREIGN KEY (`supplier_id`) REFERENCES `suppliers` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `purchases`
--
DROP TABLE IF EXISTS `purchases`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `purchases` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`supplier_id` int(11) DEFAULT NULL,
`invoice_date` date NOT NULL,
`payment_type` varchar(100) DEFAULT NULL,
`total_amount` decimal(15,3) DEFAULT NULL,
`vat_amount` decimal(15,3) DEFAULT NULL,
`total_with_vat` decimal(15,3) DEFAULT NULL,
`terms_conditions` text DEFAULT NULL,
`paid_amount` decimal(15,3) DEFAULT NULL,
`status` enum('paid','unpaid','partially_paid') DEFAULT NULL,
`register_session_id` int(11) DEFAULT NULL,
`due_date` date DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `quotation_items`
--
DROP TABLE IF EXISTS `quotation_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `quotation_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`quotation_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`quantity` decimal(15,2) NOT NULL,
`unit_price` decimal(15,3) DEFAULT 0.000,
`total_price` decimal(15,3) DEFAULT 0.000,
PRIMARY KEY (`id`),
KEY `quotation_id` (`quotation_id`),
KEY `item_id` (`item_id`),
CONSTRAINT `quotation_items_ibfk_1` FOREIGN KEY (`quotation_id`) REFERENCES `quotations` (`id`) ON DELETE CASCADE,
CONSTRAINT `quotation_items_ibfk_2` FOREIGN KEY (`item_id`) REFERENCES `stock_items` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `quotations`
--
DROP TABLE IF EXISTS `quotations`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `quotations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`customer_id` int(11) DEFAULT NULL,
`quotation_date` date NOT NULL,
`valid_until` date DEFAULT NULL,
`status` enum('pending','converted','expired','cancelled') DEFAULT 'pending',
`total_amount` decimal(15,3) DEFAULT 0.000,
`vat_amount` decimal(15,3) DEFAULT 0.000,
`total_with_vat` decimal(15,3) DEFAULT 0.000,
`terms_conditions` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `customer_id` (`customer_id`),
CONSTRAINT `quotations_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `register_sessions`
--
DROP TABLE IF EXISTS `register_sessions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `register_sessions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`register_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`opening_balance` decimal(15,3) NOT NULL,
`closing_balance` decimal(15,3) DEFAULT NULL,
`cash_in_hand` decimal(15,3) DEFAULT NULL,
`opened_at` timestamp NULL DEFAULT current_timestamp(),
`closed_at` timestamp NULL DEFAULT NULL,
`status` enum('open','closed') DEFAULT 'open',
`notes` text DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `role_groups`
--
DROP TABLE IF EXISTS `role_groups`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `role_groups` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`permissions` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `role_permissions`
--
DROP TABLE IF EXISTS `role_permissions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `role_permissions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`role_id` int(11) NOT NULL,
`permission` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `role_id` (`role_id`,`permission`),
CONSTRAINT `role_permissions_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `role_groups` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=218 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `sales_return_items`
--
DROP TABLE IF EXISTS `sales_return_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `sales_return_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`return_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`quantity` decimal(15,2) NOT NULL,
`unit_price` decimal(15,3) NOT NULL,
`total_price` decimal(15,3) NOT NULL,
PRIMARY KEY (`id`),
KEY `return_id` (`return_id`),
KEY `item_id` (`item_id`),
CONSTRAINT `sales_return_items_ibfk_1` FOREIGN KEY (`return_id`) REFERENCES `sales_returns` (`id`) ON DELETE CASCADE,
CONSTRAINT `sales_return_items_ibfk_2` FOREIGN KEY (`item_id`) REFERENCES `stock_items` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `sales_returns`
--
DROP TABLE IF EXISTS `sales_returns`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `sales_returns` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`invoice_id` int(11) NOT NULL,
`customer_id` int(11) DEFAULT NULL,
`return_date` date NOT NULL,
`total_amount` decimal(15,3) NOT NULL DEFAULT 0.000,
`notes` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `invoice_id` (`invoice_id`),
KEY `customer_id` (`customer_id`),
CONSTRAINT `sales_returns_ibfk_1` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE CASCADE,
CONSTRAINT `sales_returns_ibfk_2` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `settings`
--
DROP TABLE IF EXISTS `settings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `settings` (
`key` varchar(50) NOT NULL,
`value` text DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stock_categories`
--
DROP TABLE IF EXISTS `stock_categories`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stock_categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_en` varchar(255) NOT NULL,
`name_ar` varchar(255) NOT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stock_items`
--
DROP TABLE IF EXISTS `stock_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stock_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category_id` int(11) DEFAULT NULL,
`unit_id` int(11) DEFAULT NULL,
`supplier_id` int(11) DEFAULT NULL,
`name_en` varchar(255) NOT NULL,
`name_ar` varchar(255) NOT NULL,
`sku` varchar(100) DEFAULT NULL,
`purchase_price` decimal(15,3) DEFAULT 0.000,
`sale_price` decimal(15,3) DEFAULT 0.000,
`stock_quantity` decimal(15,2) DEFAULT 0.00,
`min_stock_level` decimal(15,2) DEFAULT 0.00,
`expiry_date` date DEFAULT NULL,
`image_path` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
`vat_rate` decimal(5,2) DEFAULT 0.00,
`is_promotion` tinyint(1) DEFAULT 0,
`promotion_start` date DEFAULT NULL,
`promotion_end` date DEFAULT NULL,
`promotion_percent` decimal(5,2) DEFAULT 0.00,
PRIMARY KEY (`id`),
UNIQUE KEY `sku` (`sku`),
KEY `category_id` (`category_id`),
KEY `unit_id` (`unit_id`),
KEY `fk_stock_items_supplier` (`supplier_id`),
CONSTRAINT `fk_stock_items_supplier` FOREIGN KEY (`supplier_id`) REFERENCES `suppliers` (`id`) ON DELETE SET NULL,
CONSTRAINT `stock_items_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `stock_categories` (`id`) ON DELETE SET NULL,
CONSTRAINT `stock_items_ibfk_2` FOREIGN KEY (`unit_id`) REFERENCES `stock_units` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stock_units`
--
DROP TABLE IF EXISTS `stock_units`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stock_units` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_en` varchar(255) NOT NULL,
`name_ar` varchar(255) NOT NULL,
`short_name_en` varchar(50) NOT NULL,
`short_name_ar` varchar(50) NOT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `suppliers`
--
DROP TABLE IF EXISTS `suppliers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `suppliers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
`phone` varchar(50) DEFAULT NULL,
`tax_id` varchar(50) DEFAULT NULL,
`balance` decimal(15,3) DEFAULT NULL,
`credit_limit` decimal(15,3) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
`total_spent` decimal(15,3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `system_license`
--
DROP TABLE IF EXISTS `system_license`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `system_license` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`license_key` varchar(255) NOT NULL,
`activation_token` text DEFAULT NULL,
`fingerprint` varchar(255) DEFAULT NULL,
`status` enum('pending','active','expired','suspended','trial') DEFAULT 'pending',
`activated_at` datetime DEFAULT NULL,
`last_checked_at` datetime DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
`trial_started_at` datetime DEFAULT NULL,
`allowed_activations` int(11) DEFAULT 1,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `users`
--
DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`group_id` int(11) DEFAULT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
`profile_pic` varchar(255) DEFAULT NULL,
`theme` varchar(20) DEFAULT 'default',
`status` enum('active','inactive') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
KEY `group_id` (`group_id`),
CONSTRAINT `users_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `role_groups` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2026-02-21 10:01:19