Files
itflow/db.sql
johnnyq 3b5c11c552 Add managed mode, so one ITFlow can manage others - Admin > Managed Instances adds an instance and gives a one-time connection code (a week) that the other ITFlow pastes into the new Admin > Managed By, after which it checks in every minute from the new Manager Check-in cron job with a health report (versions, update waiting and whether it has security fixes, cron, last backup, errors today, agents against the seat limit, clients, storage) and takes back what the manager sets; the manager lists each instance's version, health, seats and last check-in with a page per instance showing what needs a look, its requests and everything it reported, can update it by hand or automatically after a set number of days (security releases straight away, not retried for six hours after a failure), set its seat limit and white-label key (locked on the instance while set), make it read-only (look, export and download only, across agents, portal, guest links and the API) or suspended (a notice with the manager's message and contact, 503 for the API) with other cron jobs paused until it is active again, sign in to it as support through a signed one-time two-minute link into a two-hour session that takes no seat, can't open the vault and can't set passwords or make API keys, and remove it, while the new Managed Instances job notifies when one stops checking in and closes requests never answered; instances only call the manager, can disconnect unless config.php sets $config_manager_required, and the Update page and queue_update defer to the manager; database 3.5.8 adds managed_instances, managed_instance_commands, settings.config_manager_keys and settings.config_managed, the logic is in the new functions/managed.php with api/managed/enroll.php, api/managed/checkin.php, login_support.php and includes/managed_blocked.php, cronJobClaim() takes a paused reason that leaves a due job due, getAgentUserLimit() and getActiveAgentUserCount() honour the manager's limit and leave out the support user, the vault helpers read a missing session key as empty, the audit log knows the new types and actions, and the email parser no longer logs an App Logs error every minute while parsing is switched off; changelog updated
2026-11-05 15:22:41 -05:00

