CREATE TABLE query_metadata (
    query_id VARCHAR(50) PRIMARY KEY,
    sql_statement TEXT NOT NULL,
    description VARCHAR(255),
    is_active BOOLEAN DEFAULT TRUE,
    cache_ttl INT DEFAULT 0
);
FIELD DEFINITIONS
CREATE TABLE field_definitions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    app_id VARCHAR(50) NOT NULL,
    query_id VARCHAR(50) NOT NULL,
    field_name VARCHAR(50) NOT NULL,
    display_label VARCHAR(100),
    data_type ENUM('currency', 'date', 'number', 'string') DEFAULT 'string',
    is_default BOOLEAN DEFAULT TRUE,
    INDEX (query_id)
);
USER VIEWS
CREATE TABLE user_views (
    id INT AUTO_INCREMENT PRIMARY KEY,
    app_id VARCHAR(50) NOT NULL,
    query_id VARCHAR(50) NOT NULL,
    owner_type ENUM('user', 'group', 'system') NOT NULL,
    owner_id VARCHAR(50) NOT NULL,
    view_name VARCHAR(100),
    view_config JSON NOT NULL,
    INDEX (query_id, owner_type, owner_id)
);
