64 lines
2.4 KiB
SQL
64 lines
2.4 KiB
SQL
-- Messaging system tied to projects
|
|
CREATE TABLE IF NOT EXISTS `messages` (
|
|
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
|
`project_id` INT NOT NULL,
|
|
`user_id` INT NOT NULL,
|
|
`message` TEXT NOT NULL,
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON DELETE CASCADE,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Calendar events
|
|
CREATE TABLE IF NOT EXISTS `calendar_events` (
|
|
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
|
`title` VARCHAR(255) NOT NULL,
|
|
`start_event` DATETIME NOT NULL,
|
|
`end_event` DATETIME NOT NULL,
|
|
`project_id` INT,
|
|
`user_id` INT,
|
|
`description` TEXT,
|
|
FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON DELETE CASCADE,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Approvals for assets
|
|
CREATE TABLE IF NOT EXISTS `approvals` (
|
|
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
|
`asset_id` INT NOT NULL,
|
|
`user_id` INT NOT NULL,
|
|
`status` ENUM('Pending', 'Approved', 'Rejected') NOT NULL DEFAULT 'Pending',
|
|
`comments` TEXT,
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (`asset_id`) REFERENCES `assets`(`id`) ON DELETE CASCADE,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Metrics from ad platforms
|
|
CREATE TABLE IF NOT EXISTS `metrics` (
|
|
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
|
`project_id` INT NOT NULL,
|
|
`platform` VARCHAR(50) NOT NULL, -- e.g., 'Facebook', 'Google Ads'
|
|
`date` DATE NOT NULL,
|
|
`impressions` INT,
|
|
`clicks` INT,
|
|
`conversions` INT,
|
|
`spend` DECIMAL(10, 2),
|
|
`engagement` INT,
|
|
`reach` INT,
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE KEY `project_platform_date` (`project_id`, `platform`, `date`),
|
|
FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Secure storage for API tokens
|
|
CREATE TABLE IF NOT EXISTS `api_tokens` (
|
|
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
|
`service` VARCHAR(50) NOT NULL UNIQUE, -- e.g., 'meta_ads', 'google_ads'
|
|
`access_token` TEXT NOT NULL,
|
|
`refresh_token` TEXT,
|
|
`expires_at` TIMESTAMP,
|
|
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|