- Created manifest.yaml with Node.js runtime and routes - Set up package.json with React, TypeScript, Vite, and dependencies - Created TypeScript and Vite configuration files - Set up ESLint and Prettier - Created complete directory structure (frontend, backend, migrations) - Created initial database schema migration - Set up Express server with route handlers - Created frontend entry point files - Added version.txt with build 0.1.0.001
68 lines
2.4 KiB
SQL
68 lines
2.4 KiB
SQL
-- BP_WB Initial Database Schema
|
|
-- This migration creates all core tables for the Website Builder plugin
|
|
|
|
-- Page configurations
|
|
CREATE TABLE IF NOT EXISTS wb_pages (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
app_name VARCHAR(255) NOT NULL,
|
|
route_path VARCHAR(500) NOT NULL,
|
|
page_config TEXT NOT NULL, -- JSON stored as TEXT (SQLite compatibility)
|
|
version INTEGER DEFAULT 1,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
created_by INTEGER,
|
|
UNIQUE(app_name, route_path)
|
|
);
|
|
|
|
-- Page versions (for history/rollback)
|
|
CREATE TABLE IF NOT EXISTS wb_page_versions (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
page_id INTEGER NOT NULL,
|
|
version INTEGER NOT NULL,
|
|
page_config TEXT NOT NULL, -- JSON stored as TEXT
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
created_by INTEGER,
|
|
FOREIGN KEY (page_id) REFERENCES wb_pages(id) ON DELETE CASCADE
|
|
);
|
|
|
|
-- Templates (starting points)
|
|
CREATE TABLE IF NOT EXISTS wb_templates (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name VARCHAR(255) NOT NULL,
|
|
description TEXT,
|
|
category VARCHAR(100),
|
|
template_config TEXT NOT NULL, -- JSON stored as TEXT
|
|
preview_image VARCHAR(500),
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
created_by INTEGER
|
|
);
|
|
|
|
-- Component registry (custom components from plugins)
|
|
CREATE TABLE IF NOT EXISTS wb_components (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
plugin_name VARCHAR(255) NOT NULL,
|
|
component_name VARCHAR(255) NOT NULL,
|
|
component_config TEXT NOT NULL, -- JSON stored as TEXT
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE(plugin_name, component_name)
|
|
);
|
|
|
|
-- Asset library
|
|
CREATE TABLE IF NOT EXISTS wb_assets (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
filename VARCHAR(255) NOT NULL,
|
|
file_path VARCHAR(500) NOT NULL,
|
|
file_type VARCHAR(50),
|
|
file_size INTEGER,
|
|
uploaded_by INTEGER,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Indexes for performance
|
|
CREATE INDEX IF NOT EXISTS idx_wb_pages_app_route ON wb_pages(app_name, route_path);
|
|
CREATE INDEX IF NOT EXISTS idx_wb_pages_created_by ON wb_pages(created_by);
|
|
CREATE INDEX IF NOT EXISTS idx_wb_page_versions_page_id ON wb_page_versions(page_id);
|
|
CREATE INDEX IF NOT EXISTS idx_wb_templates_category ON wb_templates(category);
|
|
CREATE INDEX IF NOT EXISTS idx_wb_components_plugin ON wb_components(plugin_name);
|
|
CREATE INDEX IF NOT EXISTS idx_wb_assets_file_type ON wb_assets(file_type);
|
|
|