4459 lines
196 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_kind` varchar(50) NOT NULL DEFAULT 'custom',
`ai_provider_api_url` varchar(500) NOT NULL,
`ai_provider_api_key` varchar(500) DEFAULT NULL,
`ai_provider_redact` tinyint(1) NOT NULL DEFAULT 1,
`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 `ai_ticket_triage`
--
DROP TABLE IF EXISTS `ai_ticket_triage`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ai_ticket_triage` (
`ai_triage_ticket_id` int(11) NOT NULL,
`ai_triage_category_id` int(11) NOT NULL DEFAULT 0,
`ai_triage_priority` varchar(20) DEFAULT NULL,
`ai_triage_summary` varchar(300) DEFAULT NULL,
`ai_triage_reason` varchar(200) DEFAULT NULL,
`ai_triage_state` varchar(20) NOT NULL DEFAULT 'suggested',
`ai_triage_by` int(11) NOT NULL DEFAULT 0,
`ai_triage_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`ai_triage_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (`ai_triage_ticket_id`),
KEY `ai_triage_state` (`ai_triage_state`),
CONSTRAINT `ai_ticket_triage_ticket` FOREIGN KEY (`ai_triage_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 `ai_usage`
--
DROP TABLE IF EXISTS `ai_usage`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ai_usage` (
`ai_usage_id` int(11) NOT NULL AUTO_INCREMENT,
`ai_usage_feature` varchar(50) NOT NULL,
`ai_usage_use_case` varchar(50) DEFAULT NULL,
`ai_usage_provider_id` int(11) NOT NULL DEFAULT 0,
`ai_usage_provider_name` varchar(200) DEFAULT NULL,
`ai_usage_model_id` int(11) NOT NULL DEFAULT 0,
`ai_usage_model` varchar(200) DEFAULT NULL,
`ai_usage_user_id` int(11) NOT NULL DEFAULT 0,
`ai_usage_client_id` int(11) NOT NULL DEFAULT 0,
`ai_usage_tokens_in` int(11) NOT NULL DEFAULT 0,
`ai_usage_tokens_out` int(11) NOT NULL DEFAULT 0,
`ai_usage_ms` int(11) NOT NULL DEFAULT 0,
`ai_usage_redacted` int(11) NOT NULL DEFAULT 0,
`ai_usage_ok` tinyint(1) NOT NULL DEFAULT 1,
`ai_usage_error` varchar(255) DEFAULT NULL,
`ai_usage_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`ai_usage_id`),
KEY `ai_usage_created_at` (`ai_usage_created_at`),
KEY `ai_usage_provider_id` (`ai_usage_provider_id`),
KEY `ai_usage_model_id` (`ai_usage_model_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `api_key_usage`
--
DROP TABLE IF EXISTS `api_key_usage`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `api_key_usage` (
`api_key_usage_key_id` int(11) NOT NULL,
`api_key_usage_date` date NOT NULL,
`api_key_usage_endpoint` varchar(100) NOT NULL DEFAULT '',
`api_key_usage_calls` int(11) NOT NULL DEFAULT 0,
`api_key_usage_last_at` datetime NOT NULL DEFAULT current_timestamp(),
`api_key_usage_last_ip` varchar(200) DEFAULT NULL,
PRIMARY KEY (`api_key_usage_key_id`,`api_key_usage_date`,`api_key_usage_endpoint`)
) 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`),
KEY `app_log_created_at` (`app_log_created_at`)
) 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_specs`
--
DROP TABLE IF EXISTS `asset_specs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `asset_specs` (
`asset_spec_id` int(11) NOT NULL AUTO_INCREMENT,
`asset_spec_asset_id` int(11) NOT NULL,
`asset_spec_key` varchar(50) NOT NULL,
`asset_spec_value` varchar(255) NOT NULL,
PRIMARY KEY (`asset_spec_id`),
UNIQUE KEY `asset_spec_asset_key` (`asset_spec_asset_id`,`asset_spec_key`),
KEY `asset_spec_key` (`asset_spec_key`,`asset_spec_value`(20)),
CONSTRAINT `asset_specs_asset` FOREIGN KEY (`asset_spec_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 `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_response_categories`
--
DROP TABLE IF EXISTS `canned_response_categories`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `canned_response_categories` (
`canned_response_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
PRIMARY KEY (`canned_response_id`,`category_id`),
KEY `category_id` (`category_id`),
CONSTRAINT `canned_response_categories_ibfk_1` FOREIGN KEY (`canned_response_id`) REFERENCES `canned_responses` (`canned_response_id`) ON DELETE CASCADE,
CONSTRAINT `canned_response_categories_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `categories` (`category_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 `canned_response_files`
--
DROP TABLE IF EXISTS `canned_response_files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `canned_response_files` (
`canned_response_file_id` int(11) NOT NULL AUTO_INCREMENT,
`canned_response_file_canned_response_id` int(11) NOT NULL,
`canned_response_file_name` varchar(255) NOT NULL,
`canned_response_file_reference_name` varchar(255) NOT NULL,
`canned_response_file_size` int(11) NOT NULL DEFAULT 0,
`canned_response_file_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`canned_response_file_id`),
KEY `canned_response_file_canned_response_id` (`canned_response_file_canned_response_id`),
CONSTRAINT `canned_response_files_ibfk_1` FOREIGN KEY (`canned_response_file_canned_response_id`) REFERENCES `canned_responses` (`canned_response_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 `canned_response_uses`
--
DROP TABLE IF EXISTS `canned_response_uses`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `canned_response_uses` (
`canned_response_use_id` int(11) NOT NULL AUTO_INCREMENT,
`canned_response_use_canned_response_id` int(11) NOT NULL,
`canned_response_use_user_id` int(11) NOT NULL DEFAULT 0,
`canned_response_use_ticket_id` int(11) NOT NULL DEFAULT 0,
`canned_response_use_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`canned_response_use_id`),
KEY `canned_response_use_canned_response_id` (`canned_response_use_canned_response_id`,`canned_response_use_created_at`),
KEY `canned_response_use_user_id` (`canned_response_use_user_id`),
CONSTRAINT `canned_response_uses_ibfk_1` FOREIGN KEY (`canned_response_use_canned_response_id`) REFERENCES `canned_responses` (`canned_response_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 `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_reply_type` tinyint(1) DEFAULT NULL,
`canned_response_ticket_status` int(11) DEFAULT NULL,
`canned_response_minutes` int(11) NOT NULL DEFAULT 0,
`canned_response_user_id` int(11) NOT NULL DEFAULT 0,
`canned_response_created_by` 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_user_id` (`canned_response_user_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_onboardings`
--
DROP TABLE IF EXISTS `client_onboardings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `client_onboardings` (
`onboarding_id` int(11) NOT NULL AUTO_INCREMENT,
`onboarding_client_id` int(11) NOT NULL,
`onboarding_saved` varchar(255) NOT NULL DEFAULT '',
`onboarding_skipped` varchar(255) NOT NULL DEFAULT '',
`onboarding_contract_id` int(11) NOT NULL DEFAULT 0,
`onboarding_recurring_invoice_id` int(11) NOT NULL DEFAULT 0,
`onboarding_project_id` int(11) NOT NULL DEFAULT 0,
`onboarding_started_by` int(11) NOT NULL DEFAULT 0,
`onboarding_started_at` datetime NOT NULL DEFAULT current_timestamp(),
`onboarding_finished_at` datetime DEFAULT NULL,
`onboarding_dismissed_at` datetime DEFAULT NULL,
PRIMARY KEY (`onboarding_id`),
UNIQUE KEY `onboarding_client_id` (`onboarding_client_id`),
CONSTRAINT `client_onboardings_ibfk_1` FOREIGN KEY (`onboarding_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_currency_code` varchar(200) NOT NULL,
`client_reminders` tinyint(1) NOT NULL DEFAULT 1,
`client_portal_signup` tinyint(1) NOT NULL DEFAULT 0,
`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_card_fee_exempt` tinyint(1) NOT NULL DEFAULT 0,
`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_block_uses`
--
DROP TABLE IF EXISTS `contract_block_uses`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contract_block_uses` (
`contract_block_use_id` int(11) NOT NULL AUTO_INCREMENT,
`contract_block_use_block_id` int(11) NOT NULL,
`contract_block_use_ticket_id` int(11) NOT NULL,
`contract_block_use_hours` decimal(8,2) NOT NULL,
`contract_block_use_full` tinyint(1) NOT NULL DEFAULT 0,
`contract_block_use_created_by` int(11) NOT NULL DEFAULT 0,
`contract_block_use_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`contract_block_use_id`),
KEY `contract_block_use_block_id` (`contract_block_use_block_id`),
KEY `contract_block_use_ticket_id` (`contract_block_use_ticket_id`),
CONSTRAINT `contract_block_uses_ibfk_1` FOREIGN KEY (`contract_block_use_block_id`) REFERENCES `contract_blocks` (`contract_block_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 `contract_blocks`
--
DROP TABLE IF EXISTS `contract_blocks`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contract_blocks` (
`contract_block_id` int(11) NOT NULL AUTO_INCREMENT,
`contract_block_contract_id` int(11) NOT NULL,
`contract_block_hours` decimal(8,2) NOT NULL,
`contract_block_price` decimal(15,2) DEFAULT NULL,
`contract_block_bought` date NOT NULL,
`contract_block_expires` date DEFAULT NULL,
`contract_block_month` char(7) DEFAULT NULL,
`contract_block_invoice_id` int(11) NOT NULL DEFAULT 0,
`contract_block_note` varchar(255) DEFAULT NULL,
`contract_block_created_by` int(11) NOT NULL DEFAULT 0,
`contract_block_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`contract_block_id`),
UNIQUE KEY `contract_block_month` (`contract_block_contract_id`,`contract_block_month`),
CONSTRAINT `contract_blocks_ibfk_1` FOREIGN KEY (`contract_block_contract_id`) REFERENCES `contracts` (`contract_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 `contract_signatures`
--
DROP TABLE IF EXISTS `contract_signatures`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contract_signatures` (
`contract_signature_id` int(11) NOT NULL AUTO_INCREMENT,
`contract_signature_contract_id` int(11) NOT NULL,
`contract_signature_url_key` varchar(64) NOT NULL DEFAULT '',
`contract_signature_document` mediumtext NOT NULL,
`contract_signature_document_hash` char(64) NOT NULL DEFAULT '',
`contract_signature_contact_id` int(11) NOT NULL DEFAULT 0,
`contract_signature_sent_to_name` varchar(200) DEFAULT NULL,
`contract_signature_sent_to_email` varchar(255) DEFAULT NULL,
`contract_signature_sent_at` datetime DEFAULT NULL,
`contract_signature_sent_by` int(11) NOT NULL DEFAULT 0,
`contract_signature_viewed_at` datetime DEFAULT NULL,
`contract_signature_client_name` varchar(200) DEFAULT NULL,
`contract_signature_client_title` varchar(200) DEFAULT NULL,
`contract_signature_client_image` mediumtext DEFAULT NULL,
`contract_signature_client_signed_at` datetime DEFAULT NULL,
`contract_signature_client_via` varchar(20) DEFAULT NULL,
`contract_signature_client_contact_id` int(11) NOT NULL DEFAULT 0,
`contract_signature_client_ip` varchar(45) DEFAULT NULL,
`contract_signature_client_user_agent` varchar(255) DEFAULT NULL,
`contract_signature_agent_user_id` int(11) NOT NULL DEFAULT 0,
`contract_signature_agent_name` varchar(200) DEFAULT NULL,
`contract_signature_agent_title` varchar(200) DEFAULT NULL,
`contract_signature_agent_image` mediumtext DEFAULT NULL,
`contract_signature_agent_signed_at` datetime DEFAULT NULL,
`contract_signature_agent_ip` varchar(45) DEFAULT NULL,
`contract_signature_withdrawn_at` datetime DEFAULT NULL,
`contract_signature_withdrawn_reason` varchar(255) DEFAULT NULL,
`contract_signature_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`contract_signature_id`),
KEY `contract_signature_contract_id` (`contract_signature_contract_id`),
CONSTRAINT `contract_signatures_ibfk_1` FOREIGN KEY (`contract_signature_contract_id`) REFERENCES `contracts` (`contract_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 `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_rate_standard` decimal(10,2) DEFAULT NULL,
`contract_template_rate_after_hours` decimal(10,2) DEFAULT NULL,
`contract_template_net_terms` int(11) DEFAULT NULL,
`contract_template_support_hours` varchar(100) 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,
`contract_template_term_months` int(11) NOT NULL DEFAULT 12,
`contract_template_auto_renew` tinyint(1) NOT NULL DEFAULT 1,
`contract_template_notice_days` int(11) NOT NULL DEFAULT 30,
`contract_template_sla_low_id` int(11) NOT NULL DEFAULT 0,
`contract_template_sla_medium_id` int(11) NOT NULL DEFAULT 0,
`contract_template_sla_high_id` int(11) NOT NULL DEFAULT 0,
`contract_template_sla_urgent_id` int(11) NOT NULL DEFAULT 0,
`contract_template_monthly_hours` decimal(8,2) NOT NULL DEFAULT 0.00,
`contract_template_hours_alert` decimal(8,2) NOT NULL DEFAULT 0.00,
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_details` text DEFAULT NULL,
`contract_client_id` int(11) DEFAULT NULL,
`contract_rate_standard` decimal(10,2) DEFAULT NULL,
`contract_rate_after_hours` decimal(10,2) DEFAULT NULL,
`contract_net_terms` int(11) DEFAULT NULL,
`contract_support_hours` varchar(100) DEFAULT NULL,
`contract_start_date` date DEFAULT NULL,
`contract_end_date` date 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,
`contract_term_months` int(11) NOT NULL DEFAULT 12,
`contract_auto_renew` tinyint(1) NOT NULL DEFAULT 1,
`contract_notice_days` int(11) NOT NULL DEFAULT 30,
`contract_sla_low_id` int(11) NOT NULL DEFAULT 0,
`contract_sla_medium_id` int(11) NOT NULL DEFAULT 0,
`contract_sla_high_id` int(11) NOT NULL DEFAULT 0,
`contract_sla_urgent_id` int(11) NOT NULL DEFAULT 0,
`contract_template_id` int(11) NOT NULL DEFAULT 0,
`contract_contact_id` int(11) NOT NULL DEFAULT 0,
`contract_owner_id` int(11) NOT NULL DEFAULT 0,
`contract_notes` text DEFAULT NULL,
`contract_renewed_at` datetime DEFAULT NULL,
`contract_reminded_at` datetime DEFAULT NULL,
`contract_cancelled_at` datetime DEFAULT NULL,
`contract_cancel_reason` varchar(255) DEFAULT NULL,
`contract_created_by` int(11) NOT NULL DEFAULT 0,
`contract_monthly_hours` decimal(8,2) NOT NULL DEFAULT 0.00,
`contract_hours_alert` decimal(8,2) NOT NULL DEFAULT 0.00,
`contract_hours_alerted_at` datetime DEFAULT NULL,
`contract_recurring_invoice_id` int(11) NOT NULL DEFAULT 0,
`contract_recurring_stopped_at` datetime DEFAULT NULL,
PRIMARY KEY (`contract_id`),
KEY `contract_client_id` (`contract_client_id`),
KEY `contract_recurring_invoice_id` (`contract_recurring_invoice_id`),
CONSTRAINT `contracts_ibfk_1` FOREIGN KEY (`contract_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 `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_template_fill_ins`
--
DROP TABLE IF EXISTS `document_template_fill_ins`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `document_template_fill_ins` (
`document_fill_in_id` int(11) NOT NULL AUTO_INCREMENT,
`document_fill_in_document_template_id` int(11) NOT NULL,
`document_fill_in_name` varchar(50) NOT NULL,
`document_fill_in_type` varchar(10) NOT NULL DEFAULT 'text',
`document_fill_in_options` text DEFAULT NULL,
`document_fill_in_required` tinyint(1) NOT NULL DEFAULT 0,
`document_fill_in_help` varchar(255) DEFAULT NULL,
`document_fill_in_order` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`document_fill_in_id`),
UNIQUE KEY `document_fill_in_template_name` (`document_fill_in_document_template_id`,`document_fill_in_name`),
CONSTRAINT `document_template_fill_ins_ibfk_1` FOREIGN KEY (`document_fill_in_document_template_id`) REFERENCES `document_templates` (`document_template_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_template_required_tags`
--
DROP TABLE IF EXISTS `document_template_required_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `document_template_required_tags` (
`document_template_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`document_template_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `document_template_required_tags_ibfk_1` FOREIGN KEY (`document_template_id`) REFERENCES `document_templates` (`document_template_id`) ON DELETE CASCADE,
CONSTRAINT `document_template_required_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_required` tinyint(1) NOT NULL DEFAULT 0,
`document_template_review_months` int(11) NOT NULL DEFAULT 0,
`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_reviewed_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_reviewed_by` int(11) NOT NULL DEFAULT 0,
`document_client_id` int(11) NOT NULL DEFAULT 0,
`document_template_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`document_id`),
KEY `document_client_id` (`document_client_id`,`document_archived_at`),
KEY `document_template_id` (`document_template_id`),
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_error` varchar(500) DEFAULT NULL,
`email_attempts` tinyint(1) NOT NULL DEFAULT 0,
`email_sent_at` datetime DEFAULT NULL,
`email_ticket_reply_id` int(11) DEFAULT NULL,
PRIMARY KEY (`email_id`),
KEY `email_status` (`email_status`,`email_queued_at`),
KEY `email_ticket_reply_id` (`email_ticket_reply_id`)
) 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`),
KEY `expense_refund_of_id` (`expense_refund_of_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`),
KEY `log_client_id` (`log_client_id`,`log_created_at`),
KEY `log_entity_id` (`log_entity_id`,`log_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `managed_instance_commands`
--
DROP TABLE IF EXISTS `managed_instance_commands`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `managed_instance_commands` (
`managed_command_id` int(11) NOT NULL AUTO_INCREMENT,
`managed_command_instance_id` int(11) NOT NULL,
`managed_command` varchar(40) NOT NULL,
`managed_command_status` varchar(20) NOT NULL DEFAULT 'queued',
`managed_command_source` varchar(20) NOT NULL DEFAULT 'manual',
`managed_command_requested_by` varchar(200) DEFAULT NULL,
`managed_command_result` varchar(1000) DEFAULT NULL,
`managed_command_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`managed_command_sent_at` datetime DEFAULT NULL,
`managed_command_done_at` datetime DEFAULT NULL,
PRIMARY KEY (`managed_command_id`),
KEY `managed_command_instance_id` (`managed_command_instance_id`,`managed_command_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `managed_instances`
--
DROP TABLE IF EXISTS `managed_instances`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `managed_instances` (
`managed_instance_id` int(11) NOT NULL AUTO_INCREMENT,
`managed_instance_uuid` varchar(36) NOT NULL,
`managed_instance_name` varchar(200) NOT NULL,
`managed_instance_client_id` int(11) NOT NULL DEFAULT 0,
`managed_instance_notes` text DEFAULT NULL,
`managed_instance_enroll_hash` varchar(64) DEFAULT NULL,
`managed_instance_enroll_expires_at` datetime DEFAULT NULL,
`managed_instance_secret_hash` varchar(64) DEFAULT NULL,
`managed_instance_enrolled_at` datetime DEFAULT NULL,
`managed_instance_url` varchar(255) DEFAULT NULL,
`managed_instance_mode` varchar(20) NOT NULL DEFAULT 'active',
`managed_instance_mode_message` varchar(500) DEFAULT NULL,
`managed_instance_seat_limit` int(11) NOT NULL DEFAULT 0,
`managed_instance_white_label_key` text DEFAULT NULL,
`managed_instance_update_policy` varchar(20) NOT NULL DEFAULT 'manual',
`managed_instance_update_delay_days` int(11) NOT NULL DEFAULT 7,
`managed_instance_version` varchar(20) DEFAULT NULL,
`managed_instance_db_version` varchar(20) DEFAULT NULL,
`managed_instance_update_version` varchar(40) DEFAULT NULL,
`managed_instance_update_seen_at` datetime DEFAULT NULL,
`managed_instance_report` mediumtext DEFAULT NULL,
`managed_instance_last_checkin_at` datetime DEFAULT NULL,
`managed_instance_last_ip` varchar(45) DEFAULT NULL,
`managed_instance_offline_notified_at` datetime DEFAULT NULL,
`managed_instance_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`managed_instance_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`managed_instance_archived_at` datetime DEFAULT NULL,
PRIMARY KEY (`managed_instance_id`),
UNIQUE KEY `managed_instance_uuid` (`managed_instance_uuid`),
KEY `managed_instance_client_id` (`managed_instance_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_use` tinyint(1) NOT NULL DEFAULT 0,
`payment_method_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`payment_method_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
`payment_method_archived_at` datetime DEFAULT NULL,
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_card_fee` tinyint(1) NOT NULL DEFAULT 0,
`payment_provider_card_fee_percent` decimal(5,2) NOT NULL DEFAULT 0.00,
`payment_provider_card_fee_fixed` decimal(15,2) NOT NULL DEFAULT 0.00,
`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 `portal_invites`
--
DROP TABLE IF EXISTS `portal_invites`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `portal_invites` (
`invite_id` int(11) NOT NULL AUTO_INCREMENT,
`invite_kind` varchar(10) NOT NULL DEFAULT 'invite',
`invite_email` varchar(200) NOT NULL,
`invite_name` varchar(200) DEFAULT NULL,
`invite_billing` tinyint(1) NOT NULL DEFAULT 0,
`invite_technical` tinyint(1) NOT NULL DEFAULT 0,
`invite_token_hash` char(64) NOT NULL DEFAULT '',
`invite_expires_at` datetime NOT NULL,
`invite_sent_at` datetime DEFAULT NULL,
`invite_sent_count` int(11) NOT NULL DEFAULT 0,
`invite_created_by` int(11) NOT NULL DEFAULT 0,
`invite_created_by_contact_id` int(11) NOT NULL DEFAULT 0,
`invite_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`invite_accepted_at` datetime DEFAULT NULL,
`invite_contact_id` int(11) NOT NULL DEFAULT 0,
`invite_cancelled_at` datetime DEFAULT NULL,
`invite_client_id` int(11) NOT NULL,
PRIMARY KEY (`invite_id`),
KEY `invite_client_id` (`invite_client_id`,`invite_email`),
KEY `invite_contact_id` (`invite_contact_id`),
CONSTRAINT `portal_invites_ibfk_1` FOREIGN KEY (`invite_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 `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_fill_ins`
--
DROP TABLE IF EXISTS `recurring_ticket_fill_ins`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `recurring_ticket_fill_ins` (
`recurring_ticket_fill_in_id` int(11) NOT NULL AUTO_INCREMENT,
`recurring_ticket_fill_in_recurring_ticket_id` int(11) NOT NULL,
`recurring_ticket_fill_in_name` varchar(50) NOT NULL,
`recurring_ticket_fill_in_type` varchar(10) NOT NULL DEFAULT 'text',
`recurring_ticket_fill_in_options` text DEFAULT NULL,
`recurring_ticket_fill_in_required` tinyint(1) NOT NULL DEFAULT 0,
`recurring_ticket_fill_in_client` tinyint(1) NOT NULL DEFAULT 1,
`recurring_ticket_fill_in_value` text DEFAULT NULL,
`recurring_ticket_fill_in_order` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`recurring_ticket_fill_in_id`),
KEY `recurring_ticket_fill_in_recurring_ticket_id` (`recurring_ticket_fill_in_recurring_ticket_id`),
CONSTRAINT `recurring_ticket_fill_ins_ibfk_1` FOREIGN KEY (`recurring_ticket_fill_in_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_default_after_hours_rate` decimal(15,2) DEFAULT NULL,
`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_ai_triage` tinyint(1) NOT NULL DEFAULT 0,
`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_client_portal_signup` tinyint(1) NOT NULL DEFAULT 0,
`config_getting_started` tinyint(1) NOT NULL DEFAULT 1,
`config_getting_started_skipped` varchar(255) NOT NULL DEFAULT '',
`config_getting_started_opened_at` datetime DEFAULT NULL,
`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_update_details` mediumtext DEFAULT NULL,
`config_manager_keys` text DEFAULT NULL,
`config_managed` mediumtext DEFAULT NULL,
`config_share_max_hours` int(11) NOT NULL DEFAULT 720,
`config_share_require_protection` tinyint(1) NOT NULL DEFAULT 0,
`config_login_alert_failures` int(11) NOT NULL DEFAULT 10,
`config_app_log_retention` int(11) NOT NULL DEFAULT 90,
`config_log_forward_enabled` tinyint(1) NOT NULL DEFAULT 0,
`config_log_forward_host` varchar(200) DEFAULT NULL,
`config_log_forward_port` int(11) NOT NULL DEFAULT 514,
`config_log_forward_protocol` varchar(10) NOT NULL DEFAULT 'udp',
`config_log_forward_format` varchar(10) NOT NULL DEFAULT 'json',
`config_log_forward_audit` tinyint(1) NOT NULL DEFAULT 1,
`config_log_forward_app_level` varchar(10) NOT NULL DEFAULT 'warning',
`config_log_forward_tls_verify` tinyint(1) NOT NULL DEFAULT 1,
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,
`software_template_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`software_id`),
KEY `software_client_id` (`software_client_id`,`software_archived_at`),
KEY `software_template_id` (`software_template_id`)
) 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_template_required_tags`
--
DROP TABLE IF EXISTS `software_template_required_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `software_template_required_tags` (
`software_template_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`software_template_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `software_template_required_tags_ibfk_1` FOREIGN KEY (`software_template_id`) REFERENCES `software_templates` (`software_template_id`) ON DELETE CASCADE,
CONSTRAINT `software_template_required_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_seats` int(11) DEFAULT NULL,
`software_template_term` varchar(10) DEFAULT NULL,
`software_template_vendor_template_id` int(11) NOT NULL DEFAULT 0,
`software_template_product_id` int(11) NOT NULL DEFAULT 0,
`software_template_required` tinyint(1) NOT NULL DEFAULT 0,
`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,
`software_template_created_by` int(11) NOT NULL DEFAULT 0,
`software_template_updated_by` int(11) NOT NULL DEFAULT 0,
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_when_fill_in` varchar(50) DEFAULT NULL,
`task_template_when_value` varchar(255) DEFAULT NULL,
`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_fill_ins`
--
DROP TABLE IF EXISTS `ticket_fill_ins`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_fill_ins` (
`ticket_fill_in_id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_fill_in_ticket_id` int(11) NOT NULL,
`ticket_fill_in_name` varchar(50) NOT NULL,
`ticket_fill_in_type` varchar(10) NOT NULL DEFAULT 'text',
`ticket_fill_in_options` text DEFAULT NULL,
`ticket_fill_in_required` tinyint(1) NOT NULL DEFAULT 0,
`ticket_fill_in_client` tinyint(1) NOT NULL DEFAULT 1,
`ticket_fill_in_value` text DEFAULT NULL,
`ticket_fill_in_order` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`ticket_fill_in_id`),
KEY `ticket_fill_in_ticket_id` (`ticket_fill_in_ticket_id`),
CONSTRAINT `ticket_fill_ins_ibfk_1` FOREIGN KEY (`ticket_fill_in_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_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_emailed` tinyint(1) DEFAULT NULL,
`ticket_reply_emailed_to` text DEFAULT 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_reply_mentions`
--
DROP TABLE IF EXISTS `ticket_reply_mentions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_reply_mentions` (
`mention_reply_id` int(11) NOT NULL,
`mention_user_id` int(11) NOT NULL,
`mention_by` int(11) NOT NULL DEFAULT 0,
`mention_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`mention_reply_id`,`mention_user_id`),
KEY `mention_user_id` (`mention_user_id`),
CONSTRAINT `ticket_reply_mentions_ibfk_1` FOREIGN KEY (`mention_reply_id`) REFERENCES `ticket_replies` (`ticket_reply_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_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_description` varchar(255) DEFAULT NULL,
`ticket_status_active` tinyint(1) NOT NULL DEFAULT 1,
`ticket_status_pauses_sla` tinyint(1) NOT NULL DEFAULT 0,
`ticket_status_client_reply` tinyint(1) NOT NULL DEFAULT 1,
`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_template_fill_ins`
--
DROP TABLE IF EXISTS `ticket_template_fill_ins`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_template_fill_ins` (
`fill_in_id` int(11) NOT NULL AUTO_INCREMENT,
`fill_in_ticket_template_id` int(11) NOT NULL,
`fill_in_name` varchar(50) NOT NULL,
`fill_in_type` varchar(10) NOT NULL DEFAULT 'text',
`fill_in_options` text DEFAULT NULL,
`fill_in_required` tinyint(1) NOT NULL DEFAULT 0,
`fill_in_client` tinyint(1) NOT NULL DEFAULT 1,
`fill_in_help` varchar(255) DEFAULT NULL,
`fill_in_order` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`fill_in_id`),
UNIQUE KEY `fill_in_template_name` (`fill_in_ticket_template_id`,`fill_in_name`),
CONSTRAINT `ticket_template_fill_ins_ibfk_1` FOREIGN KEY (`fill_in_ticket_template_id`) REFERENCES `ticket_templates` (`ticket_template_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_template_portal_clients`
--
DROP TABLE IF EXISTS `ticket_template_portal_clients`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_template_portal_clients` (
`ticket_template_id` int(11) NOT NULL,
`client_id` int(11) NOT NULL,
PRIMARY KEY (`ticket_template_id`,`client_id`),
KEY `client_id` (`client_id`),
CONSTRAINT `ticket_template_portal_clients_ibfk_1` FOREIGN KEY (`ticket_template_id`) REFERENCES `ticket_templates` (`ticket_template_id`) ON DELETE CASCADE,
CONSTRAINT `ticket_template_portal_clients_ibfk_2` FOREIGN KEY (`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 `ticket_template_tags`
--
DROP TABLE IF EXISTS `ticket_template_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_template_tags` (
`ticket_template_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`ticket_template_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `ticket_template_tags_ibfk_1` FOREIGN KEY (`ticket_template_id`) REFERENCES `ticket_templates` (`ticket_template_id`) ON DELETE CASCADE,
CONSTRAINT `ticket_template_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_category_id` int(11) NOT NULL DEFAULT 0,
`ticket_template_priority` varchar(20) DEFAULT NULL,
`ticket_template_billable` tinyint(1) DEFAULT NULL,
`ticket_template_assigned_to` int(11) NOT NULL DEFAULT 0,
`ticket_template_due_hours` int(11) NOT NULL DEFAULT 0,
`ticket_template_portal` tinyint(1) NOT NULL DEFAULT 0,
`ticket_template_portal_title` varchar(200) DEFAULT NULL,
`ticket_template_portal_description` varchar(500) DEFAULT NULL,
`ticket_template_portal_icon` varchar(50) DEFAULT NULL,
`ticket_template_portal_who` varchar(20) NOT NULL DEFAULT 'everyone',
`ticket_template_portal_all_clients` tinyint(1) NOT NULL DEFAULT 1,
`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_template_id` int(11) NOT NULL 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`),
KEY `ticket_template_id` (`ticket_template_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`),
KEY `transfer_expense_id` (`transfer_expense_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_invites`
--
DROP TABLE IF EXISTS `user_invites`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_invites` (
`invite_id` int(11) NOT NULL AUTO_INCREMENT,
`invite_email` varchar(200) NOT NULL,
`invite_name` varchar(200) NOT NULL,
`invite_role_id` int(11) NOT NULL DEFAULT 0,
`invite_force_mfa` tinyint(1) NOT NULL DEFAULT 0,
`invite_client_access` text DEFAULT NULL,
`invite_avatar` varchar(200) DEFAULT NULL,
`invite_token_hash` char(64) NOT NULL DEFAULT '',
`invite_vault` varchar(255) NOT NULL DEFAULT '',
`invite_expires_at` datetime NOT NULL,
`invite_sent_at` datetime DEFAULT NULL,
`invite_sent_count` int(11) NOT NULL DEFAULT 0,
`invite_created_by` int(11) NOT NULL DEFAULT 0,
`invite_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`invite_accepted_at` datetime DEFAULT NULL,
`invite_user_id` int(11) NOT NULL DEFAULT 0,
`invite_cancelled_at` datetime DEFAULT NULL,
PRIMARY KEY (`invite_id`),
KEY `invite_email` (`invite_email`),
KEY `invite_user_id` (`invite_user_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_template_required_tags`
--
DROP TABLE IF EXISTS `vendor_template_required_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `vendor_template_required_tags` (
`vendor_template_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`vendor_template_id`,`tag_id`),
KEY `tag_id` (`tag_id`),
CONSTRAINT `vendor_template_required_tags_ibfk_1` FOREIGN KEY (`vendor_template_id`) REFERENCES `vendor_templates` (`vendor_template_id`) ON DELETE CASCADE,
CONSTRAINT `vendor_template_required_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_contact_phone_country_code` varchar(10) DEFAULT NULL,
`vendor_template_contact_phone` varchar(200) DEFAULT NULL,
`vendor_template_contact_email` 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_status_page` varchar(200) DEFAULT NULL,
`vendor_template_portal` 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_required` tinyint(1) NOT NULL DEFAULT 0,
`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,
`vendor_template_created_by` int(11) NOT NULL DEFAULT 0,
`vendor_template_updated_by` int(11) NOT NULL DEFAULT 0,
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_status_page` varchar(200) DEFAULT NULL,
`vendor_portal` 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`),
KEY `vendor_template_id` (`vendor_template_id`,`vendor_client_id`)
) 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