Files
itflow/db.sql
johnnyq 2a5533ea2b Roles stage 3: roles and agents in the API and Admin > API Keys rebuilt; new api/v1/roles/read.php where an admin key reads every role with its level per module and agent count, archived on request, and any other key reads only its own user's role, and new api/v1/technicians/read.php listing agents with their role under Support at Read; API role refusals now say what the call needs and what the key's user has, naming the module, level and role, and technicians/time.php needs Read instead of Modify; Admin > API Keys shows each key's agent and role, what it can open and for which clients, whether it works (works until, expires in N days, expired, or won't work with the reason when its agent is disabled, archived, has no role or is missing) and when it was last used, with search by key or agent name; New and Edit windows show the picked agent's access as they are picked and offer only active agents, Create before ticking the copied box opens the Key tab, new keys default to a year and must end after today, and an expired key can be renamed and stay expired; handlers moved to functions/api_keys.php with validation, escaped messages and audit entries naming the agent and what an edit changed, fixing empty names on revoke, delete and bulk delete, a backslash shown for apostrophes in names, the bulk count of keys ticked rather than deleted, keys created already expired and expired keys that could not be renamed; database 3.1.7 adds api_keys.api_key_last_used_at, set at most once a minute in the configured timezone; changelog updated
2026-10-17 21:10:48 -04:00

3805 lines
164 KiB
SQL

/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.18-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: localhost Database: itflow_dev
-- ------------------------------------------------------
-- Server version 10.11.18-MariaDB-0+deb12u1
/*!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 `account_reconciliations`
--
DROP TABLE IF EXISTS `account_reconciliations`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `account_reconciliations` (
`reconciliation_id` int(11) NOT NULL AUTO_INCREMENT,
`reconciliation_account_id` int(11) NOT NULL,
`reconciliation_statement_date` date NOT NULL,
`reconciliation_starting_balance` decimal(15,2) NOT NULL DEFAULT 0.00,
`reconciliation_ending_balance` decimal(15,2) NOT NULL DEFAULT 0.00,
`reconciliation_notes` varchar(250) DEFAULT NULL,
`reconciliation_opening` tinyint(1) NOT NULL DEFAULT 0,
`reconciliation_adjustment` decimal(15,2) NOT NULL DEFAULT 0.00,
`reconciliation_created_by` int(11) NOT NULL DEFAULT 0,
`reconciliation_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`reconciliation_finished_by` int(11) NOT NULL DEFAULT 0,
`reconciliation_finished_at` datetime DEFAULT NULL,
PRIMARY KEY (`reconciliation_id`),
KEY `reconciliation_account_id` (`reconciliation_account_id`,`reconciliation_statement_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `accounts`
--
DROP TABLE IF EXISTS `accounts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `accounts` (
`account_id` int(11) NOT NULL AUTO_INCREMENT,
`account_name` varchar(200) NOT NULL,
`account_description` varchar(250) DEFAULT NULL,
`opening_balance` decimal(15,2) NOT NULL DEFAULT 0.00,
`account_currency_code` varchar(200) NOT NULL,
`account_notes` text DEFAULT NULL,
`account_import_map` text DEFAULT NULL,
`account_type` int(6) DEFAULT NULL,
`account_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`account_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`account_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`account_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ai_models`
--
DROP TABLE IF EXISTS `ai_models`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ai_models` (
`ai_model_id` int(11) NOT NULL AUTO_INCREMENT,
`ai_model_name` varchar(200) NOT NULL,
`ai_model_prompt` text DEFAULT NULL,
`ai_model_use_case` varchar(200) DEFAULT NULL,
`ai_model_temperature` decimal(3,2) DEFAULT NULL,
`ai_model_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`ai_model_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`ai_model_ai_provider_id` int(11) NOT NULL,
PRIMARY KEY (`ai_model_id`),
KEY `ai_model_ai_provider_id` (`ai_model_ai_provider_id`),
CONSTRAINT `ai_models_ibfk_1` FOREIGN KEY (`ai_model_ai_provider_id`) REFERENCES `ai_providers` (`ai_provider_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ai_providers`
--
DROP TABLE IF EXISTS `ai_providers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ai_providers` (
`ai_provider_id` int(11) NOT NULL AUTO_INCREMENT,
`ai_provider_name` varchar(200) NOT NULL,
`ai_provider_api_url` varchar(200) NOT NULL,
`ai_provider_api_key` varchar(200) DEFAULT NULL,
`ai_provider_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`ai_provider_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (`ai_provider_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `api_keys`
--
DROP TABLE IF EXISTS `api_keys`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `api_keys` (
`api_key_id` int(11) NOT NULL AUTO_INCREMENT,
`api_key_name` varchar(255) NOT NULL,
`api_key_secret` varchar(255) NOT NULL,
`api_key_decrypt_hash` varchar(200) NOT NULL,
`api_key_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`api_key_expire` date NOT NULL,
`api_key_user_id` int(11) NOT NULL DEFAULT 0,
`api_key_last_used_at` datetime DEFAULT NULL,
PRIMARY KEY (`api_key_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `app_logs`
--
DROP TABLE IF EXISTS `app_logs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `app_logs` (
`app_log_id` int(11) NOT NULL AUTO_INCREMENT,
`app_log_category` varchar(200) DEFAULT NULL,
`app_log_type` enum('info','warning','error','debug') NOT NULL DEFAULT 'info',
`app_log_details` varchar(1000) DEFAULT NULL,
`app_log_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`app_log_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `asset_credentials`
--
DROP TABLE IF EXISTS `asset_credentials`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_credentials` (
`credential_id` int(11) NOT NULL,
`asset_id` int(11) NOT NULL,
PRIMARY KEY (`credential_id`,`asset_id`),
KEY `asset_id` (`asset_id`),
CONSTRAINT `asset_credentials_ibfk_1` FOREIGN KEY (`credential_id`) REFERENCES `credentials` (`credential_id`) ON DELETE CASCADE,
CONSTRAINT `asset_credentials_ibfk_2` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `asset_custom`
--
DROP TABLE IF EXISTS `asset_custom`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_custom` (
`asset_custom_id` int(11) NOT NULL AUTO_INCREMENT,
`asset_custom_field_value` int(11) NOT NULL,
`asset_custom_field_id` int(11) NOT NULL,
`asset_custom_asset_id` int(11) NOT NULL,
PRIMARY KEY (`asset_custom_id`),
KEY `asset_custom_asset_id` (`asset_custom_asset_id`),
CONSTRAINT `asset_custom_ibfk_1` FOREIGN KEY (`asset_custom_asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `asset_documents`
--
DROP TABLE IF EXISTS `asset_documents`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_documents` (
`asset_id` int(11) NOT NULL,
`document_id` int(11) NOT NULL,
PRIMARY KEY (`asset_id`,`document_id`),
KEY `document_id` (`document_id`),
CONSTRAINT `asset_documents_ibfk_1` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE,
CONSTRAINT `asset_documents_ibfk_2` FOREIGN KEY (`document_id`) REFERENCES `documents` (`document_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `asset_files`
--
DROP TABLE IF EXISTS `asset_files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_files` (
`asset_id` int(11) NOT NULL,
`file_id` int(11) NOT NULL,
PRIMARY KEY (`asset_id`,`file_id`),
KEY `file_id` (`file_id`),
CONSTRAINT `asset_files_ibfk_1` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE,
CONSTRAINT `asset_files_ibfk_2` FOREIGN KEY (`file_id`) REFERENCES `files` (`file_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `asset_history`
--
DROP TABLE IF EXISTS `asset_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_history` (
`asset_history_id` int(11) NOT NULL AUTO_INCREMENT,
`asset_history_status` varchar(200) NOT NULL,
`asset_history_description` varchar(255) NOT NULL,
`asset_history_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`asset_history_asset_id` int(11) NOT NULL,
PRIMARY KEY (`asset_history_id`),
KEY `asset_history_asset_id` (`asset_history_asset_id`),
CONSTRAINT `asset_history_ibfk_1` FOREIGN KEY (`asset_history_asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `asset_interface_links`
--
DROP TABLE IF EXISTS `asset_interface_links`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_interface_links` (
`interface_link_id` int(11) NOT NULL AUTO_INCREMENT,
`interface_a_id` int(11) NOT NULL,
`interface_b_id` int(11) NOT NULL,
`interface_link_type` varchar(100) DEFAULT NULL,
`interface_link_status` varchar(50) DEFAULT NULL,
`interface_link_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`interface_link_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (`interface_link_id`),
KEY `fk_interface_a` (`interface_a_id`),
KEY `fk_interface_b` (`interface_b_id`),
CONSTRAINT `fk_interface_a` FOREIGN KEY (`interface_a_id`) REFERENCES `asset_interfaces` (`interface_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_interface_b` FOREIGN KEY (`interface_b_id`) REFERENCES `asset_interfaces` (`interface_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `asset_interfaces`
--
DROP TABLE IF EXISTS `asset_interfaces`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_interfaces` (
`interface_id` int(11) NOT NULL AUTO_INCREMENT,
`interface_name` varchar(200) NOT NULL,
`interface_description` varchar(200) DEFAULT NULL,
`interface_type` varchar(50) DEFAULT NULL,
`interface_mac` varchar(200) DEFAULT NULL,
`interface_ip` varchar(200) DEFAULT NULL,
`interface_nat_ip` varchar(200) DEFAULT NULL,
`interface_ipv6` varchar(200) DEFAULT NULL,
`interface_vlans` varchar(200) DEFAULT NULL,
`interface_notes` text DEFAULT NULL,
`interface_primary` tinyint(1) DEFAULT 0,
`interface_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`interface_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`interface_archived_at` datetime DEFAULT NULL,
`interface_network_id` int(11) DEFAULT NULL,
`interface_asset_id` int(11) NOT NULL,
PRIMARY KEY (`interface_id`),
KEY `interface_asset_id` (`interface_asset_id`),
KEY `interface_network_id` (`interface_network_id`),
CONSTRAINT `asset_interfaces_ibfk_1` FOREIGN KEY (`interface_asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `asset_notes`
--
DROP TABLE IF EXISTS `asset_notes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_notes` (
`asset_note_id` int(11) NOT NULL AUTO_INCREMENT,
`asset_note_type` varchar(200) NOT NULL,
`asset_note` text DEFAULT NULL,
`asset_note_created_by` int(11) NOT NULL,
`asset_note_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`asset_note_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`asset_note_archived_at` datetime DEFAULT NULL,
`asset_note_asset_id` int(11) NOT NULL,
PRIMARY KEY (`asset_note_id`),
KEY `asset_note_asset_id` (`asset_note_asset_id`),
CONSTRAINT `asset_notes_ibfk_1` FOREIGN KEY (`asset_note_asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `asset_tags`
--
DROP TABLE IF EXISTS `asset_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_tags` (
`asset_tag_asset_id` int(11) NOT NULL,
`asset_tag_tag_id` int(11) NOT NULL,
PRIMARY KEY (`asset_tag_asset_id`,`asset_tag_tag_id`),
KEY `fk_tag` (`asset_tag_tag_id`),
CONSTRAINT `fk_asset` FOREIGN KEY (`asset_tag_asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE,
CONSTRAINT `fk_tag` FOREIGN KEY (`asset_tag_tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assets`
--
DROP TABLE IF EXISTS `assets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assets` (
`asset_id` int(11) NOT NULL AUTO_INCREMENT,
`asset_type` varchar(200) NOT NULL,
`asset_name` varchar(200) NOT NULL,
`asset_description` varchar(255) DEFAULT NULL,
`asset_make` varchar(200) NOT NULL,
`asset_model` varchar(200) DEFAULT NULL,
`asset_serial` varchar(200) DEFAULT NULL,
`asset_os` varchar(200) DEFAULT NULL,
`asset_uri` varchar(500) DEFAULT NULL,
`asset_uri_2` varchar(500) DEFAULT NULL,
`asset_uri_client` varchar(500) DEFAULT NULL,
`asset_status` varchar(200) DEFAULT NULL,
`asset_purchase_reference` varchar(200) DEFAULT NULL,
`asset_purchase_date` date DEFAULT NULL,
`asset_warranty_expire` date DEFAULT NULL,
`asset_install_date` date DEFAULT NULL,
`asset_photo` varchar(200) DEFAULT NULL,
`asset_physical_location` varchar(200) DEFAULT NULL,
`asset_notes` text DEFAULT NULL,
`asset_favorite` tinyint(1) NOT NULL DEFAULT 0,
`asset_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`asset_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`asset_archived_at` datetime DEFAULT NULL,
`asset_accessed_at` datetime DEFAULT NULL,
`asset_vendor_id` int(11) NOT NULL DEFAULT 0,
`asset_location_id` int(11) NOT NULL DEFAULT 0,
`asset_contact_id` int(11) NOT NULL DEFAULT 0,
`asset_client_id` int(11) NOT NULL DEFAULT 0,
`asset_product_id` int(11) NOT NULL DEFAULT 0,
`asset_invoice_id` int(11) NOT NULL DEFAULT 0,
`asset_invoice_item_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`asset_id`),
KEY `asset_client_id` (`asset_client_id`,`asset_archived_at`),
KEY `asset_product_id` (`asset_product_id`),
KEY `asset_invoice_id` (`asset_invoice_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `auth_logs`
--
DROP TABLE IF EXISTS `auth_logs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `auth_logs` (
`auth_log_id` int(11) NOT NULL AUTO_INCREMENT,
`auth_log_status` tinyint(1) NOT NULL,
`auth_log_details` varchar(200) DEFAULT NULL,
`auth_log_ip` varchar(200) DEFAULT NULL,
`auth_log_user_agent` varchar(250) DEFAULT NULL,
`auth_log_user_id` int(11) NOT NULL DEFAULT 0,
`auth_log_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`auth_log_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `backups`
--
DROP TABLE IF EXISTS `backups`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `backups` (
`backup_id` int(11) NOT NULL AUTO_INCREMENT,
`backup_type` varchar(20) NOT NULL DEFAULT 'full',
`backup_file_name` varchar(255) NOT NULL,
`backup_size` bigint(20) NOT NULL DEFAULT 0,
`backup_sha256` varchar(64) DEFAULT NULL,
`backup_status` varchar(20) NOT NULL DEFAULT 'Pending',
`backup_error` text DEFAULT NULL,
`backup_source` varchar(20) NOT NULL DEFAULT 'Manual',
`backup_created_by` varchar(200) DEFAULT NULL,
`backup_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`backup_completed_at` datetime DEFAULT NULL,
`backup_downloaded_at` datetime DEFAULT NULL,
PRIMARY KEY (`backup_id`),
KEY `backup_status_created` (`backup_status`,`backup_created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `budget`
--
DROP TABLE IF EXISTS `budget`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `budget` (
`budget_id` int(11) NOT NULL AUTO_INCREMENT,
`budget_month` tinyint(4) NOT NULL,
`budget_year` int(11) NOT NULL,
`budget_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`budget_description` varchar(255) DEFAULT NULL,
`budget_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`budget_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`budget_category_id` int(11) NOT NULL,
PRIMARY KEY (`budget_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `business_holidays`
--
DROP TABLE IF EXISTS `business_holidays`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `business_holidays` (
`holiday_id` int(11) NOT NULL AUTO_INCREMENT,
`holiday_date` date NOT NULL,
`holiday_name` varchar(200) NOT NULL,
`holiday_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`holiday_id`),
UNIQUE KEY `holiday_date` (`holiday_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `calendar_event_attendees`
--
DROP TABLE IF EXISTS `calendar_event_attendees`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `calendar_event_attendees` (
`attendee_id` int(11) NOT NULL AUTO_INCREMENT,
`attendee_name` varchar(200) DEFAULT NULL,
`attendee_email` varchar(200) DEFAULT NULL,
`attendee_invitation_status` tinyint(1) NOT NULL DEFAULT 0,
`attendee_invited_at` datetime DEFAULT NULL,
`attendee_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`attendee_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`attendee_archived_at` datetime DEFAULT NULL,
`attendee_contact_id` int(11) NOT NULL DEFAULT 0,
`attendee_user_id` int(11) NOT NULL DEFAULT 0,
`attendee_event_id` int(11) NOT NULL,
PRIMARY KEY (`attendee_id`),
KEY `attendee_event_id` (`attendee_event_id`),
KEY `attendee_user_id` (`attendee_user_id`),
CONSTRAINT `calendar_event_attendees_ibfk_1` FOREIGN KEY (`attendee_event_id`) REFERENCES `calendar_events` (`event_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `calendar_events`
--
DROP TABLE IF EXISTS `calendar_events`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `calendar_events` (
`event_id` int(11) NOT NULL AUTO_INCREMENT,
`event_title` varchar(200) NOT NULL,
`event_location` text DEFAULT NULL,
`event_description` longtext DEFAULT NULL,
`event_start` datetime NOT NULL,
`event_end` datetime DEFAULT NULL,
`event_all_day` tinyint(1) NOT NULL DEFAULT 0,
`event_repeat` varchar(200) DEFAULT NULL,
`event_repeat_interval` int(11) NOT NULL DEFAULT 1,
`event_repeat_until` date DEFAULT NULL,
`event_repeat_skip` text DEFAULT NULL,
`event_sequence` int(11) NOT NULL DEFAULT 0,
`event_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`event_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`event_archived_at` datetime DEFAULT NULL,
`event_created_by` int(11) NOT NULL DEFAULT 0,
`event_client_id` int(11) NOT NULL DEFAULT 0,
`event_location_id` int(11) NOT NULL DEFAULT 0,
`event_calendar_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`event_id`),
KEY `event_calendar_id` (`event_calendar_id`),
KEY `event_client_id` (`event_client_id`),
KEY `event_start` (`event_start`),
CONSTRAINT `calendar_events_ibfk_1` FOREIGN KEY (`event_calendar_id`) REFERENCES `calendars` (`calendar_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `calendars`
--
DROP TABLE IF EXISTS `calendars`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `calendars` (
`calendar_id` int(11) NOT NULL AUTO_INCREMENT,
`calendar_name` varchar(200) NOT NULL,
`calendar_color` varchar(200) NOT NULL,
`calendar_feed_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`calendar_feed_busy_only` tinyint(1) NOT NULL DEFAULT 0,
`calendar_feed_created_at` datetime DEFAULT NULL,
`calendar_feed_accessed_at` datetime DEFAULT NULL,
`calendar_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`calendar_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`calendar_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`calendar_id`),
UNIQUE KEY `calendar_feed_key` (`calendar_feed_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `canned_responses`
--
DROP TABLE IF EXISTS `canned_responses`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `canned_responses` (
`canned_response_id` int(11) NOT NULL AUTO_INCREMENT,
`canned_response_name` varchar(200) NOT NULL,
`canned_response_body` longtext DEFAULT NULL,
`canned_response_category_id` int(11) NOT NULL DEFAULT 0,
`canned_response_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`canned_response_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`canned_response_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`canned_response_id`),
KEY `canned_response_category_id` (`canned_response_category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `categories`
--
DROP TABLE IF EXISTS `categories`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `categories` (
`category_id` int(11) NOT NULL AUTO_INCREMENT,
`category_name` varchar(200) NOT NULL,
`category_description` varchar(255) DEFAULT NULL,
`category_type` varchar(200) NOT NULL,
`category_color` varchar(200) DEFAULT NULL,
`category_icon` varchar(200) DEFAULT NULL,
`category_order` int(11) NOT NULL DEFAULT 0,
`category_parent` int(11) DEFAULT 0,
`category_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`category_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`category_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `certificate_history`
--
DROP TABLE IF EXISTS `certificate_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `certificate_history` (
`certificate_history_id` int(11) NOT NULL AUTO_INCREMENT,
`certificate_history_column` varchar(200) NOT NULL,
`certificate_history_old_value` text NOT NULL,
`certificate_history_new_value` text NOT NULL,
`certificate_history_certificate_id` int(11) NOT NULL,
`certificate_history_modified_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`certificate_history_id`),
KEY `certificate_history_certificate_id` (`certificate_history_certificate_id`),
CONSTRAINT `certificate_history_ibfk_1` FOREIGN KEY (`certificate_history_certificate_id`) REFERENCES `certificates` (`certificate_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `certificates`
--
DROP TABLE IF EXISTS `certificates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `certificates` (
`certificate_id` int(11) NOT NULL AUTO_INCREMENT,
`certificate_name` varchar(200) NOT NULL,
`certificate_description` mediumtext DEFAULT NULL,
`certificate_domain` varchar(200) DEFAULT NULL,
`certificate_names` text DEFAULT NULL,
`certificate_issued_by` varchar(200) NOT NULL,
`certificate_issued_at` date DEFAULT NULL,
`certificate_expire` date DEFAULT NULL,
`certificate_public_key` mediumtext DEFAULT NULL,
`certificate_fingerprint` varchar(100) DEFAULT NULL,
`certificate_check_status` varchar(20) DEFAULT NULL,
`certificate_notes` mediumtext DEFAULT NULL,
`certificate_favorite` tinyint(1) NOT NULL DEFAULT 0,
`certificate_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`certificate_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`certificate_archived_at` datetime DEFAULT NULL,
`certificate_accessed_at` datetime DEFAULT NULL,
`certificate_checked_at` datetime DEFAULT NULL,
`certificate_domain_id` int(11) NOT NULL DEFAULT 0,
`certificate_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`certificate_id`),
KEY `certificate_client_id` (`certificate_client_id`,`certificate_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `client_notes`
--
DROP TABLE IF EXISTS `client_notes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `client_notes` (
`client_note_id` int(11) NOT NULL AUTO_INCREMENT,
`client_note_type` varchar(200) NOT NULL,
`client_note` text DEFAULT NULL,
`client_note_created_by` int(11) NOT NULL,
`client_note_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`client_note_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`client_note_archived_at` datetime DEFAULT NULL,
`client_note_client_id` int(11) NOT NULL,
PRIMARY KEY (`client_note_id`),
KEY `client_note_client_id` (`client_note_client_id`),
CONSTRAINT `client_notes_ibfk_1` FOREIGN KEY (`client_note_client_id`) REFERENCES `clients` (`client_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `client_payment_provider`
--
DROP TABLE IF EXISTS `client_payment_provider`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `client_payment_provider` (
`client_id` int(11) NOT NULL,
`payment_provider_id` int(11) NOT NULL,
`payment_provider_client` varchar(200) NOT NULL,
`client_payment_provider_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`client_id`,`payment_provider_id`),
KEY `payment_provider_id` (`payment_provider_id`),
CONSTRAINT `client_payment_provider_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `clients` (`client_id`) ON DELETE CASCADE,
CONSTRAINT `client_payment_provider_ibfk_2` FOREIGN KEY (`payment_provider_id`) REFERENCES `payment_providers` (`payment_provider_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `client_saved_payment_methods`
--
DROP TABLE IF EXISTS `client_saved_payment_methods`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `client_saved_payment_methods` (
`saved_payment_id` int(11) NOT NULL AUTO_INCREMENT,
`saved_payment_provider_method` varchar(200) NOT NULL,
`saved_payment_description` varchar(200) DEFAULT NULL,
`saved_payment_client_id` int(11) NOT NULL,
`saved_payment_provider_id` int(11) NOT NULL,
`saved_payment_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`saved_payment_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (`saved_payment_id`),
KEY `saved_payment_client_id` (`saved_payment_client_id`),
KEY `saved_payment_provider_id` (`saved_payment_provider_id`),
CONSTRAINT `client_saved_payment_methods_ibfk_1` FOREIGN KEY (`saved_payment_client_id`) REFERENCES `clients` (`client_id`) ON DELETE CASCADE,
CONSTRAINT `client_saved_payment_methods_ibfk_2` FOREIGN KEY (`saved_payment_provider_id`) REFERENCES `payment_providers` (`payment_provider_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `client_tags`
--
DROP TABLE IF EXISTS `client_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `client_tags` (
`client_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`client_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `client_tags_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `clients` (`client_id`) ON DELETE CASCADE,
CONSTRAINT `client_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `clients`
--
DROP TABLE IF EXISTS `clients`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `clients` (
`client_id` int(11) NOT NULL AUTO_INCREMENT,
`client_lead` tinyint(1) NOT NULL DEFAULT 0,
`client_name` varchar(200) NOT NULL,
`client_type` varchar(200) DEFAULT NULL,
`client_website` varchar(200) DEFAULT NULL,
`client_referral` varchar(200) DEFAULT NULL,
`client_rate` decimal(15,2) DEFAULT NULL,
`client_currency_code` varchar(200) NOT NULL,
`client_net_terms` int(10) NOT NULL,
`client_reminders` tinyint(1) NOT NULL DEFAULT 1,
`client_tax_id_number` varchar(255) DEFAULT NULL,
`client_default_tax_id` int(11) NOT NULL DEFAULT 0,
`client_tax_exempt` tinyint(1) NOT NULL DEFAULT 0,
`client_tax_exempt_number` varchar(200) DEFAULT NULL,
`client_tax_exempt_expires` date DEFAULT NULL,
`client_abbreviation` varchar(10) DEFAULT NULL,
`client_notes` text DEFAULT NULL,
`client_favorite` tinyint(1) NOT NULL DEFAULT 0,
`client_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`client_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`client_archived_at` datetime DEFAULT NULL,
`client_accessed_at` datetime DEFAULT NULL,
PRIMARY KEY (`client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `companies`
--
DROP TABLE IF EXISTS `companies`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `companies` (
`company_id` int(11) NOT NULL AUTO_INCREMENT,
`company_name` varchar(200) NOT NULL,
`company_address` varchar(200) DEFAULT NULL,
`company_city` varchar(200) DEFAULT NULL,
`company_state` varchar(200) DEFAULT NULL,
`company_zip` varchar(200) DEFAULT NULL,
`company_country` varchar(200) DEFAULT NULL,
`company_phone_country_code` varchar(10) DEFAULT NULL,
`company_phone` varchar(200) DEFAULT NULL,
`company_email` varchar(200) DEFAULT NULL,
`company_website` varchar(200) DEFAULT NULL,
`company_logo` varchar(250) DEFAULT NULL,
`company_locale` varchar(200) DEFAULT NULL,
`company_currency` varchar(200) DEFAULT 'USD',
`company_tax_id` varchar(200) DEFAULT NULL,
`company_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`company_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (`company_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contact_assets`
--
DROP TABLE IF EXISTS `contact_assets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contact_assets` (
`contact_id` int(11) NOT NULL,
`asset_id` int(11) NOT NULL,
PRIMARY KEY (`contact_id`,`asset_id`),
KEY `asset_id` (`asset_id`),
CONSTRAINT `contact_assets_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE,
CONSTRAINT `contact_assets_ibfk_2` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE,
CONSTRAINT `contact_assets_ibfk_3` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE,
CONSTRAINT `contact_assets_ibfk_4` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contact_credentials`
--
DROP TABLE IF EXISTS `contact_credentials`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contact_credentials` (
`contact_id` int(11) NOT NULL,
`credential_id` int(11) NOT NULL,
PRIMARY KEY (`contact_id`,`credential_id`),
KEY `credential_id` (`credential_id`),
CONSTRAINT `contact_credentials_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE,
CONSTRAINT `contact_credentials_ibfk_2` FOREIGN KEY (`credential_id`) REFERENCES `credentials` (`credential_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contact_documents`
--
DROP TABLE IF EXISTS `contact_documents`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contact_documents` (
`contact_id` int(11) NOT NULL,
`document_id` int(11) NOT NULL,
PRIMARY KEY (`contact_id`,`document_id`),
KEY `document_id` (`document_id`),
CONSTRAINT `contact_documents_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE,
CONSTRAINT `contact_documents_ibfk_2` FOREIGN KEY (`document_id`) REFERENCES `documents` (`document_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contact_files`
--
DROP TABLE IF EXISTS `contact_files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contact_files` (
`contact_id` int(11) NOT NULL,
`file_id` int(11) NOT NULL,
PRIMARY KEY (`contact_id`,`file_id`),
KEY `file_id` (`file_id`),
CONSTRAINT `contact_files_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE,
CONSTRAINT `contact_files_ibfk_2` FOREIGN KEY (`file_id`) REFERENCES `files` (`file_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contact_notes`
--
DROP TABLE IF EXISTS `contact_notes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contact_notes` (
`contact_note_id` int(11) NOT NULL AUTO_INCREMENT,
`contact_note_type` varchar(200) NOT NULL,
`contact_note` text DEFAULT NULL,
`contact_note_created_by` int(11) NOT NULL,
`contact_note_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`contact_note_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`contact_note_archived_at` datetime DEFAULT NULL,
`contact_note_contact_id` int(11) NOT NULL,
PRIMARY KEY (`contact_note_id`),
KEY `contact_note_contact_id` (`contact_note_contact_id`),
CONSTRAINT `contact_notes_ibfk_1` FOREIGN KEY (`contact_note_contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contact_tags`
--
DROP TABLE IF EXISTS `contact_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contact_tags` (
`contact_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`contact_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `contact_tags_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE,
CONSTRAINT `contact_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contacts`
--
DROP TABLE IF EXISTS `contacts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contacts` (
`contact_id` int(11) NOT NULL AUTO_INCREMENT,
`contact_name` varchar(200) NOT NULL,
`contact_title` varchar(200) DEFAULT NULL,
`contact_email` varchar(200) DEFAULT NULL,
`contact_phone_country_code` varchar(10) DEFAULT NULL,
`contact_phone` varchar(200) DEFAULT NULL,
`contact_extension` varchar(200) DEFAULT NULL,
`contact_mobile_country_code` varchar(10) DEFAULT NULL,
`contact_mobile` varchar(200) DEFAULT NULL,
`contact_photo` varchar(200) DEFAULT NULL,
`contact_pin` varchar(255) DEFAULT NULL,
`contact_notes` text DEFAULT NULL,
`contact_primary` tinyint(1) NOT NULL DEFAULT 0,
`contact_important` tinyint(1) NOT NULL DEFAULT 0,
`contact_billing` tinyint(1) DEFAULT 0,
`contact_technical` tinyint(1) DEFAULT 0,
`contact_ticket_emails` varchar(10) NOT NULL DEFAULT 'all',
`contact_company_ticket_emails` varchar(10) NOT NULL DEFAULT 'none',
`contact_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`contact_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`contact_archived_at` datetime DEFAULT NULL,
`contact_accessed_at` datetime DEFAULT NULL,
`contact_location_id` int(11) NOT NULL DEFAULT 0,
`contact_vendor_id` int(11) NOT NULL DEFAULT 0,
`contact_user_id` int(11) NOT NULL DEFAULT 0,
`contact_department` varchar(200) DEFAULT NULL,
`contact_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`contact_id`),
KEY `contact_client_id` (`contact_client_id`,`contact_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contract_templates`
--
DROP TABLE IF EXISTS `contract_templates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contract_templates` (
`contract_template_id` int(11) NOT NULL AUTO_INCREMENT,
`contract_template_name` varchar(255) NOT NULL,
`contract_template_description` text DEFAULT NULL,
`contract_template_type` varchar(50) DEFAULT NULL,
`contract_template_sla_low_response_time` int(11) DEFAULT NULL,
`contract_template_sla_low_resolution_time` int(11) DEFAULT NULL,
`contract_template_sla_medium_response_time` int(11) DEFAULT NULL,
`contract_template_sla_medium_resolution_time` int(11) DEFAULT NULL,
`contract_template_sla_high_response_time` int(11) DEFAULT NULL,
`contract_template_sla_high_resolution_time` int(11) DEFAULT NULL,
`contract_template_rate_standard` decimal(10,2) DEFAULT NULL,
`contract_template_rate_after_hours` decimal(10,2) DEFAULT NULL,
`contract_template_net_terms` varchar(50) DEFAULT NULL,
`contract_template_support_hours` varchar(100) DEFAULT NULL,
`contract_template_renewal_frequency` varchar(50) DEFAULT NULL,
`contract_template_details` text DEFAULT NULL,
`contract_template_created_at` datetime DEFAULT current_timestamp(),
`contract_template_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`contract_template_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`contract_template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contracts`
--
DROP TABLE IF EXISTS `contracts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contracts` (
`contract_id` int(11) NOT NULL AUTO_INCREMENT,
`contract_name` varchar(255) NOT NULL,
`contract_status` varchar(50) NOT NULL,
`contract_type` varchar(50) NOT NULL,
`contract_sla_low_response_time` int(11) DEFAULT NULL,
`contract_sla_low_resolution_time` int(11) DEFAULT NULL,
`contract_sla_medium_response_time` int(11) DEFAULT NULL,
`contract_sla_medium_resolution_time` int(11) DEFAULT NULL,
`contract_sla_high_response_time` int(11) DEFAULT NULL,
`contract_sla_high_resolution_time` int(11) DEFAULT NULL,
`contract_details` text DEFAULT NULL,
`contract_client_id` int(11) DEFAULT NULL,
`contract_client_name` varchar(255) DEFAULT NULL,
`contract_client_address` text DEFAULT NULL,
`contract_client_email` varchar(255) DEFAULT NULL,
`contract_client_phone` varchar(100) DEFAULT NULL,
`contract_contact_name` varchar(255) DEFAULT NULL,
`contract_contact_signature` text DEFAULT NULL,
`contract_contact_signature_date` datetime DEFAULT NULL,
`contract_agent_name` varchar(255) DEFAULT NULL,
`contract_agent_signature` text DEFAULT NULL,
`contract_agent_signature_date` datetime DEFAULT NULL,
`contract_rate_standard` decimal(10,2) DEFAULT NULL,
`contract_rate_after_hours` decimal(10,2) DEFAULT NULL,
`contract_net_terms` varchar(50) DEFAULT NULL,
`contract_support_hours` varchar(100) DEFAULT NULL,
`contract_start_date` date DEFAULT NULL,
`contract_end_date` date DEFAULT NULL,
`contract_renewal_frequency` varchar(50) DEFAULT NULL,
`contract_created_at` datetime DEFAULT current_timestamp(),
`contract_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`contract_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`contract_id`),
KEY `contract_client_id` (`contract_client_id`),
CONSTRAINT `contracts_ibfk_1` FOREIGN KEY (`contract_client_id`) REFERENCES `clients` (`client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `credential_tags`
--
DROP TABLE IF EXISTS `credential_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `credential_tags` (
`credential_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`credential_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `credential_tags_ibfk_1` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE,
CONSTRAINT `credential_tags_ibfk_2` FOREIGN KEY (`credential_id`) REFERENCES `credentials` (`credential_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `credentials`
--
DROP TABLE IF EXISTS `credentials`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `credentials` (
`credential_id` int(11) NOT NULL AUTO_INCREMENT,
`credential_name` varchar(200) NOT NULL,
`credential_description` varchar(500) DEFAULT NULL,
`credential_category` varchar(200) DEFAULT NULL,
`credential_uri` varchar(500) DEFAULT NULL,
`credential_uri_2` varchar(500) DEFAULT NULL,
`credential_username` varchar(500) DEFAULT NULL,
`credential_password` varchar(500) DEFAULT NULL,
`credential_otp_secret` varchar(200) DEFAULT NULL,
`credential_note` text DEFAULT NULL,
`credential_favorite` tinyint(1) NOT NULL DEFAULT 0,
`credential_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`credential_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`credential_archived_at` datetime DEFAULT NULL,
`credential_accessed_at` datetime DEFAULT NULL,
`credential_password_changed_at` datetime DEFAULT current_timestamp(),
`credential_folder_id` int(11) NOT NULL DEFAULT 0,
`credential_contact_id` int(11) NOT NULL DEFAULT 0,
`credential_asset_id` int(11) NOT NULL DEFAULT 0,
`credential_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`credential_id`),
KEY `credential_client_id` (`credential_client_id`,`credential_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `credits`
--
DROP TABLE IF EXISTS `credits`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `credits` (
`credit_id` int(11) NOT NULL AUTO_INCREMENT,
`credit_amount` decimal(15,2) NOT NULL,
`credit_type` enum('prepaid','manual','refund','promotion','usage') NOT NULL DEFAULT 'manual',
`credit_note` text DEFAULT NULL,
`credit_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`credit_created_by` int(11) NOT NULL,
`credit_expire_at` date DEFAULT NULL,
`credit_invoice_id` int(11) DEFAULT NULL,
`credit_client_id` int(11) NOT NULL,
PRIMARY KEY (`credit_id`),
KEY `credit_client_id` (`credit_client_id`),
KEY `credit_invoice_id` (`credit_invoice_id`),
KEY `credit_created_at` (`credit_created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `cron_jobs`
--
DROP TABLE IF EXISTS `cron_jobs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `cron_jobs` (
`cron_job_id` int(11) NOT NULL AUTO_INCREMENT,
`cron_job_name` varchar(200) NOT NULL,
`cron_job_enabled` tinyint(1) NOT NULL DEFAULT 1,
`cron_job_schedule` varchar(200) NOT NULL DEFAULT 'Interval',
`cron_job_interval_minutes` int(11) NOT NULL DEFAULT 1,
`cron_job_daily_at` time DEFAULT NULL,
`cron_job_run_now` tinyint(1) NOT NULL DEFAULT 0,
`cron_job_last_run_at` datetime DEFAULT NULL,
`cron_job_last_finished_at` datetime DEFAULT NULL,
`cron_job_last_duration` decimal(10,2) DEFAULT NULL,
`cron_job_last_status` varchar(200) DEFAULT NULL,
`cron_job_last_error` text DEFAULT NULL,
`cron_job_last_error_at` datetime DEFAULT NULL,
PRIMARY KEY (`cron_job_id`),
UNIQUE KEY `cron_job_name` (`cron_job_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `custom_fields`
--
DROP TABLE IF EXISTS `custom_fields`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `custom_fields` (
`custom_field_id` int(11) NOT NULL AUTO_INCREMENT,
`custom_field_table` varchar(255) NOT NULL,
`custom_field_label` varchar(255) NOT NULL,
`custom_field_type` varchar(255) NOT NULL DEFAULT 'text',
`custom_field_location` int(11) NOT NULL DEFAULT 0,
`custom_field_order` int(11) NOT NULL DEFAULT 999,
PRIMARY KEY (`custom_field_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `custom_links`
--
DROP TABLE IF EXISTS `custom_links`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `custom_links` (
`custom_link_id` int(11) NOT NULL AUTO_INCREMENT,
`custom_link_name` varchar(200) NOT NULL,
`custom_link_description` text DEFAULT NULL,
`custom_link_uri` varchar(500) NOT NULL,
`custom_link_new_tab` tinyint(1) NOT NULL DEFAULT 0,
`custom_link_icon` varchar(200) DEFAULT NULL,
`custom_link_location` int(11) NOT NULL DEFAULT 1,
`custom_link_order` int(11) NOT NULL DEFAULT 0,
`custom_link_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`custom_link_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`custom_link_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`custom_link_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `custom_values`
--
DROP TABLE IF EXISTS `custom_values`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `custom_values` (
`custom_value_id` int(11) NOT NULL AUTO_INCREMENT,
`custom_value_value` mediumtext NOT NULL,
`custom_value_field` int(11) NOT NULL,
PRIMARY KEY (`custom_value_id`)
) ENGINE=InnoDB 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` (
`discount_code_id` int(11) NOT NULL AUTO_INCREMENT,
`discount_code_description` varchar(250) DEFAULT NULL,
`discount_code_amount` decimal(15,2) NOT NULL,
`discount_code` varchar(200) NOT NULL,
`discount_code_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`discount_code_created_by` int(11) NOT NULL,
`discount_code_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`discount_code_archived_at` datetime DEFAULT NULL,
`discount_code_expire_at` date DEFAULT NULL,
PRIMARY KEY (`discount_code_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `document_files`
--
DROP TABLE IF EXISTS `document_files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `document_files` (
`document_id` int(11) NOT NULL,
`file_id` int(11) NOT NULL,
PRIMARY KEY (`document_id`,`file_id`),
KEY `file_id` (`file_id`),
CONSTRAINT `document_files_ibfk_1` FOREIGN KEY (`document_id`) REFERENCES `documents` (`document_id`) ON DELETE CASCADE,
CONSTRAINT `document_files_ibfk_2` FOREIGN KEY (`file_id`) REFERENCES `files` (`file_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `document_tags`
--
DROP TABLE IF EXISTS `document_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `document_tags` (
`document_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`document_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `document_tags_ibfk_1` FOREIGN KEY (`document_id`) REFERENCES `documents` (`document_id`) ON DELETE CASCADE,
CONSTRAINT `document_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `document_templates`
--
DROP TABLE IF EXISTS `document_templates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `document_templates` (
`document_template_id` int(11) NOT NULL AUTO_INCREMENT,
`document_template_name` varchar(200) NOT NULL,
`document_template_description` text DEFAULT NULL,
`document_template_content` longtext NOT NULL,
`document_template_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`document_template_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`document_template_archived_at` datetime DEFAULT NULL,
`document_template_created_by` int(11) NOT NULL DEFAULT 0,
`document_template_updated_by` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`document_template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `document_versions`
--
DROP TABLE IF EXISTS `document_versions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `document_versions` (
`document_version_id` int(11) NOT NULL AUTO_INCREMENT,
`document_version_name` varchar(200) NOT NULL,
`document_version_description` text DEFAULT NULL,
`document_version_content` longtext NOT NULL,
`document_version_created_by` int(11) DEFAULT 0,
`document_version_created_at` datetime NOT NULL,
`document_version_document_id` int(11) NOT NULL,
PRIMARY KEY (`document_version_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `documents`
--
DROP TABLE IF EXISTS `documents`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `documents` (
`document_id` int(11) NOT NULL AUTO_INCREMENT,
`document_name` varchar(200) NOT NULL,
`document_description` text DEFAULT NULL,
`document_content` longtext NOT NULL,
`document_content_raw` longtext NOT NULL,
`document_client_visible` int(11) NOT NULL DEFAULT 1,
`document_favorite` tinyint(1) NOT NULL DEFAULT 0,
`document_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`document_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`document_archived_at` datetime DEFAULT NULL,
`document_accessed_at` datetime DEFAULT NULL,
`document_folder_id` int(11) NOT NULL DEFAULT 0,
`document_created_by` int(11) NOT NULL DEFAULT 0,
`document_updated_by` int(11) NOT NULL DEFAULT 0,
`document_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`document_id`),
KEY `document_client_id` (`document_client_id`,`document_archived_at`),
FULLTEXT KEY `document_content_raw` (`document_content_raw`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `domain_history`
--
DROP TABLE IF EXISTS `domain_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `domain_history` (
`domain_history_id` int(11) NOT NULL AUTO_INCREMENT,
`domain_history_column` varchar(200) NOT NULL,
`domain_history_old_value` text NOT NULL,
`domain_history_new_value` text NOT NULL,
`domain_history_domain_id` int(11) NOT NULL,
`domain_history_modified_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`domain_history_id`),
KEY `domain_history_domain_id` (`domain_history_domain_id`),
CONSTRAINT `domain_history_ibfk_1` FOREIGN KEY (`domain_history_domain_id`) REFERENCES `domains` (`domain_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `domain_tags`
--
DROP TABLE IF EXISTS `domain_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `domain_tags` (
`domain_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`domain_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `domain_tags_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domains` (`domain_id`) ON DELETE CASCADE,
CONSTRAINT `domain_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `domains`
--
DROP TABLE IF EXISTS `domains`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `domains` (
`domain_id` int(11) NOT NULL AUTO_INCREMENT,
`domain_name` varchar(200) NOT NULL,
`domain_description` text DEFAULT NULL,
`domain_expire` date DEFAULT NULL,
`domain_auto_renew` tinyint(1) NOT NULL DEFAULT 0,
`domain_ip` varchar(255) DEFAULT NULL,
`domain_name_servers` varchar(255) DEFAULT NULL,
`domain_mail_servers` varchar(255) DEFAULT NULL,
`domain_txt` text DEFAULT NULL,
`domain_dmarc` text DEFAULT NULL,
`domain_dkim` varchar(255) DEFAULT NULL,
`domain_raw_whois` text DEFAULT NULL,
`domain_notes` text DEFAULT NULL,
`domain_favorite` tinyint(1) NOT NULL DEFAULT 0,
`domain_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`domain_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`domain_archived_at` datetime DEFAULT NULL,
`domain_accessed_at` datetime DEFAULT NULL,
`domain_refreshed_at` datetime DEFAULT NULL,
`domain_registrar` int(11) NOT NULL DEFAULT 0,
`domain_webhost` int(11) NOT NULL DEFAULT 0,
`domain_dnshost` int(11) NOT NULL DEFAULT 0,
`domain_mailhost` int(11) NOT NULL DEFAULT 0,
`domain_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`domain_id`),
KEY `domain_client_id` (`domain_client_id`,`domain_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `email_queue`
--
DROP TABLE IF EXISTS `email_queue`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `email_queue` (
`email_id` int(11) NOT NULL AUTO_INCREMENT,
`email_status` tinyint(1) NOT NULL DEFAULT 0,
`email_recipient` varchar(255) NOT NULL,
`email_recipient_name` varchar(255) DEFAULT NULL,
`email_from` varchar(255) NOT NULL,
`email_from_name` varchar(255) NOT NULL,
`email_subject` varchar(255) NOT NULL,
`email_content` longtext NOT NULL,
`email_cal_str` text DEFAULT NULL,
`email_attachments` text DEFAULT NULL,
`email_queued_at` datetime NOT NULL DEFAULT current_timestamp(),
`email_failed_at` datetime DEFAULT NULL,
`email_attempts` tinyint(1) NOT NULL DEFAULT 0,
`email_sent_at` datetime DEFAULT NULL,
PRIMARY KEY (`email_id`),
KEY `email_status` (`email_status`,`email_queued_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `expense_import_rules`
--
DROP TABLE IF EXISTS `expense_import_rules`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `expense_import_rules` (
`import_rule_id` int(11) NOT NULL AUTO_INCREMENT,
`import_rule_match` varchar(200) NOT NULL,
`import_rule_vendor_id` int(11) NOT NULL,
`import_rule_category_id` int(11) NOT NULL DEFAULT 0,
`import_rule_client_id` int(11) NOT NULL DEFAULT 0,
`import_rule_billable` tinyint(1) NOT NULL DEFAULT 0,
`import_rule_used_count` int(11) NOT NULL DEFAULT 0,
`import_rule_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`import_rule_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (`import_rule_id`),
UNIQUE KEY `import_rule_match` (`import_rule_match`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_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` (
`expense_id` int(11) NOT NULL AUTO_INCREMENT,
`expense_description` text DEFAULT NULL,
`expense_amount` decimal(15,2) NOT NULL,
`expense_tax_id` int(11) NOT NULL DEFAULT 0,
`expense_tax_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`expense_currency_code` varchar(200) NOT NULL,
`expense_date` date NOT NULL,
`expense_reference` varchar(200) DEFAULT NULL,
`expense_payment_method` varchar(200) DEFAULT NULL,
`expense_receipt` varchar(200) DEFAULT NULL,
`expense_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`expense_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`expense_archived_at` datetime DEFAULT NULL,
`expense_created_by` int(11) NOT NULL DEFAULT 0,
`expense_vendor_id` int(11) NOT NULL DEFAULT 0,
`expense_client_id` int(11) NOT NULL DEFAULT 0,
`expense_category_id` int(11) NOT NULL DEFAULT 0,
`expense_account_id` int(11) DEFAULT NULL,
`expense_refund_of_id` int(11) DEFAULT NULL,
`expense_recurring_expense_id` int(11) DEFAULT NULL,
`expense_billable` tinyint(1) NOT NULL DEFAULT 0,
`expense_markup` decimal(7,2) NOT NULL DEFAULT 0.00,
`expense_invoice_id` int(11) DEFAULT NULL,
`expense_invoice_item_id` int(11) DEFAULT NULL,
`expense_import_key` varchar(64) DEFAULT NULL,
`expense_paid_by` int(11) NOT NULL DEFAULT 0,
`expense_reimbursement_id` int(11) DEFAULT NULL,
`expense_reconciliation_id` int(11) DEFAULT NULL,
PRIMARY KEY (`expense_id`),
KEY `expense_invoice_id` (`expense_invoice_id`),
KEY `expense_import_key` (`expense_import_key`),
KEY `expense_reimbursement_id` (`expense_reimbursement_id`),
KEY `expense_reconciliation_id` (`expense_reconciliation_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `files`
--
DROP TABLE IF EXISTS `files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `files` (
`file_id` int(11) NOT NULL AUTO_INCREMENT,
`file_reference_name` varchar(200) DEFAULT NULL,
`file_name` varchar(200) NOT NULL,
`file_description` varchar(250) DEFAULT NULL,
`file_ext` varchar(10) DEFAULT NULL,
`file_size` bigint(20) unsigned NOT NULL DEFAULT 0,
`file_mime_type` varchar(100) DEFAULT NULL,
`file_favorite` tinyint(1) NOT NULL DEFAULT 0,
`file_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`file_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`file_archived_at` datetime DEFAULT NULL,
`file_accessed_at` datetime DEFAULT NULL,
`file_created_by` int(11) NOT NULL DEFAULT 0,
`file_folder_id` int(11) NOT NULL DEFAULT 0,
`file_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`file_id`),
KEY `file_client_id` (`file_client_id`,`file_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `folders`
--
DROP TABLE IF EXISTS `folders`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `folders` (
`folder_id` int(11) NOT NULL AUTO_INCREMENT,
`folder_name` varchar(200) NOT NULL,
`parent_folder` int(11) NOT NULL DEFAULT 0,
`folder_location` int(11) DEFAULT 0,
`folder_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`folder_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `history`
--
DROP TABLE IF EXISTS `history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `history` (
`history_id` int(11) NOT NULL AUTO_INCREMENT,
`history_status` varchar(200) NOT NULL,
`history_description` text NOT NULL,
`history_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`history_invoice_id` int(11) NOT NULL DEFAULT 0,
`history_recurring_invoice_id` int(11) NOT NULL DEFAULT 0,
`history_quote_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`history_id`),
KEY `history_invoice_id` (`history_invoice_id`),
KEY `history_quote_id` (`history_quote_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `income_import_rules`
--
DROP TABLE IF EXISTS `income_import_rules`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `income_import_rules` (
`import_rule_id` int(11) NOT NULL AUTO_INCREMENT,
`import_rule_match` varchar(200) NOT NULL,
`import_rule_action` varchar(10) NOT NULL DEFAULT 'income',
`import_rule_client_id` int(11) NOT NULL DEFAULT 0,
`import_rule_category_id` int(11) NOT NULL DEFAULT 0,
`import_rule_account_id` int(11) NOT NULL DEFAULT 0,
`import_rule_used_count` int(11) NOT NULL DEFAULT 0,
`import_rule_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`import_rule_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (`import_rule_id`),
UNIQUE KEY `import_rule_match` (`import_rule_match`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_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` (
`item_id` int(11) NOT NULL AUTO_INCREMENT,
`item_name` varchar(200) NOT NULL,
`item_description` text DEFAULT NULL,
`item_quantity` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_price` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_subtotal` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_tax` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_total` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_order` int(11) NOT NULL DEFAULT 0,
`item_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`item_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`item_archived_at` datetime DEFAULT NULL,
`item_tax_id` int(11) NOT NULL DEFAULT 0,
`item_product_id` int(11) NOT NULL DEFAULT 0,
`item_invoice_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`item_id`),
KEY `item_invoice_id` (`item_invoice_id`),
KEY `item_product_id` (`item_product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_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` (
`invoice_id` int(11) NOT NULL AUTO_INCREMENT,
`invoice_prefix` varchar(200) DEFAULT NULL,
`invoice_number` int(11) NOT NULL,
`invoice_scope` varchar(255) DEFAULT NULL,
`invoice_status` varchar(200) NOT NULL,
`invoice_date` date NOT NULL,
`invoice_due` date NOT NULL,
`invoice_discount_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`invoice_credit_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`invoice_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`invoice_currency_code` varchar(200) NOT NULL,
`invoice_note` text DEFAULT NULL,
`invoice_url_key` varchar(200) DEFAULT NULL,
`invoice_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`invoice_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`invoice_archived_at` datetime DEFAULT NULL,
`invoice_category_id` int(11) NOT NULL,
`invoice_recurring_invoice_id` int(11) NOT NULL DEFAULT 0,
`invoice_quote_id` int(11) NOT NULL DEFAULT 0,
`invoice_client_id` int(11) NOT NULL,
PRIMARY KEY (`invoice_id`),
KEY `invoice_client_id` (`invoice_client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `location_documents`
--
DROP TABLE IF EXISTS `location_documents`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `location_documents` (
`location_id` int(11) NOT NULL,
`document_id` int(11) NOT NULL,
PRIMARY KEY (`location_id`,`document_id`),
KEY `document_id` (`document_id`),
CONSTRAINT `location_documents_ibfk_1` FOREIGN KEY (`location_id`) REFERENCES `locations` (`location_id`) ON DELETE CASCADE,
CONSTRAINT `location_documents_ibfk_2` FOREIGN KEY (`document_id`) REFERENCES `documents` (`document_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `location_files`
--
DROP TABLE IF EXISTS `location_files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `location_files` (
`location_id` int(11) NOT NULL,
`file_id` int(11) NOT NULL,
PRIMARY KEY (`location_id`,`file_id`),
KEY `file_id` (`file_id`),
CONSTRAINT `location_files_ibfk_1` FOREIGN KEY (`location_id`) REFERENCES `locations` (`location_id`) ON DELETE CASCADE,
CONSTRAINT `location_files_ibfk_2` FOREIGN KEY (`file_id`) REFERENCES `files` (`file_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `location_tags`
--
DROP TABLE IF EXISTS `location_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `location_tags` (
`location_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`location_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `location_tags_ibfk_1` FOREIGN KEY (`location_id`) REFERENCES `locations` (`location_id`) ON DELETE CASCADE,
CONSTRAINT `location_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `locations`
--
DROP TABLE IF EXISTS `locations`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `locations` (
`location_id` int(11) NOT NULL AUTO_INCREMENT,
`location_name` varchar(200) NOT NULL,
`location_description` text DEFAULT NULL,
`location_country` varchar(200) DEFAULT NULL,
`location_address` varchar(200) DEFAULT NULL,
`location_city` varchar(200) DEFAULT NULL,
`location_state` varchar(200) DEFAULT NULL,
`location_zip` varchar(200) DEFAULT NULL,
`location_phone_country_code` varchar(10) DEFAULT NULL,
`location_phone` varchar(200) DEFAULT NULL,
`location_phone_extension` varchar(10) DEFAULT NULL,
`location_fax_country_code` varchar(10) DEFAULT NULL,
`location_fax` varchar(200) DEFAULT NULL,
`location_hours` varchar(200) DEFAULT NULL,
`location_photo` varchar(200) DEFAULT NULL,
`location_primary` tinyint(1) NOT NULL DEFAULT 0,
`location_notes` text DEFAULT NULL,
`location_favorite` tinyint(1) NOT NULL DEFAULT 0,
`location_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`location_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`location_archived_at` datetime DEFAULT NULL,
`location_accessed_at` datetime DEFAULT NULL,
`location_contact_id` int(11) NOT NULL DEFAULT 0,
`location_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`location_id`),
KEY `location_client_id` (`location_client_id`,`location_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `logs`
--
DROP TABLE IF EXISTS `logs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `logs` (
`log_id` int(11) NOT NULL AUTO_INCREMENT,
`log_type` varchar(200) NOT NULL,
`log_action` varchar(255) NOT NULL,
`log_description` varchar(1000) NOT NULL,
`log_ip` varchar(200) DEFAULT NULL,
`log_user_agent` varchar(250) DEFAULT NULL,
`log_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`log_client_id` int(11) NOT NULL DEFAULT 0,
`log_user_id` int(11) NOT NULL DEFAULT 0,
`log_entity_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`log_id`),
KEY `log_created_at` (`log_created_at`),
KEY `log_user_id` (`log_user_id`,`log_client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `modules`
--
DROP TABLE IF EXISTS `modules`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `modules` (
`module_id` int(11) NOT NULL AUTO_INCREMENT,
`module_name` varchar(200) NOT NULL,
`module_description` varchar(200) DEFAULT NULL,
PRIMARY KEY (`module_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `network_ips`
--
DROP TABLE IF EXISTS `network_ips`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `network_ips` (
`ip_id` int(11) NOT NULL AUTO_INCREMENT,
`ip_address` varchar(45) NOT NULL,
`ip_type` varchar(30) NOT NULL DEFAULT 'Static',
`ip_hostname` varchar(200) DEFAULT NULL,
`ip_mac` varchar(200) DEFAULT NULL,
`ip_description` varchar(200) DEFAULT NULL,
`ip_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`ip_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`ip_network_id` int(11) NOT NULL,
PRIMARY KEY (`ip_id`),
UNIQUE KEY `ip_network_address` (`ip_network_id`,`ip_address`),
CONSTRAINT `network_ips_ibfk_1` FOREIGN KEY (`ip_network_id`) REFERENCES `networks` (`network_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `network_tags`
--
DROP TABLE IF EXISTS `network_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `network_tags` (
`network_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`network_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `network_tags_ibfk_1` FOREIGN KEY (`network_id`) REFERENCES `networks` (`network_id`) ON DELETE CASCADE,
CONSTRAINT `network_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `networks`
--
DROP TABLE IF EXISTS `networks`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `networks` (
`network_id` int(11) NOT NULL AUTO_INCREMENT,
`network_name` varchar(200) NOT NULL,
`network_description` text DEFAULT NULL,
`network_type` varchar(50) DEFAULT NULL,
`network_vlan` int(11) DEFAULT NULL,
`network` varchar(200) NOT NULL,
`network_subnet` varchar(200) DEFAULT NULL,
`network_gateway` varchar(200) NOT NULL,
`network_primary_dns` varchar(200) DEFAULT NULL,
`network_secondary_dns` varchar(200) DEFAULT NULL,
`network_dhcp_range` varchar(200) DEFAULT NULL,
`network_notes` text DEFAULT NULL,
`network_favorite` tinyint(1) NOT NULL DEFAULT 0,
`network_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`network_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`network_archived_at` datetime DEFAULT NULL,
`network_accessed_at` datetime DEFAULT NULL,
`network_location_id` int(11) NOT NULL DEFAULT 0,
`network_vendor_id` int(11) NOT NULL DEFAULT 0,
`network_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`network_id`),
KEY `network_client_id` (`network_client_id`,`network_archived_at`),
KEY `network_location_id` (`network_location_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `notifications`
--
DROP TABLE IF EXISTS `notifications`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `notifications` (
`notification_id` int(11) NOT NULL AUTO_INCREMENT,
`notification_type` varchar(200) NOT NULL,
`notification` varchar(1000) NOT NULL,
`notification_action` varchar(250) DEFAULT NULL,
`notification_timestamp` datetime NOT NULL DEFAULT current_timestamp(),
`notification_dismissed_at` datetime DEFAULT NULL,
`notification_dismissed_by` int(11) DEFAULT NULL,
`notification_client_id` int(11) NOT NULL DEFAULT 0,
`notification_user_id` int(11) NOT NULL DEFAULT 0,
`notification_entity_id` int(11) DEFAULT 0,
PRIMARY KEY (`notification_id`),
KEY `notification_user_id` (`notification_user_id`,`notification_dismissed_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_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` (
`payment_method_id` int(11) NOT NULL AUTO_INCREMENT,
`payment_method_name` varchar(200) NOT NULL,
`payment_method_description` varchar(250) DEFAULT NULL,
`payment_method_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`payment_method_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (`payment_method_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `payment_providers`
--
DROP TABLE IF EXISTS `payment_providers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `payment_providers` (
`payment_provider_id` int(11) NOT NULL AUTO_INCREMENT,
`payment_provider_name` varchar(200) NOT NULL,
`payment_provider_description` varchar(250) DEFAULT NULL,
`payment_provider_public_key` varchar(250) DEFAULT NULL,
`payment_provider_private_key` varchar(250) DEFAULT NULL,
`payment_provider_threshold` decimal(15,2) DEFAULT NULL,
`payment_provider_active` tinyint(1) NOT NULL DEFAULT 1,
`payment_provider_account` int(11) NOT NULL,
`payment_provider_expense_vendor` int(11) NOT NULL DEFAULT 0,
`payment_provider_expense_category` int(11) NOT NULL DEFAULT 0,
`payment_provider_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`payment_provider_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (`payment_provider_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_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` (
`payment_id` int(11) NOT NULL AUTO_INCREMENT,
`payment_date` date NOT NULL,
`payment_amount` decimal(15,2) NOT NULL,
`payment_currency_code` varchar(10) NOT NULL,
`payment_method` varchar(200) DEFAULT NULL,
`payment_reference` varchar(200) DEFAULT NULL,
`payment_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`payment_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`payment_archived_at` datetime DEFAULT NULL,
`payment_account_id` int(11) NOT NULL,
`payment_invoice_id` int(11) NOT NULL DEFAULT 0,
`payment_import_key` varchar(64) DEFAULT NULL,
`payment_reconciliation_id` int(11) DEFAULT NULL,
`payment_deposit_transfer_id` int(11) DEFAULT NULL,
PRIMARY KEY (`payment_id`),
KEY `payment_invoice_id` (`payment_invoice_id`),
KEY `payment_date` (`payment_date`),
KEY `payment_import_key` (`payment_import_key`),
KEY `payment_reconciliation_id` (`payment_reconciliation_id`),
KEY `payment_deposit_transfer_id` (`payment_deposit_transfer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `portal_announcements`
--
DROP TABLE IF EXISTS `portal_announcements`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `portal_announcements` (
`announcement_id` int(11) NOT NULL AUTO_INCREMENT,
`announcement_title` varchar(200) NOT NULL,
`announcement_body` text DEFAULT NULL,
`announcement_tone` varchar(20) NOT NULL DEFAULT 'info',
`announcement_client_id` int(11) NOT NULL DEFAULT 0,
`announcement_starts_at` datetime DEFAULT NULL,
`announcement_ends_at` datetime DEFAULT NULL,
`announcement_created_by` int(11) NOT NULL DEFAULT 0,
`announcement_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`announcement_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`announcement_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`announcement_id`),
KEY `announcement_client_id` (`announcement_client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `product_prices`
--
DROP TABLE IF EXISTS `product_prices`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `product_prices` (
`price_id` int(11) NOT NULL AUTO_INCREMENT,
`price_old` decimal(15,2) NOT NULL,
`price_new` decimal(15,2) NOT NULL,
`price_cost_old` decimal(15,2) NOT NULL DEFAULT 0.00,
`price_cost_new` decimal(15,2) NOT NULL DEFAULT 0.00,
`price_source` varchar(20) NOT NULL DEFAULT 'edit',
`price_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`price_user_id` int(11) NOT NULL DEFAULT 0,
`price_product_id` int(11) NOT NULL,
PRIMARY KEY (`price_id`),
KEY `price_product_id` (`price_product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `product_stock`
--
DROP TABLE IF EXISTS `product_stock`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `product_stock` (
`stock_id` int(11) NOT NULL AUTO_INCREMENT,
`stock_qty` decimal(15,2) NOT NULL,
`stock_type` varchar(20) NOT NULL DEFAULT 'adjusted',
`stock_unit_cost` decimal(15,2) DEFAULT NULL,
`stock_note` text DEFAULT NULL,
`stock_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`stock_expense_id` int(11) DEFAULT NULL,
`stock_invoice_id` int(11) NOT NULL DEFAULT 0,
`stock_item_id` int(11) DEFAULT NULL,
`stock_user_id` int(11) NOT NULL DEFAULT 0,
`stock_product_id` int(11) NOT NULL,
PRIMARY KEY (`stock_id`),
KEY `stock_product_id` (`stock_product_id`),
KEY `stock_invoice_id` (`stock_invoice_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `products`
--
DROP TABLE IF EXISTS `products`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `products` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`product_name` varchar(200) NOT NULL,
`product_type` enum('service','product') NOT NULL DEFAULT 'service',
`product_description` text DEFAULT NULL,
`product_notes` text DEFAULT NULL,
`product_code` varchar(200) DEFAULT NULL,
`product_vendor_part` varchar(200) DEFAULT NULL,
`product_location` varchar(250) DEFAULT NULL,
`product_price` decimal(15,2) NOT NULL,
`product_cost` decimal(15,2) NOT NULL DEFAULT 0.00,
`product_currency_code` varchar(200) NOT NULL,
`product_frequency` varchar(10) DEFAULT NULL,
`product_seat_source` varchar(20) DEFAULT NULL,
`product_track_stock` tinyint(1) NOT NULL DEFAULT 0,
`product_reorder_level` decimal(15,2) NOT NULL DEFAULT 0.00,
`product_reorder_qty` decimal(15,2) NOT NULL DEFAULT 0.00,
`product_asset_type` varchar(200) DEFAULT NULL,
`product_make` varchar(200) DEFAULT NULL,
`product_model` varchar(200) DEFAULT NULL,
`product_warranty_months` int(11) NOT NULL DEFAULT 0,
`product_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`product_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`product_archived_at` datetime DEFAULT NULL,
`product_tax_id` int(11) NOT NULL DEFAULT 0,
`product_category_id` int(11) NOT NULL,
`product_vendor_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `project_template_ticket_templates`
--
DROP TABLE IF EXISTS `project_template_ticket_templates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `project_template_ticket_templates` (
`ticket_template_id` int(11) NOT NULL,
`project_template_id` int(11) NOT NULL,
`ticket_template_order` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`ticket_template_id`,`project_template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `project_templates`
--
DROP TABLE IF EXISTS `project_templates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `project_templates` (
`project_template_id` int(11) NOT NULL AUTO_INCREMENT,
`project_template_name` varchar(200) NOT NULL,
`project_template_description` text DEFAULT NULL,
`project_template_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`project_template_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`project_template_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`project_template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `projects`
--
DROP TABLE IF EXISTS `projects`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `projects` (
`project_id` int(11) NOT NULL AUTO_INCREMENT,
`project_prefix` varchar(200) DEFAULT NULL,
`project_number` int(11) NOT NULL DEFAULT 1,
`project_name` varchar(255) NOT NULL,
`project_description` mediumtext DEFAULT NULL,
`project_start` date DEFAULT NULL,
`project_due` date DEFAULT NULL,
`project_budget_hours` decimal(8,2) DEFAULT NULL,
`project_manager` int(11) NOT NULL DEFAULT 0,
`project_contact_id` int(11) NOT NULL DEFAULT 0,
`project_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`project_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`project_completed_at` datetime DEFAULT NULL,
`project_archived_at` datetime DEFAULT NULL,
`project_client_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`project_id`),
KEY `project_client_id` (`project_client_id`,`project_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `quote_files`
--
DROP TABLE IF EXISTS `quote_files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `quote_files` (
`quote_id` int(11) NOT NULL,
`file_id` int(11) NOT NULL,
PRIMARY KEY (`quote_id`,`file_id`),
KEY `file_id` (`file_id`),
CONSTRAINT `quote_files_ibfk_1` FOREIGN KEY (`quote_id`) REFERENCES `quotes` (`quote_id`) ON DELETE CASCADE,
CONSTRAINT `quote_files_ibfk_2` FOREIGN KEY (`file_id`) REFERENCES `files` (`file_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `quote_items`
--
DROP TABLE IF EXISTS `quote_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `quote_items` (
`item_id` int(11) NOT NULL AUTO_INCREMENT,
`item_name` varchar(200) NOT NULL,
`item_description` text DEFAULT NULL,
`item_quantity` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_price` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_subtotal` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_tax` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_total` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_order` int(11) NOT NULL DEFAULT 0,
`item_frequency` varchar(10) DEFAULT NULL,
`item_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`item_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`item_archived_at` datetime DEFAULT NULL,
`item_tax_id` int(11) NOT NULL DEFAULT 0,
`item_product_id` int(11) NOT NULL DEFAULT 0,
`item_quote_id` int(11) NOT NULL,
PRIMARY KEY (`item_id`),
KEY `item_quote_id` (`item_quote_id`),
KEY `item_product_id` (`item_product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `quotes`
--
DROP TABLE IF EXISTS `quotes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `quotes` (
`quote_id` int(11) NOT NULL AUTO_INCREMENT,
`quote_prefix` varchar(200) DEFAULT NULL,
`quote_number` int(11) NOT NULL,
`quote_scope` varchar(255) DEFAULT NULL,
`quote_status` varchar(200) NOT NULL,
`quote_discount_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`quote_date` date NOT NULL,
`quote_expire` date DEFAULT NULL,
`quote_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`quote_monthly_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`quote_currency_code` varchar(200) NOT NULL,
`quote_note` text DEFAULT NULL,
`quote_url_key` varchar(200) DEFAULT NULL,
`quote_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`quote_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`quote_archived_at` datetime DEFAULT NULL,
`quote_category_id` int(11) NOT NULL,
`quote_client_id` int(11) NOT NULL,
PRIMARY KEY (`quote_id`),
KEY `quote_client_id` (`quote_client_id`,`quote_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `rack_units`
--
DROP TABLE IF EXISTS `rack_units`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `rack_units` (
`unit_id` int(11) NOT NULL AUTO_INCREMENT,
`unit_start_number` int(11) NOT NULL,
`unit_end_number` int(11) NOT NULL,
`unit_device` varchar(200) DEFAULT NULL,
`unit_face` varchar(10) NOT NULL DEFAULT 'front',
`unit_full_depth` tinyint(1) NOT NULL DEFAULT 1,
`unit_type` varchar(50) DEFAULT NULL,
`unit_power_watts` int(11) DEFAULT NULL,
`unit_notes` varchar(255) DEFAULT NULL,
`unit_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`unit_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`unit_archived_at` datetime DEFAULT NULL,
`unit_asset_id` int(11) DEFAULT NULL,
`unit_rack_id` int(11) NOT NULL,
PRIMARY KEY (`unit_id`),
KEY `unit_rack_id` (`unit_rack_id`),
KEY `unit_asset_id` (`unit_asset_id`),
CONSTRAINT `rack_units_ibfk_1` FOREIGN KEY (`unit_rack_id`) REFERENCES `racks` (`rack_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `racks`
--
DROP TABLE IF EXISTS `racks`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `racks` (
`rack_id` int(11) NOT NULL AUTO_INCREMENT,
`rack_name` varchar(200) NOT NULL,
`rack_description` text DEFAULT NULL,
`rack_model` varchar(200) DEFAULT NULL,
`rack_depth` varchar(50) DEFAULT NULL,
`rack_type` varchar(50) DEFAULT NULL,
`rack_units` int(11) NOT NULL,
`rack_units_descending` tinyint(1) NOT NULL DEFAULT 0,
`rack_power_capacity` int(11) DEFAULT NULL,
`rack_photo` varchar(200) DEFAULT NULL,
`rack_photo_rear` varchar(200) DEFAULT NULL,
`rack_physical_location` varchar(200) DEFAULT NULL,
`rack_notes` text DEFAULT NULL,
`rack_favorite` tinyint(1) NOT NULL DEFAULT 0,
`rack_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`rack_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`rack_archived_at` datetime DEFAULT NULL,
`rack_location_id` int(11) DEFAULT NULL,
`rack_client_id` int(11) NOT NULL,
PRIMARY KEY (`rack_id`),
KEY `rack_client_id` (`rack_client_id`,`rack_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `records`
--
DROP TABLE IF EXISTS `records`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `records` (
`record_id` int(11) NOT NULL AUTO_INCREMENT,
`record_type` varchar(200) NOT NULL,
`record` varchar(200) NOT NULL,
`record_value` varchar(200) NOT NULL,
`record_priority` int(11) DEFAULT NULL,
`record_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`record_updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp(),
`record_archived_at` datetime DEFAULT NULL,
`record_domain_id` int(11) NOT NULL,
PRIMARY KEY (`record_id`),
KEY `record_domain_id` (`record_domain_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `recurring_expenses`
--
DROP TABLE IF EXISTS `recurring_expenses`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `recurring_expenses` (
`recurring_expense_id` int(11) NOT NULL AUTO_INCREMENT,
`recurring_expense_frequency` varchar(10) NOT NULL DEFAULT 'month',
`recurring_expense_anchor_day` tinyint(2) NOT NULL DEFAULT 0,
`recurring_expense_last_sent` date DEFAULT NULL,
`recurring_expense_next_date` date NOT NULL,
`recurring_expense_end_date` date DEFAULT NULL,
`recurring_expense_status` tinyint(1) NOT NULL DEFAULT 1,
`recurring_expense_description` mediumtext DEFAULT NULL,
`recurring_expense_amount` decimal(15,2) NOT NULL,
`recurring_expense_tax_id` int(11) NOT NULL DEFAULT 0,
`recurring_expense_tax_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`recurring_expense_payment_method` varchar(200) DEFAULT NULL,
`recurring_expense_reference` varchar(255) DEFAULT NULL,
`recurring_expense_currency_code` varchar(200) NOT NULL,
`recurring_expense_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`recurring_expense_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`recurring_expense_archived_at` datetime DEFAULT NULL,
`recurring_expense_vendor_id` int(11) NOT NULL,
`recurring_expense_client_id` int(11) NOT NULL DEFAULT 0,
`recurring_expense_category_id` int(11) NOT NULL,
`recurring_expense_account_id` int(11) NOT NULL,
`recurring_expense_billable` tinyint(1) NOT NULL DEFAULT 0,
`recurring_expense_markup` decimal(7,2) NOT NULL DEFAULT 0.00,
`recurring_expense_recurring_invoice_id` int(11) DEFAULT NULL,
PRIMARY KEY (`recurring_expense_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `recurring_invoice_items`
--
DROP TABLE IF EXISTS `recurring_invoice_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `recurring_invoice_items` (
`item_id` int(11) NOT NULL AUTO_INCREMENT,
`item_name` varchar(200) NOT NULL,
`item_description` text DEFAULT NULL,
`item_quantity` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_price` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_subtotal` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_tax` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_total` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_order` int(11) NOT NULL DEFAULT 0,
`item_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`item_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`item_archived_at` datetime DEFAULT NULL,
`item_tax_id` int(11) NOT NULL DEFAULT 0,
`item_product_id` int(11) NOT NULL DEFAULT 0,
`item_seat_source` varchar(20) DEFAULT NULL,
`item_seat_filter` varchar(1000) DEFAULT NULL,
`item_seat_minimum` decimal(15,2) NOT NULL DEFAULT 0.00,
`item_recurring_invoice_id` int(11) NOT NULL,
PRIMARY KEY (`item_id`),
KEY `item_product_id` (`item_product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `recurring_invoices`
--
DROP TABLE IF EXISTS `recurring_invoices`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `recurring_invoices` (
`recurring_invoice_id` int(11) NOT NULL AUTO_INCREMENT,
`recurring_invoice_prefix` varchar(200) DEFAULT NULL,
`recurring_invoice_number` int(11) NOT NULL,
`recurring_invoice_scope` varchar(255) DEFAULT NULL,
`recurring_invoice_frequency` varchar(200) NOT NULL,
`recurring_invoice_last_sent` date DEFAULT NULL,
`recurring_invoice_next_date` date NOT NULL,
`recurring_invoice_anchor_day` tinyint(2) NOT NULL DEFAULT 0,
`recurring_invoice_status` int(1) NOT NULL,
`recurring_invoice_discount_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`recurring_invoice_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`recurring_invoice_currency_code` varchar(200) NOT NULL,
`recurring_invoice_note` text DEFAULT NULL,
`recurring_invoice_auto_send` tinyint(1) NOT NULL DEFAULT 1,
`recurring_invoice_email_notify` tinyint(1) NOT NULL DEFAULT 1,
`recurring_invoice_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`recurring_invoice_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`recurring_invoice_archived_at` datetime DEFAULT NULL,
`recurring_invoice_category_id` int(11) NOT NULL,
`recurring_invoice_quote_id` int(11) NOT NULL DEFAULT 0,
`recurring_invoice_client_id` int(11) NOT NULL,
PRIMARY KEY (`recurring_invoice_id`),
KEY `recurring_invoice_client_id` (`recurring_invoice_client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `recurring_payments`
--
DROP TABLE IF EXISTS `recurring_payments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `recurring_payments` (
`recurring_payment_id` int(11) NOT NULL AUTO_INCREMENT,
`recurring_payment_currency_code` varchar(10) NOT NULL,
`recurring_payment_method` varchar(200) NOT NULL,
`recurring_payment_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`recurring_payment_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`recurring_payment_archived_at` datetime DEFAULT NULL,
`recurring_payment_account_id` int(11) NOT NULL,
`recurring_payment_recurring_expense_id` int(11) NOT NULL DEFAULT 0,
`recurring_payment_recurring_invoice_id` int(11) NOT NULL,
`recurring_payment_saved_payment_id` int(11) DEFAULT NULL,
PRIMARY KEY (`recurring_payment_id`),
KEY `fk_recurring_saved_payment` (`recurring_payment_saved_payment_id`),
CONSTRAINT `fk_recurring_saved_payment` FOREIGN KEY (`recurring_payment_saved_payment_id`) REFERENCES `client_saved_payment_methods` (`saved_payment_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `recurring_ticket_assets`
--
DROP TABLE IF EXISTS `recurring_ticket_assets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `recurring_ticket_assets` (
`recurring_ticket_id` int(11) NOT NULL,
`asset_id` int(11) NOT NULL,
PRIMARY KEY (`recurring_ticket_id`,`asset_id`),
KEY `asset_id` (`asset_id`),
CONSTRAINT `recurring_ticket_assets_ibfk_1` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE,
CONSTRAINT `recurring_ticket_assets_ibfk_2` FOREIGN KEY (`recurring_ticket_id`) REFERENCES `recurring_tickets` (`recurring_ticket_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `recurring_ticket_tasks`
--
DROP TABLE IF EXISTS `recurring_ticket_tasks`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `recurring_ticket_tasks` (
`recurring_ticket_task_id` int(11) NOT NULL AUTO_INCREMENT,
`recurring_ticket_task_name` varchar(255) NOT NULL,
`recurring_ticket_task_order` int(11) NOT NULL DEFAULT 0,
`recurring_ticket_task_completion_estimate` int(11) NOT NULL DEFAULT 0,
`recurring_ticket_task_recurring_ticket_id` int(11) NOT NULL,
PRIMARY KEY (`recurring_ticket_task_id`),
KEY `recurring_ticket_task_recurring_ticket_id` (`recurring_ticket_task_recurring_ticket_id`),
CONSTRAINT `recurring_ticket_tasks_ibfk_1` FOREIGN KEY (`recurring_ticket_task_recurring_ticket_id`) REFERENCES `recurring_tickets` (`recurring_ticket_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `recurring_tickets`
--
DROP TABLE IF EXISTS `recurring_tickets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `recurring_tickets` (
`recurring_ticket_id` int(11) NOT NULL AUTO_INCREMENT,
`recurring_ticket_category` varchar(200) DEFAULT NULL,
`recurring_ticket_subject` varchar(500) NOT NULL,
`recurring_ticket_details` longtext NOT NULL,
`recurring_ticket_priority` varchar(200) DEFAULT NULL,
`recurring_ticket_frequency` varchar(10) NOT NULL,
`recurring_ticket_billable` tinyint(1) NOT NULL DEFAULT 0,
`recurring_ticket_start_date` date NOT NULL,
`recurring_ticket_next_run` date NOT NULL,
`recurring_ticket_paused_at` datetime DEFAULT NULL,
`recurring_ticket_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`recurring_ticket_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`recurring_ticket_created_by` int(11) NOT NULL DEFAULT 0,
`recurring_ticket_assigned_to` int(11) NOT NULL DEFAULT 0,
`recurring_ticket_client_id` int(11) NOT NULL DEFAULT 0,
`recurring_ticket_contact_id` int(11) NOT NULL DEFAULT 0,
`recurring_ticket_asset_id` int(11) NOT NULL DEFAULT 0,
`recurring_ticket_ticket_template_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`recurring_ticket_id`),
KEY `recurring_ticket_client_id` (`recurring_ticket_client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `reimbursements`
--
DROP TABLE IF EXISTS `reimbursements`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `reimbursements` (
`reimbursement_id` int(11) NOT NULL AUTO_INCREMENT,
`reimbursement_user_id` int(11) NOT NULL,
`reimbursement_date` date NOT NULL,
`reimbursement_amount` decimal(15,2) NOT NULL,
`reimbursement_currency_code` varchar(200) NOT NULL,
`reimbursement_account_id` int(11) NOT NULL,
`reimbursement_payment_method` varchar(200) DEFAULT NULL,
`reimbursement_reference` varchar(200) DEFAULT NULL,
`reimbursement_expense_id` int(11) NOT NULL,
`reimbursement_created_by` int(11) NOT NULL DEFAULT 0,
`reimbursement_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`reimbursement_id`),
KEY `reimbursement_user_id` (`reimbursement_user_id`),
KEY `reimbursement_expense_id` (`reimbursement_expense_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `remember_tokens`
--
DROP TABLE IF EXISTS `remember_tokens`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `remember_tokens` (
`remember_token_id` int(11) NOT NULL AUTO_INCREMENT,
`remember_token_token` varchar(255) NOT NULL,
`remember_token_user_id` int(11) NOT NULL,
`remember_token_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`remember_token_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `revenues`
--
DROP TABLE IF EXISTS `revenues`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `revenues` (
`revenue_id` int(11) NOT NULL AUTO_INCREMENT,
`revenue_date` date NOT NULL,
`revenue_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
`revenue_currency_code` varchar(200) NOT NULL,
`revenue_payment_method` varchar(200) DEFAULT NULL,
`revenue_reference` varchar(200) DEFAULT NULL,
`revenue_description` text DEFAULT NULL,
`revenue_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`revenue_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`revenue_archived_at` datetime DEFAULT NULL,
`revenue_category_id` int(11) NOT NULL DEFAULT 0,
`revenue_account_id` int(11) NOT NULL,
`revenue_client_id` int(11) NOT NULL DEFAULT 0,
`revenue_created_by` int(11) NOT NULL DEFAULT 0,
`revenue_import_key` varchar(64) DEFAULT NULL,
`revenue_reconciliation_id` int(11) DEFAULT NULL,
`revenue_deposit_transfer_id` int(11) DEFAULT NULL,
PRIMARY KEY (`revenue_id`),
KEY `revenue_client_id` (`revenue_client_id`,`revenue_archived_at`),
KEY `revenue_date` (`revenue_date`),
KEY `revenue_import_key` (`revenue_import_key`),
KEY `revenue_reconciliation_id` (`revenue_reconciliation_id`),
KEY `revenue_deposit_transfer_id` (`revenue_deposit_transfer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_assets`
--
DROP TABLE IF EXISTS `service_assets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_assets` (
`service_id` int(11) NOT NULL,
`asset_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`,`asset_id`),
KEY `service_id` (`service_id`),
KEY `asset_id` (`asset_id`),
CONSTRAINT `service_assets_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`service_id`) ON DELETE CASCADE,
CONSTRAINT `service_assets_ibfk_2` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_certificates`
--
DROP TABLE IF EXISTS `service_certificates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_certificates` (
`service_id` int(11) NOT NULL,
`certificate_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`,`certificate_id`),
KEY `service_id` (`service_id`),
KEY `certificate_id` (`certificate_id`),
CONSTRAINT `service_certificates_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`service_id`) ON DELETE CASCADE,
CONSTRAINT `service_certificates_ibfk_2` FOREIGN KEY (`certificate_id`) REFERENCES `certificates` (`certificate_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_contacts`
--
DROP TABLE IF EXISTS `service_contacts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_contacts` (
`service_id` int(11) NOT NULL,
`contact_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`,`contact_id`),
KEY `service_id` (`service_id`),
KEY `contact_id` (`contact_id`),
CONSTRAINT `service_contacts_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`service_id`) ON DELETE CASCADE,
CONSTRAINT `service_contacts_ibfk_2` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_credentials`
--
DROP TABLE IF EXISTS `service_credentials`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_credentials` (
`service_id` int(11) NOT NULL,
`credential_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`,`credential_id`),
KEY `service_id` (`service_id`),
KEY `credential_id` (`credential_id`),
CONSTRAINT `service_credentials_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`service_id`) ON DELETE CASCADE,
CONSTRAINT `service_credentials_ibfk_2` FOREIGN KEY (`credential_id`) REFERENCES `credentials` (`credential_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_documents`
--
DROP TABLE IF EXISTS `service_documents`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_documents` (
`service_id` int(11) NOT NULL,
`document_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`,`document_id`),
KEY `service_id` (`service_id`),
KEY `document_id` (`document_id`),
CONSTRAINT `service_documents_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`service_id`) ON DELETE CASCADE,
CONSTRAINT `service_documents_ibfk_2` FOREIGN KEY (`document_id`) REFERENCES `documents` (`document_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_domains`
--
DROP TABLE IF EXISTS `service_domains`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_domains` (
`service_id` int(11) NOT NULL,
`domain_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`,`domain_id`),
KEY `service_id` (`service_id`),
KEY `domain_id` (`domain_id`),
CONSTRAINT `service_domains_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`service_id`) ON DELETE CASCADE,
CONSTRAINT `service_domains_ibfk_2` FOREIGN KEY (`domain_id`) REFERENCES `domains` (`domain_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_tags`
--
DROP TABLE IF EXISTS `service_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_tags` (
`service_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `service_tags_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`service_id`) ON DELETE CASCADE,
CONSTRAINT `service_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_tickets`
--
DROP TABLE IF EXISTS `service_tickets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_tickets` (
`service_id` int(11) NOT NULL,
`ticket_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`,`ticket_id`),
KEY `ticket_id` (`ticket_id`),
CONSTRAINT `service_tickets_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`service_id`) ON DELETE CASCADE,
CONSTRAINT `service_tickets_ibfk_2` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`ticket_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_vendors`
--
DROP TABLE IF EXISTS `service_vendors`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_vendors` (
`service_id` int(11) NOT NULL,
`vendor_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`,`vendor_id`),
KEY `service_id` (`service_id`),
KEY `vendor_id` (`vendor_id`),
CONSTRAINT `service_vendors_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`service_id`) ON DELETE CASCADE,
CONSTRAINT `service_vendors_ibfk_2` FOREIGN KEY (`vendor_id`) REFERENCES `vendors` (`vendor_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `services`
--
DROP TABLE IF EXISTS `services`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `services` (
`service_id` int(11) NOT NULL AUTO_INCREMENT,
`service_name` varchar(200) NOT NULL,
`service_description` varchar(200) NOT NULL DEFAULT '',
`service_category` varchar(50) NOT NULL DEFAULT '',
`service_importance` varchar(10) NOT NULL DEFAULT 'Medium',
`service_backup` varchar(500) DEFAULT NULL,
`service_notes` mediumtext DEFAULT NULL,
`service_favorite` tinyint(1) NOT NULL DEFAULT 0,
`service_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`service_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`service_accessed_at` datetime DEFAULT NULL,
`service_archived_at` datetime DEFAULT NULL,
`service_review_due` date DEFAULT NULL,
`service_reviewed_at` datetime DEFAULT NULL,
`service_review_interval` int(11) NOT NULL DEFAULT 0,
`service_client_id` int(11) NOT NULL,
PRIMARY KEY (`service_id`),
KEY `service_client_id` (`service_client_id`),
KEY `service_review_due` (`service_review_due`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_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` (
`company_id` int(11) NOT NULL,
`config_current_database_version` varchar(10) NOT NULL,
`config_start_page` varchar(200) DEFAULT 'clients.php',
`config_smtp_provider` varchar(200) DEFAULT NULL,
`config_smtp_host` varchar(200) DEFAULT NULL,
`config_smtp_port` int(5) DEFAULT NULL,
`config_smtp_encryption` varchar(200) DEFAULT NULL,
`config_smtp_username` varchar(200) DEFAULT NULL,
`config_smtp_password` varchar(200) DEFAULT NULL,
`config_mail_from_email` varchar(200) DEFAULT NULL,
`config_mail_from_name` varchar(200) DEFAULT NULL,
`config_imap_provider` varchar(200) DEFAULT NULL,
`config_mail_oauth_client_id` varchar(255) DEFAULT NULL,
`config_mail_oauth_client_secret` varchar(255) DEFAULT NULL,
`config_mail_oauth_tenant_id` varchar(255) DEFAULT NULL,
`config_mail_oauth_refresh_token` text DEFAULT NULL,
`config_mail_oauth_access_token` text DEFAULT NULL,
`config_mail_oauth_access_token_expires_at` datetime DEFAULT NULL,
`config_imap_host` varchar(200) DEFAULT NULL,
`config_imap_port` int(5) DEFAULT NULL,
`config_imap_encryption` varchar(200) DEFAULT NULL,
`config_imap_username` varchar(200) DEFAULT NULL,
`config_imap_password` varchar(200) DEFAULT NULL,
`config_default_transfer_from_account` int(11) DEFAULT NULL,
`config_default_transfer_to_account` int(11) DEFAULT NULL,
`config_default_payment_account` int(11) DEFAULT NULL,
`config_default_expense_account` int(11) DEFAULT NULL,
`config_default_payment_method` varchar(200) DEFAULT NULL,
`config_default_expense_payment_method` varchar(200) DEFAULT NULL,
`config_default_calendar` int(11) DEFAULT NULL,
`config_default_net_terms` int(11) DEFAULT NULL,
`config_default_hourly_rate` decimal(15,2) NOT NULL DEFAULT 0.00,
`config_time_increment` int(11) NOT NULL DEFAULT 15,
`config_time_rounding` varchar(10) NOT NULL DEFAULT 'nearest',
`config_time_minimum` int(11) NOT NULL DEFAULT 0,
`config_time_item_name` varchar(200) NOT NULL DEFAULT 'Support [Hourly]',
`config_expense_markup` decimal(7,2) NOT NULL DEFAULT 0.00,
`config_mileage_unit` varchar(2) NOT NULL DEFAULT 'mi',
`config_mileage_rate` decimal(10,4) NOT NULL DEFAULT 0.0000,
`config_mileage_category_id` int(11) NOT NULL DEFAULT 0,
`config_mileage_vendor_id` int(11) NOT NULL DEFAULT 0,
`config_trip_charge` decimal(15,2) NOT NULL DEFAULT 0.00,
`config_trip_bill_rate` decimal(10,4) NOT NULL DEFAULT 0.0000,
`config_trip_included` decimal(10,1) NOT NULL DEFAULT 0.0,
`config_trip_item_name` varchar(200) NOT NULL DEFAULT 'Travel',
`config_project_prefix` varchar(200) NOT NULL DEFAULT 'PRJ-',
`config_project_next_number` int(11) NOT NULL DEFAULT 1,
`config_invoice_prefix` varchar(200) DEFAULT NULL,
`config_invoice_next_number` int(11) DEFAULT NULL,
`config_invoice_footer` text DEFAULT NULL,
`config_invoice_from_name` varchar(200) DEFAULT NULL,
`config_invoice_from_email` varchar(200) DEFAULT NULL,
`config_invoice_late_fee_enable` tinyint(1) NOT NULL DEFAULT 0,
`config_invoice_late_fee_percent` decimal(5,2) NOT NULL DEFAULT 0.00,
`config_invoice_paid_notification_email` varchar(200) DEFAULT NULL,
`config_invoice_show_tax_id` tinyint(1) NOT NULL DEFAULT 0,
`config_tax_default_id` int(11) NOT NULL DEFAULT 0,
`config_tax_time` tinyint(1) NOT NULL DEFAULT 0,
`config_tax_trips` tinyint(1) NOT NULL DEFAULT 0,
`config_tax_expenses` tinyint(1) NOT NULL DEFAULT 0,
`config_tax_discount_before` tinyint(1) NOT NULL DEFAULT 1,
`config_recurring_invoice_prefix` varchar(200) DEFAULT NULL,
`config_recurring_invoice_next_number` int(11) NOT NULL DEFAULT 1,
`config_quote_prefix` varchar(200) DEFAULT NULL,
`config_quote_next_number` int(11) DEFAULT NULL,
`config_quote_footer` text DEFAULT NULL,
`config_quote_from_name` varchar(200) DEFAULT NULL,
`config_quote_from_email` varchar(200) DEFAULT NULL,
`config_quote_notification_email` varchar(200) DEFAULT NULL,
`config_ticket_prefix` varchar(200) DEFAULT NULL,
`config_ticket_next_number` int(11) DEFAULT NULL,
`config_ticket_from_name` varchar(200) DEFAULT NULL,
`config_ticket_from_email` varchar(200) DEFAULT NULL,
`config_ticket_email_parse` tinyint(1) NOT NULL DEFAULT 0,
`config_ticket_email_parse_unknown_senders` int(1) NOT NULL DEFAULT 0,
`config_ticket_client_general_notifications` tinyint(1) NOT NULL DEFAULT 1,
`config_ticket_autoclose_hours` int(5) NOT NULL DEFAULT 72,
`config_ticket_new_ticket_notification_email` varchar(200) DEFAULT NULL,
`config_ticket_default_billable` tinyint(1) NOT NULL DEFAULT 0,
`config_ticket_timer_autostart` tinyint(1) NOT NULL DEFAULT 0,
`config_enable_cron` tinyint(1) NOT NULL DEFAULT 0,
`config_recurring_auto_send_invoice` tinyint(1) NOT NULL DEFAULT 1,
`config_enable_alert_domain_expire` tinyint(1) NOT NULL DEFAULT 1,
`config_send_invoice_reminders` tinyint(1) NOT NULL DEFAULT 1,
`config_invoice_reminder_days` varchar(200) NOT NULL DEFAULT '1,30',
`config_invoice_reminder_repeat` int(11) NOT NULL DEFAULT 30,
`config_statement_monthly` tinyint(1) NOT NULL DEFAULT 0,
`config_statement_day` tinyint(2) NOT NULL DEFAULT 1,
`config_billing_email_attach_pdf` tinyint(1) NOT NULL DEFAULT 1,
`config_azure_client_id` varchar(200) DEFAULT NULL,
`config_azure_client_secret` varchar(200) DEFAULT NULL,
`config_module_enable_itdoc` tinyint(1) NOT NULL DEFAULT 1,
`config_module_enable_accounting` tinyint(1) NOT NULL DEFAULT 1,
`config_client_portal_enable` tinyint(1) NOT NULL DEFAULT 1,
`config_client_portal_require_mfa` tinyint(1) NOT NULL DEFAULT 0,
`config_login_message` text DEFAULT NULL,
`config_login_key_required` tinyint(1) NOT NULL DEFAULT 0,
`config_login_key_secret` varchar(255) DEFAULT NULL,
`config_login_remember_me_expire` int(11) NOT NULL DEFAULT 3,
`config_log_retention` int(11) NOT NULL DEFAULT 90,
`config_module_enable_ticketing` tinyint(1) NOT NULL DEFAULT 1,
`config_theme` varchar(200) DEFAULT 'blue',
`config_telemetry` tinyint(1) DEFAULT 0,
`config_timezone` varchar(200) NOT NULL DEFAULT 'America/New_York',
`config_business_days` varchar(20) NOT NULL DEFAULT '1,2,3,4,5',
`config_business_hours_start` time NOT NULL DEFAULT '09:00:00',
`config_business_hours_end` time NOT NULL DEFAULT '17:00:00',
`config_sla_warning_percent` tinyint(3) NOT NULL DEFAULT 75,
`config_sla_notification_email` varchar(200) DEFAULT NULL,
`config_destructive_deletes_enable` tinyint(1) NOT NULL DEFAULT 0,
`config_whitelabel_enabled` int(11) NOT NULL DEFAULT 0,
`config_whitelabel_key` text DEFAULT NULL,
`config_ticket_default_view` tinyint(1) NOT NULL DEFAULT 0,
`config_ticket_ordering` tinyint(1) NOT NULL DEFAULT 0,
`config_ticket_moving_columns` tinyint(1) NOT NULL DEFAULT 1,
`config_cron_last_dispatch_at` datetime DEFAULT NULL,
`config_backup_retention_days` int(11) NOT NULL DEFAULT 30,
`config_backup_retention_count` int(11) NOT NULL DEFAULT 5,
`config_backup_cron_type` varchar(20) NOT NULL DEFAULT 'full',
`config_update_queued_at` datetime DEFAULT NULL,
`config_internal_client_id` int(11) NOT NULL DEFAULT 0,
`config_update_latest_commit` varchar(40) DEFAULT NULL,
`config_update_pending_commits` text DEFAULT NULL,
`config_update_checked_at` datetime DEFAULT NULL,
`config_share_max_hours` int(11) NOT NULL DEFAULT 720,
`config_share_require_protection` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`company_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `shared_items`
--
DROP TABLE IF EXISTS `shared_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `shared_items` (
`item_id` int(11) NOT NULL AUTO_INCREMENT,
`item_active` int(1) NOT NULL,
`item_key` varchar(255) NOT NULL,
`item_version` tinyint(1) NOT NULL DEFAULT 1,
`item_type` varchar(255) NOT NULL,
`item_related_id` int(11) NOT NULL,
`item_name` varchar(255) DEFAULT NULL,
`item_encrypted_username` varchar(255) DEFAULT NULL,
`item_encrypted_credential` varchar(255) DEFAULT NULL,
`item_payload` mediumtext DEFAULT NULL,
`item_vault_key` varchar(255) DEFAULT NULL,
`item_passphrase` varchar(255) DEFAULT NULL,
`item_verify_email` tinyint(1) NOT NULL DEFAULT 0,
`item_code` varchar(255) DEFAULT NULL,
`item_code_sent_at` datetime DEFAULT NULL,
`item_failed_attempts` int(11) NOT NULL DEFAULT 0,
`item_note` varchar(1000) DEFAULT NULL,
`item_recipient` varchar(250) DEFAULT NULL,
`item_notify` tinyint(1) NOT NULL DEFAULT 1,
`item_views` int(11) NOT NULL DEFAULT 0,
`item_view_limit` int(11) NOT NULL DEFAULT 0,
`item_last_viewed_at` datetime DEFAULT NULL,
`item_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`item_created_by` int(11) NOT NULL DEFAULT 0,
`item_expire_at` datetime DEFAULT NULL,
`item_received_at` datetime DEFAULT NULL,
`item_ended_at` datetime DEFAULT NULL,
`item_ended_by` int(11) NOT NULL DEFAULT 0,
`item_end_reason` varchar(50) DEFAULT NULL,
`item_client_id` int(11) NOT NULL,
PRIMARY KEY (`item_id`),
KEY `item_client_id` (`item_client_id`),
KEY `item_type_related` (`item_type`,`item_related_id`),
KEY `item_expire_at` (`item_expire_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `sla_assignments`
--
DROP TABLE IF EXISTS `sla_assignments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `sla_assignments` (
`sla_assignment_id` int(11) NOT NULL AUTO_INCREMENT,
`sla_assignment_client_id` int(11) NOT NULL DEFAULT 0,
`sla_assignment_priority` varchar(200) NOT NULL,
`sla_assignment_sla_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`sla_assignment_id`),
UNIQUE KEY `sla_assignment_client_priority` (`sla_assignment_client_id`,`sla_assignment_priority`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `sla_history`
--
DROP TABLE IF EXISTS `sla_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `sla_history` (
`sla_history_id` int(11) NOT NULL AUTO_INCREMENT,
`sla_history_started_at` datetime NOT NULL,
`sla_history_ended_at` datetime DEFAULT NULL,
`sla_history_minutes` int(11) DEFAULT NULL,
`sla_history_ticket_id` int(11) NOT NULL,
PRIMARY KEY (`sla_history_id`),
KEY `sla_history_ticket_id` (`sla_history_ticket_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `slas`
--
DROP TABLE IF EXISTS `slas`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `slas` (
`sla_id` int(11) NOT NULL AUTO_INCREMENT,
`sla_name` varchar(200) NOT NULL,
`sla_description` varchar(500) DEFAULT NULL,
`sla_response_minutes` int(11) NOT NULL,
`sla_resolution_minutes` int(11) DEFAULT NULL,
`sla_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`sla_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`sla_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software`
--
DROP TABLE IF EXISTS `software`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software` (
`software_id` int(11) NOT NULL AUTO_INCREMENT,
`software_name` varchar(200) NOT NULL,
`software_description` text DEFAULT NULL,
`software_version` varchar(200) DEFAULT NULL,
`software_type` varchar(200) NOT NULL,
`software_license_type` varchar(200) DEFAULT NULL,
`software_key` varchar(200) DEFAULT NULL,
`software_seats` int(11) DEFAULT NULL,
`software_purchase_reference` varchar(200) DEFAULT NULL,
`software_purchase` date DEFAULT NULL,
`software_expire` date DEFAULT NULL,
`software_notes` text DEFAULT NULL,
`software_favorite` tinyint(1) NOT NULL DEFAULT 0,
`software_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`software_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`software_archived_at` datetime DEFAULT NULL,
`software_accessed_at` datetime DEFAULT NULL,
`software_vendor_id` int(11) DEFAULT 0,
`software_client_id` int(11) NOT NULL,
PRIMARY KEY (`software_id`),
KEY `software_client_id` (`software_client_id`,`software_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_assets`
--
DROP TABLE IF EXISTS `software_assets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_assets` (
`software_id` int(11) NOT NULL,
`asset_id` int(11) NOT NULL,
PRIMARY KEY (`software_id`,`asset_id`),
KEY `asset_id` (`asset_id`),
CONSTRAINT `software_assets_ibfk_1` FOREIGN KEY (`software_id`) REFERENCES `software` (`software_id`) ON DELETE CASCADE,
CONSTRAINT `software_assets_ibfk_2` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_contacts`
--
DROP TABLE IF EXISTS `software_contacts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_contacts` (
`software_id` int(11) NOT NULL,
`contact_id` int(11) NOT NULL,
PRIMARY KEY (`software_id`,`contact_id`),
KEY `contact_id` (`contact_id`),
CONSTRAINT `software_contacts_ibfk_1` FOREIGN KEY (`software_id`) REFERENCES `software` (`software_id`) ON DELETE CASCADE,
CONSTRAINT `software_contacts_ibfk_2` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_credentials`
--
DROP TABLE IF EXISTS `software_credentials`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_credentials` (
`software_id` int(11) NOT NULL,
`credential_id` int(11) NOT NULL,
PRIMARY KEY (`software_id`,`credential_id`),
KEY `credential_id` (`credential_id`),
CONSTRAINT `software_credentials_ibfk_1` FOREIGN KEY (`software_id`) REFERENCES `software` (`software_id`) ON DELETE CASCADE,
CONSTRAINT `software_credentials_ibfk_2` FOREIGN KEY (`credential_id`) REFERENCES `credentials` (`credential_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_documents`
--
DROP TABLE IF EXISTS `software_documents`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_documents` (
`software_id` int(11) NOT NULL,
`document_id` int(11) NOT NULL,
PRIMARY KEY (`software_id`,`document_id`),
KEY `document_id` (`document_id`),
CONSTRAINT `software_documents_ibfk_1` FOREIGN KEY (`software_id`) REFERENCES `software` (`software_id`) ON DELETE CASCADE,
CONSTRAINT `software_documents_ibfk_2` FOREIGN KEY (`document_id`) REFERENCES `documents` (`document_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_files`
--
DROP TABLE IF EXISTS `software_files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_files` (
`software_id` int(11) NOT NULL,
`file_id` int(11) NOT NULL,
PRIMARY KEY (`software_id`,`file_id`),
KEY `file_id` (`file_id`),
CONSTRAINT `software_files_ibfk_1` FOREIGN KEY (`software_id`) REFERENCES `software` (`software_id`) ON DELETE CASCADE,
CONSTRAINT `software_files_ibfk_2` FOREIGN KEY (`file_id`) REFERENCES `files` (`file_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_key_asset_assignments`
--
DROP TABLE IF EXISTS `software_key_asset_assignments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_key_asset_assignments` (
`software_key_id` int(11) NOT NULL,
`asset_id` int(11) NOT NULL,
`software_key_assigned_at` datetime DEFAULT current_timestamp(),
PRIMARY KEY (`software_key_id`,`asset_id`),
KEY `asset_id` (`asset_id`),
CONSTRAINT `software_key_asset_assignments_ibfk_1` FOREIGN KEY (`software_key_id`) REFERENCES `software_keys` (`software_key_id`) ON DELETE CASCADE,
CONSTRAINT `software_key_asset_assignments_ibfk_2` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_key_contact_assignments`
--
DROP TABLE IF EXISTS `software_key_contact_assignments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_key_contact_assignments` (
`software_key_id` int(11) NOT NULL,
`contact_id` int(11) NOT NULL,
`software_key_assigned_at` datetime DEFAULT current_timestamp(),
PRIMARY KEY (`software_key_id`,`contact_id`),
KEY `contact_id` (`contact_id`),
CONSTRAINT `software_key_contact_assignments_ibfk_1` FOREIGN KEY (`software_key_id`) REFERENCES `software_keys` (`software_key_id`) ON DELETE CASCADE,
CONSTRAINT `software_key_contact_assignments_ibfk_2` FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`contact_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_keys`
--
DROP TABLE IF EXISTS `software_keys`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_keys` (
`software_key_id` int(11) NOT NULL AUTO_INCREMENT,
`software_key` varchar(400) NOT NULL,
`software_key_software_id` int(11) NOT NULL,
PRIMARY KEY (`software_key_id`),
KEY `software_key_software_id` (`software_key_software_id`),
CONSTRAINT `software_keys_ibfk_1` FOREIGN KEY (`software_key_software_id`) REFERENCES `software` (`software_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_tags`
--
DROP TABLE IF EXISTS `software_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_tags` (
`software_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`software_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `software_tags_ibfk_1` FOREIGN KEY (`software_id`) REFERENCES `software` (`software_id`) ON DELETE CASCADE,
CONSTRAINT `software_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `software_templates`
--
DROP TABLE IF EXISTS `software_templates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_templates` (
`software_template_id` int(11) NOT NULL AUTO_INCREMENT,
`software_template_name` varchar(200) NOT NULL,
`software_template_description` text DEFAULT NULL,
`software_template_version` varchar(200) DEFAULT NULL,
`software_template_type` varchar(200) NOT NULL,
`software_template_license_type` varchar(200) DEFAULT NULL,
`software_template_notes` text DEFAULT NULL,
`software_template_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`software_template_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`software_template_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`software_template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tags`
--
DROP TABLE IF EXISTS `tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tags` (
`tag_id` int(11) NOT NULL AUTO_INCREMENT,
`tag_name` varchar(200) NOT NULL,
`tag_description` varchar(255) DEFAULT NULL,
`tag_type` int(11) NOT NULL,
`tag_color` varchar(200) DEFAULT NULL,
`tag_icon` varchar(200) DEFAULT NULL,
`tag_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`tag_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`tag_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `task_approvals`
--
DROP TABLE IF EXISTS `task_approvals`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `task_approvals` (
`approval_id` int(11) NOT NULL AUTO_INCREMENT,
`approval_scope` enum('client','internal') NOT NULL,
`approval_type` enum('any','technical','billing','specific') NOT NULL,
`approval_required_user_id` int(11) DEFAULT NULL,
`approval_status` enum('pending','approved','declined') NOT NULL,
`approval_created_by` int(11) NOT NULL,
`approval_approved_by` varchar(255) DEFAULT NULL,
`approval_url_key` varchar(200) NOT NULL,
`approval_task_id` int(11) NOT NULL,
PRIMARY KEY (`approval_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `task_templates`
--
DROP TABLE IF EXISTS `task_templates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `task_templates` (
`task_template_id` int(11) NOT NULL AUTO_INCREMENT,
`task_template_name` varchar(200) NOT NULL,
`task_template_order` int(11) NOT NULL DEFAULT 0,
`task_template_completion_estimate` int(11) NOT NULL DEFAULT 0,
`task_template_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`task_template_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`task_template_archived_at` datetime DEFAULT NULL,
`task_template_ticket_template_id` int(11) NOT NULL,
PRIMARY KEY (`task_template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tasks`
--
DROP TABLE IF EXISTS `tasks`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tasks` (
`task_id` int(11) NOT NULL AUTO_INCREMENT,
`task_name` varchar(255) NOT NULL,
`task_status` varchar(255) DEFAULT NULL,
`task_order` int(11) NOT NULL DEFAULT 0,
`task_completion_estimate` int(11) NOT NULL DEFAULT 0,
`task_completed_at` datetime DEFAULT NULL,
`task_completed_by` int(11) DEFAULT NULL,
`task_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`task_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`task_ticket_id` int(11) DEFAULT NULL,
PRIMARY KEY (`task_id`),
KEY `task_ticket_id` (`task_ticket_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tax_components`
--
DROP TABLE IF EXISTS `tax_components`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tax_components` (
`component_id` int(11) NOT NULL AUTO_INCREMENT,
`component_tax_id` int(11) NOT NULL,
`component_name` varchar(200) NOT NULL,
`component_percent` decimal(9,4) NOT NULL DEFAULT 0.0000,
`component_compound` tinyint(1) NOT NULL DEFAULT 0,
`component_registration_number` varchar(100) DEFAULT NULL,
`component_order` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`component_id`),
KEY `component_tax_id` (`component_tax_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `taxes`
--
DROP TABLE IF EXISTS `taxes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `taxes` (
`tax_id` int(11) NOT NULL AUTO_INCREMENT,
`tax_name` varchar(200) NOT NULL,
`tax_percent` decimal(9,4) NOT NULL DEFAULT 0.0000,
`tax_description` varchar(255) DEFAULT NULL,
`tax_registration_number` varchar(100) DEFAULT NULL,
`tax_replaced_by` int(11) NOT NULL DEFAULT 0,
`tax_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`tax_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`tax_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`tax_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_assets`
--
DROP TABLE IF EXISTS `ticket_assets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_assets` (
`ticket_id` int(11) NOT NULL,
`asset_id` int(11) NOT NULL,
PRIMARY KEY (`ticket_id`,`asset_id`),
KEY `asset_id` (`asset_id`),
CONSTRAINT `ticket_assets_ibfk_1` FOREIGN KEY (`asset_id`) REFERENCES `assets` (`asset_id`) ON DELETE CASCADE,
CONSTRAINT `ticket_assets_ibfk_2` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`ticket_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_attachments`
--
DROP TABLE IF EXISTS `ticket_attachments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_attachments` (
`ticket_attachment_id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_attachment_name` varchar(255) NOT NULL,
`ticket_attachment_reference_name` varchar(255) NOT NULL,
`ticket_attachment_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`ticket_attachment_ticket_id` int(11) NOT NULL,
`ticket_attachment_reply_id` int(11) DEFAULT NULL,
PRIMARY KEY (`ticket_attachment_id`),
KEY `ticket_attachment_reply_id` (`ticket_attachment_reply_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_history`
--
DROP TABLE IF EXISTS `ticket_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_history` (
`ticket_history_id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_history_status` varchar(200) NOT NULL,
`ticket_history_description` varchar(255) NOT NULL,
`ticket_history_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`ticket_history_ticket_id` int(11) NOT NULL,
PRIMARY KEY (`ticket_history_id`),
KEY `ticket_history_ticket_id` (`ticket_history_ticket_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_replies`
--
DROP TABLE IF EXISTS `ticket_replies`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_replies` (
`ticket_reply_id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_reply` longtext NOT NULL,
`ticket_reply_type` varchar(10) NOT NULL,
`ticket_reply_time_worked` time DEFAULT NULL,
`ticket_reply_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`ticket_reply_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`ticket_reply_archived_at` datetime DEFAULT NULL,
`ticket_reply_by` int(11) NOT NULL,
`ticket_reply_ticket_id` int(11) NOT NULL,
PRIMARY KEY (`ticket_reply_id`),
KEY `ticket_reply_ticket_id` (`ticket_reply_ticket_id`,`ticket_reply_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_statuses`
--
DROP TABLE IF EXISTS `ticket_statuses`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_statuses` (
`ticket_status_id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_status_name` varchar(200) NOT NULL,
`ticket_status_color` varchar(200) NOT NULL,
`ticket_status_active` tinyint(1) NOT NULL DEFAULT 1,
`ticket_status_pauses_sla` tinyint(1) NOT NULL DEFAULT 0,
`ticket_status_order` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`ticket_status_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_tags`
--
DROP TABLE IF EXISTS `ticket_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_tags` (
`ticket_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`ticket_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `ticket_tags_ibfk_1` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`ticket_id`) ON DELETE CASCADE,
CONSTRAINT `ticket_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_templates`
--
DROP TABLE IF EXISTS `ticket_templates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_templates` (
`ticket_template_id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_template_name` varchar(200) NOT NULL,
`ticket_template_description` text DEFAULT NULL,
`ticket_template_subject` varchar(500) DEFAULT NULL,
`ticket_template_details` longtext DEFAULT NULL,
`ticket_template_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`ticket_template_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`ticket_template_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`ticket_template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_views`
--
DROP TABLE IF EXISTS `ticket_views`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_views` (
`view_id` int(11) NOT NULL AUTO_INCREMENT,
`view_ticket_id` int(11) NOT NULL,
`view_user_id` int(11) NOT NULL,
`view_timestamp` datetime NOT NULL,
PRIMARY KEY (`view_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_watchers`
--
DROP TABLE IF EXISTS `ticket_watchers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_watchers` (
`watcher_id` int(11) NOT NULL AUTO_INCREMENT,
`watcher_name` varchar(255) DEFAULT NULL,
`watcher_email` varchar(255) NOT NULL,
`watcher_ticket_id` int(11) NOT NULL,
PRIMARY KEY (`watcher_id`),
KEY `watcher_ticket_id` (`watcher_ticket_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tickets`
--
DROP TABLE IF EXISTS `tickets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tickets` (
`ticket_id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_prefix` varchar(200) DEFAULT NULL,
`ticket_number` int(11) NOT NULL,
`ticket_source` varchar(255) DEFAULT NULL COMMENT 'Where the Ticket Came from\r\nEmail, Client Portal, In-App, Project Template',
`ticket_category` varchar(200) DEFAULT NULL,
`ticket_subject` varchar(500) NOT NULL,
`ticket_details` longtext NOT NULL,
`ticket_priority` varchar(200) DEFAULT NULL,
`ticket_status` int(11) NOT NULL,
`ticket_sla_id` int(11) NOT NULL DEFAULT 0,
`ticket_billable` tinyint(1) NOT NULL DEFAULT 0,
`ticket_schedule` datetime DEFAULT NULL,
`ticket_onsite` tinyint(1) NOT NULL DEFAULT 0,
`ticket_vendor_ticket_number` varchar(255) DEFAULT NULL,
`ticket_feedback` varchar(200) DEFAULT NULL,
`ticket_url_key` varchar(200) DEFAULT NULL,
`ticket_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`ticket_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`ticket_due_at` datetime DEFAULT NULL,
`ticket_resolved_at` datetime DEFAULT NULL,
`ticket_archived_at` datetime DEFAULT NULL,
`ticket_first_response_at` datetime DEFAULT NULL,
`ticket_response_due_at` datetime DEFAULT NULL,
`ticket_resolution_due_at` datetime DEFAULT NULL,
`ticket_response_sla_met` tinyint(1) DEFAULT NULL,
`ticket_resolution_sla_met` tinyint(1) DEFAULT NULL,
`ticket_response_sla_alert_stage` tinyint(1) NOT NULL DEFAULT 0,
`ticket_resolution_sla_alert_stage` tinyint(1) NOT NULL DEFAULT 0,
`ticket_closed_at` datetime DEFAULT NULL,
`ticket_created_by` int(11) NOT NULL,
`ticket_assigned_to` int(11) NOT NULL DEFAULT 0,
`ticket_closed_by` int(11) NOT NULL DEFAULT 0,
`ticket_vendor_id` int(11) NOT NULL DEFAULT 0,
`ticket_client_id` int(11) NOT NULL DEFAULT 0,
`ticket_contact_id` int(11) NOT NULL DEFAULT 0,
`ticket_location_id` int(11) NOT NULL DEFAULT 0,
`ticket_asset_id` int(11) NOT NULL DEFAULT 0,
`ticket_quote_id` int(11) NOT NULL DEFAULT 0,
`ticket_invoice_id` int(11) NOT NULL DEFAULT 0,
`ticket_project_id` int(11) NOT NULL DEFAULT 0,
`ticket_recurring_ticket_id` int(11) DEFAULT 0,
`ticket_order` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`ticket_id`),
KEY `ticket_response_due_at` (`ticket_response_due_at`),
KEY `ticket_resolution_due_at` (`ticket_resolution_due_at`),
KEY `ticket_client_id` (`ticket_client_id`,`ticket_archived_at`),
KEY `ticket_project_id` (`ticket_project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `transfers`
--
DROP TABLE IF EXISTS `transfers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `transfers` (
`transfer_id` int(11) NOT NULL AUTO_INCREMENT,
`transfer_method` varchar(200) DEFAULT NULL,
`transfer_notes` text DEFAULT NULL,
`transfer_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`transfer_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`transfer_archived_at` datetime DEFAULT NULL,
`transfer_expense_id` int(11) NOT NULL,
`transfer_revenue_id` int(11) NOT NULL,
PRIMARY KEY (`transfer_id`),
KEY `transfer_revenue_id` (`transfer_revenue_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `trips`
--
DROP TABLE IF EXISTS `trips`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `trips` (
`trip_id` int(11) NOT NULL AUTO_INCREMENT,
`trip_date` date NOT NULL,
`trip_purpose` varchar(200) NOT NULL,
`trip_source` varchar(200) NOT NULL,
`trip_destination` varchar(200) NOT NULL,
`trip_start_odometer` int(11) DEFAULT NULL,
`trip_end_odometer` int(11) DEFAULT NULL,
`trip_miles` decimal(10,1) NOT NULL DEFAULT 0.0,
`round_trip` int(1) NOT NULL,
`trip_own_vehicle` tinyint(1) NOT NULL DEFAULT 0,
`trip_expense_id` int(11) NOT NULL DEFAULT 0,
`trip_billable` tinyint(1) NOT NULL DEFAULT 0,
`trip_invoice_id` int(11) NOT NULL DEFAULT 0,
`trip_invoice_item_id` int(11) NOT NULL DEFAULT 0,
`trip_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`trip_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`trip_archived_at` datetime DEFAULT NULL,
`trip_user_id` int(11) NOT NULL DEFAULT 0,
`trip_client_id` int(11) NOT NULL DEFAULT 0,
`trip_location_id` int(11) NOT NULL DEFAULT 0,
`trip_ticket_id` int(11) NOT NULL DEFAULT 0,
`trip_created_by` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`trip_id`),
KEY `trip_client_id` (`trip_client_id`,`trip_archived_at`),
KEY `trip_user_id` (`trip_user_id`,`trip_date`),
KEY `trip_ticket_id` (`trip_ticket_id`),
KEY `trip_location_id` (`trip_location_id`),
KEY `trip_expense_id` (`trip_expense_id`),
KEY `trip_invoice_id` (`trip_invoice_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user_calendar_feeds`
--
DROP TABLE IF EXISTS `user_calendar_feeds`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_calendar_feeds` (
`feed_user_id` int(11) NOT NULL,
`feed_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
`feed_scope` varchar(20) NOT NULL DEFAULT 'mine',
`feed_tickets` tinyint(1) NOT NULL DEFAULT 1,
`feed_events` tinyint(1) NOT NULL DEFAULT 1,
`feed_projects` tinyint(1) NOT NULL DEFAULT 1,
`feed_busy_only` tinyint(1) NOT NULL DEFAULT 0,
`feed_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`feed_accessed_at` datetime DEFAULT NULL,
PRIMARY KEY (`feed_user_id`),
UNIQUE KEY `feed_key` (`feed_key`),
CONSTRAINT `user_calendar_feeds_ibfk_1` FOREIGN KEY (`feed_user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user_client_permissions`
--
DROP TABLE IF EXISTS `user_client_permissions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_client_permissions` (
`user_id` int(11) NOT NULL,
`client_id` int(11) NOT NULL,
`permission_type` enum('allow','deny') NOT NULL DEFAULT 'allow',
PRIMARY KEY (`user_id`,`client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user_role_permissions`
--
DROP TABLE IF EXISTS `user_role_permissions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_role_permissions` (
`user_role_id` int(11) NOT NULL,
`module_id` int(11) NOT NULL,
`user_role_permission_level` int(11) NOT NULL,
PRIMARY KEY (`user_role_id`,`module_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user_roles`
--
DROP TABLE IF EXISTS `user_roles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_roles` (
`role_id` int(11) NOT NULL AUTO_INCREMENT,
`role_name` varchar(200) NOT NULL,
`role_description` varchar(200) DEFAULT NULL,
`role_type` tinyint(1) NOT NULL DEFAULT 1,
`role_is_admin` tinyint(1) NOT NULL DEFAULT 0,
`role_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`role_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`role_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user_settings`
--
DROP TABLE IF EXISTS `user_settings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_settings` (
`user_id` int(11) NOT NULL,
`user_config_force_mfa` tinyint(1) NOT NULL DEFAULT 0,
`user_config_records_per_page` int(11) NOT NULL DEFAULT 10,
`user_config_dashboard_financial_enable` tinyint(1) NOT NULL DEFAULT 0,
`user_config_dashboard_technical_enable` tinyint(1) NOT NULL DEFAULT 0,
`user_config_calendar_first_day` tinyint(1) NOT NULL DEFAULT 0,
`user_config_signature` text DEFAULT NULL,
`user_config_theme_dark` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_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` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(200) NOT NULL,
`user_email` varchar(200) NOT NULL,
`user_password` varchar(200) NOT NULL,
`user_auth_method` varchar(200) NOT NULL DEFAULT 'local',
`user_type` tinyint(1) NOT NULL DEFAULT 1,
`user_status` tinyint(1) NOT NULL DEFAULT 1,
`user_token` varchar(200) DEFAULT NULL,
`user_password_reset_token` varchar(200) DEFAULT NULL,
`user_password_reset_token_expire` datetime DEFAULT NULL,
`user_avatar` varchar(200) DEFAULT NULL,
`user_specific_encryption_ciphertext` varchar(200) DEFAULT NULL,
`user_php_session` varchar(255) DEFAULT NULL,
`user_extension_key` varchar(18) DEFAULT NULL,
`user_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`user_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`user_archived_at` datetime DEFAULT NULL,
`user_role_id` int(11) DEFAULT 0,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `vendor_credentials`
--
DROP TABLE IF EXISTS `vendor_credentials`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `vendor_credentials` (
`vendor_id` int(11) NOT NULL,
`credential_id` int(11) NOT NULL,
PRIMARY KEY (`vendor_id`,`credential_id`),
KEY `credential_id` (`credential_id`),
CONSTRAINT `vendor_credentials_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `vendors` (`vendor_id`) ON DELETE CASCADE,
CONSTRAINT `vendor_credentials_ibfk_2` FOREIGN KEY (`credential_id`) REFERENCES `credentials` (`credential_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `vendor_documents`
--
DROP TABLE IF EXISTS `vendor_documents`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `vendor_documents` (
`vendor_id` int(11) NOT NULL,
`document_id` int(11) NOT NULL,
PRIMARY KEY (`vendor_id`,`document_id`),
KEY `document_id` (`document_id`),
CONSTRAINT `vendor_documents_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `vendors` (`vendor_id`) ON DELETE CASCADE,
CONSTRAINT `vendor_documents_ibfk_2` FOREIGN KEY (`document_id`) REFERENCES `documents` (`document_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `vendor_files`
--
DROP TABLE IF EXISTS `vendor_files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `vendor_files` (
`vendor_id` int(11) NOT NULL,
`file_id` int(11) NOT NULL,
PRIMARY KEY (`vendor_id`,`file_id`),
KEY `file_id` (`file_id`),
CONSTRAINT `vendor_files_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `vendors` (`vendor_id`) ON DELETE CASCADE,
CONSTRAINT `vendor_files_ibfk_2` FOREIGN KEY (`file_id`) REFERENCES `files` (`file_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `vendor_tags`
--
DROP TABLE IF EXISTS `vendor_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `vendor_tags` (
`vendor_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`vendor_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `vendor_tags_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `vendors` (`vendor_id`) ON DELETE CASCADE,
CONSTRAINT `vendor_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`tag_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `vendor_templates`
--
DROP TABLE IF EXISTS `vendor_templates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `vendor_templates` (
`vendor_template_id` int(11) NOT NULL AUTO_INCREMENT,
`vendor_template_name` varchar(200) NOT NULL,
`vendor_template_description` varchar(200) DEFAULT NULL,
`vendor_template_contact_name` varchar(200) DEFAULT NULL,
`vendor_template_phone_country_code` varchar(10) DEFAULT NULL,
`vendor_template_phone` varchar(200) DEFAULT NULL,
`vendor_template_extension` varchar(200) DEFAULT NULL,
`vendor_template_email` varchar(200) DEFAULT NULL,
`vendor_template_website` varchar(200) DEFAULT NULL,
`vendor_template_hours` varchar(200) DEFAULT NULL,
`vendor_template_sla` varchar(200) DEFAULT NULL,
`vendor_template_code` varchar(200) DEFAULT NULL,
`vendor_template_account_number` varchar(200) DEFAULT NULL,
`vendor_template_notes` text DEFAULT NULL,
`vendor_template_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`vendor_template_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`vendor_template_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`vendor_template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `vendors`
--
DROP TABLE IF EXISTS `vendors`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `vendors` (
`vendor_id` int(11) NOT NULL AUTO_INCREMENT,
`vendor_name` varchar(200) NOT NULL,
`vendor_description` varchar(200) DEFAULT NULL,
`vendor_contact_name` varchar(200) DEFAULT NULL,
`vendor_contact_phone_country_code` varchar(10) DEFAULT NULL,
`vendor_contact_phone` varchar(200) DEFAULT NULL,
`vendor_contact_email` varchar(200) DEFAULT NULL,
`vendor_phone_country_code` varchar(10) DEFAULT NULL,
`vendor_phone` varchar(200) DEFAULT NULL,
`vendor_extension` varchar(200) DEFAULT NULL,
`vendor_email` varchar(200) DEFAULT NULL,
`vendor_website` varchar(200) DEFAULT NULL,
`vendor_hours` varchar(200) DEFAULT NULL,
`vendor_sla` varchar(200) DEFAULT NULL,
`vendor_code` varchar(200) DEFAULT NULL,
`vendor_account_number` varchar(200) DEFAULT NULL,
`vendor_notes` text DEFAULT NULL,
`vendor_favorite` tinyint(1) NOT NULL DEFAULT 0,
`vendor_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`vendor_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`vendor_archived_at` datetime DEFAULT NULL,
`vendor_accessed_at` datetime DEFAULT NULL,
`vendor_client_id` int(11) NOT NULL DEFAULT 0,
`vendor_template_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`vendor_id`),
KEY `vendor_client_id` (`vendor_client_id`,`vendor_archived_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_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-08-28 16:40:00