| [ |
| { |
| "table": "customers", |
| "description": "People or organizations that purchase or may purchase goods/services.", |
| "columns": [ |
| {"name": "customer_id", "type": "BIGINT", "description": "Surrogate primary key for the customer."}, |
| {"name": "account_type", "type": "VARCHAR(20)", "description": "Type such as consumer or business."}, |
| {"name": "first_name", "type": "VARCHAR(80)", "description": "Given name for contact purposes."}, |
| {"name": "last_name", "type": "VARCHAR(80)", "description": "Family name for contact purposes."}, |
| {"name": "email", "type": "VARCHAR(255)", "description": "Primary contact email; unique when present."}, |
| {"name": "phone", "type": "VARCHAR(32)", "description": "Primary contact phone number."}, |
| {"name": "address_id", "type": "BIGINT", "description": "FK to customer_addresses for canonical address."}, |
| {"name": "country", "type": "CHAR(2)", "description": "ISO‑2 country code of primary address."}, |
| {"name": "registered_at", "type": "TIMESTAMP", "description": "Timestamp when the customer registered."}, |
| {"name": "status", "type": "VARCHAR(20)", "description": "Lifecycle state such as active, prospect, churned."} |
| ] |
| }, |
| { |
| "table": "customer_addresses", |
| "description": "Normalized postal addresses for customers, suppliers, and locations.", |
| "columns": [ |
| {"name": "address_id", "type": "BIGINT", "description": "Primary key for the address record."}, |
| {"name": "line1", "type": "VARCHAR(120)", "description": "Street line 1."}, |
| {"name": "line2", "type": "VARCHAR(120)", "description": "Street line 2 or unit/suite (nullable)."}, |
| {"name": "city", "type": "VARCHAR(80)", "description": "City or locality."}, |
| {"name": "state", "type": "VARCHAR(80)", "description": "Region/state/province."}, |
| {"name": "postal_code", "type": "VARCHAR(20)", "description": "Postal/ZIP code."}, |
| {"name": "country", "type": "CHAR(2)", "description": "ISO‑2 country code."}, |
| {"name": "latitude", "type": "DECIMAL(9,6)", "description": "Latitude for geocoding (nullable)."}, |
| {"name": "longitude", "type": "DECIMAL(9,6)", "description": "Longitude for geocoding (nullable)."}, |
| {"name": "valid_from", "type": "DATE", "description": "Start date the address is valid from."}, |
| {"name": "valid_to", "type": "DATE", "description": "End date the address is valid to (nullable)."} |
| ] |
| }, |
| { |
| "table": "products", |
| "description": "Catalog of sellable items or services.", |
| "columns": [ |
| {"name": "product_id", "type": "BIGINT", "description": "Primary key for the product."}, |
| {"name": "sku", "type": "VARCHAR(64)", "description": "Stock keeping unit code; unique per product."}, |
| {"name": "product_name", "type": "VARCHAR(160)", "description": "Marketing name of the product."}, |
| {"name": "category_id", "type": "BIGINT", "description": "FK to categories for hierarchy grouping."}, |
| {"name": "unit_price", "type": "DECIMAL(12,2)", "description": "List price in the default currency."}, |
| {"name": "currency", "type": "CHAR(3)", "description": "ISO‑4217 currency code for unit_price."}, |
| {"name": "active", "type": "BOOLEAN", "description": "If the product is available for sale."}, |
| {"name": "created_at", "type": "TIMESTAMP", "description": "Record creation time."}, |
| {"name": "updated_at", "type": "TIMESTAMP", "description": "Last update time."} |
| ] |
| }, |
| { |
| "table": "categories", |
| "description": "Product category hierarchy for analytics and navigation.", |
| "columns": [ |
| {"name": "category_id", "type": "BIGINT", "description": "Primary key for the category."}, |
| {"name": "category_name", "type": "VARCHAR(120)", "description": "Human‑readable category label."}, |
| {"name": "parent_category_id", "type": "BIGINT", "description": "Self‑reference to parent category (nullable)."}, |
| {"name": "description", "type": "TEXT", "description": "Longer description for the category (nullable)."} |
| ] |
| }, |
| { |
| "table": "orders", |
| "description": "Sales orders placed by customers; header level details.", |
| "columns": [ |
| {"name": "order_id", "type": "BIGINT", "description": "Primary key for the order."}, |
| {"name": "customer_id", "type": "BIGINT", "description": "FK to customers who placed the order."}, |
| {"name": "order_date", "type": "TIMESTAMP", "description": "Time the order was submitted."}, |
| {"name": "status", "type": "VARCHAR(20)", "description": "Order state such as pending, paid, shipped."}, |
| {"name": "payment_method", "type": "VARCHAR(20)", "description": "Method like card, bank, wallet."}, |
| {"name": "order_total", "type": "DECIMAL(12,2)", "description": "Total monetary value of the order."}, |
| {"name": "currency", "type": "CHAR(3)", "description": "Currency for order_total."}, |
| {"name": "shipping_address_id", "type": "BIGINT", "description": "FK to customer_addresses for shipping."} |
| ] |
| }, |
| { |
| "table": "order_items", |
| "description": "Line‑level items linking orders to products.", |
| "columns": [ |
| {"name": "order_item_id", "type": "BIGINT", "description": "Primary key for the line item."}, |
| {"name": "order_id", "type": "BIGINT", "description": "FK to orders header."}, |
| {"name": "product_id", "type": "BIGINT", "description": "FK to products catalog."}, |
| {"name": "quantity", "type": "INT", "description": "Units ordered for this product."}, |
| {"name": "unit_price", "type": "DECIMAL(12,2)", "description": "Unit price at time of sale."}, |
| {"name": "discount", "type": "DECIMAL(5,2)", "description": "Percentage discount applied (0–100)."}, |
| {"name": "line_total", "type": "DECIMAL(12,2)", "description": "Extended price after discount."} |
| ] |
| }, |
| { |
| "table": "payments", |
| "description": "Customer payments applied to orders or invoices.", |
| "columns": [ |
| {"name": "payment_id", "type": "BIGINT", "description": "Primary key for the payment."}, |
| {"name": "order_id", "type": "BIGINT", "description": "FK to orders being paid (nullable if invoice_id used)."}, |
| {"name": "invoice_id", "type": "BIGINT", "description": "FK to invoices (nullable if order_id used)."}, |
| {"name": "payment_date", "type": "TIMESTAMP", "description": "Time the payment was captured."}, |
| {"name": "amount", "type": "DECIMAL(12,2)", "description": "Amount received in payment."}, |
| {"name": "currency", "type": "CHAR(3)", "description": "Currency for the amount."}, |
| {"name": "method", "type": "VARCHAR(20)", "description": "Card, bank_transfer, wallet, cash, etc."}, |
| {"name": "status", "type": "VARCHAR(20)", "description": "authorized, captured, refunded, failed."} |
| ] |
| }, |
| { |
| "table": "invoices", |
| "description": "Billing documents issued to customers for accounting.", |
| "columns": [ |
| {"name": "invoice_id", "type": "BIGINT", "description": "Primary key for the invoice."}, |
| {"name": "customer_id", "type": "BIGINT", "description": "FK to customers billed."}, |
| {"name": "invoice_date", "type": "DATE", "description": "Date the invoice was issued."}, |
| {"name": "due_date", "type": "DATE", "description": "Payment due date per terms."}, |
| {"name": "total_due", "type": "DECIMAL(12,2)", "description": "Total amount due on the invoice."}, |
| {"name": "currency", "type": "CHAR(3)", "description": "Currency for total_due."}, |
| {"name": "status", "type": "VARCHAR(20)", "description": "open, paid, overdue, cancelled."} |
| ] |
| }, |
| { |
| "table": "subscriptions", |
| "description": "Recurring customer subscriptions for SaaS or services.", |
| "columns": [ |
| {"name": "subscription_id", "type": "BIGINT", "description": "Primary key for the subscription."}, |
| {"name": "customer_id", "type": "BIGINT", "description": "FK to customers holding the subscription."}, |
| {"name": "plan_id", "type": "BIGINT", "description": "FK to subscription_plans."}, |
| {"name": "start_date", "type": "DATE", "description": "Start date of the subscription."}, |
| {"name": "end_date", "type": "DATE", "description": "End date or null if ongoing."}, |
| {"name": "status", "type": "VARCHAR(20)", "description": "active, paused, cancelled, expired."}, |
| {"name": "auto_renew", "type": "BOOLEAN", "description": "Whether the subscription auto‑renews."} |
| ] |
| }, |
| { |
| "table": "subscription_plans", |
| "description": "Catalog of subscription plans and pricing tiers.", |
| "columns": [ |
| {"name": "plan_id", "type": "BIGINT", "description": "Primary key for the plan."}, |
| {"name": "plan_name", "type": "VARCHAR(80)", "description": "Marketing name for the plan."}, |
| {"name": "billing_cycle", "type": "VARCHAR(20)", "description": "monthly, yearly, etc."}, |
| {"name": "price", "type": "DECIMAL(12,2)", "description": "Price per billing cycle."}, |
| {"name": "currency", "type": "CHAR(3)", "description": "Currency for price."}, |
| {"name": "features", "type": "JSON", "description": "Feature flags or limits for the plan."} |
| ] |
| }, |
| { |
| "table": "employees", |
| "description": "Company staff directory for HR and RBAC.", |
| "columns": [ |
| {"name": "employee_id", "type": "BIGINT", "description": "Primary key for employee."}, |
| {"name": "first_name", "type": "VARCHAR(80)", "description": "Given name."}, |
| {"name": "last_name", "type": "VARCHAR(80)", "description": "Family name."}, |
| {"name": "email", "type": "VARCHAR(255)", "description": "Work email address (unique)."}, |
| {"name": "phone", "type": "VARCHAR(32)", "description": "Work phone number."}, |
| {"name": "hire_date", "type": "DATE", "description": "Date employee joined."}, |
| {"name": "job_title", "type": "VARCHAR(120)", "description": "Official job title."}, |
| {"name": "department_id", "type": "BIGINT", "description": "FK to departments."}, |
| {"name": "manager_id", "type": "BIGINT", "description": "Self‑FK to the manager employee_id (nullable)."} |
| ] |
| }, |
| { |
| "table": "departments", |
| "description": "Organizational units for budgeting and reporting.", |
| "columns": [ |
| {"name": "department_id", "type": "BIGINT", "description": "Primary key for the department."}, |
| {"name": "department_name", "type": "VARCHAR(120)", "description": "Name of the department."}, |
| {"name": "cost_center", "type": "VARCHAR(32)", "description": "Accounting cost center code."}, |
| {"name": "manager_id", "type": "BIGINT", "description": "FK to employees who manage the department."} |
| ] |
| }, |
| { |
| "table": "projects", |
| "description": "Portfolio of internal or client projects with budgets and timelines.", |
| "columns": [ |
| {"name": "project_id", "type": "BIGINT", "description": "Primary key for the project."}, |
| {"name": "project_name", "type": "VARCHAR(160)", "description": "Short name of the project."}, |
| {"name": "sponsor_department_id", "type": "BIGINT", "description": "FK to departments sponsoring the work."}, |
| {"name": "start_date", "type": "DATE", "description": "Planned or actual start date."}, |
| {"name": "end_date", "type": "DATE", "description": "Planned or actual end date (nullable)."}, |
| {"name": "budget", "type": "DECIMAL(14,2)", "description": "Approved budget for the project."}, |
| {"name": "status", "type": "VARCHAR(20)", "description": "planned, active, on_hold, complete."} |
| ] |
| }, |
| { |
| "table": "tasks", |
| "description": "Executable work items under projects.", |
| "columns": [ |
| {"name": "task_id", "type": "BIGINT", "description": "Primary key for the task."}, |
| {"name": "project_id", "type": "BIGINT", "description": "FK to projects."}, |
| {"name": "task_name", "type": "VARCHAR(160)", "description": "Short description of the task."}, |
| {"name": "assignee_employee_id", "type": "BIGINT", "description": "FK to employees assigned."}, |
| {"name": "due_date", "type": "DATE", "description": "Target completion date."}, |
| {"name": "status", "type": "VARCHAR(20)", "description": "todo, in_progress, blocked, done."}, |
| {"name": "priority", "type": "VARCHAR(10)", "description": "low, medium, high, urgent."} |
| ] |
| }, |
| { |
| "table": "support_tickets", |
| "description": "Customer support issues tracked by the service team.", |
| "columns": [ |
| {"name": "ticket_id", "type": "BIGINT", "description": "Primary key for the ticket."}, |
| {"name": "customer_id", "type": "BIGINT", "description": "FK to customers who opened the ticket."}, |
| {"name": "subject", "type": "VARCHAR(160)", "description": "Short title summarizing the issue."}, |
| {"name": "description", "type": "TEXT", "description": "Detailed problem description."}, |
| {"name": "priority", "type": "VARCHAR(10)", "description": "low, medium, high, urgent."}, |
| {"name": "status", "type": "VARCHAR(20)", "description": "open, pending, on_hold, resolved, closed."}, |
| {"name": "opened_at", "type": "TIMESTAMP", "description": "When the ticket was created."}, |
| {"name": "closed_at", "type": "TIMESTAMP", "description": "When the ticket was closed (nullable)."} |
| ] |
| }, |
| { |
| "table": "web_sessions", |
| "description": "Website/app sessions for digital analytics.", |
| "columns": [ |
| {"name": "session_id", "type": "VARCHAR(64)", "description": "Client session identifier."}, |
| {"name": "visitor_id", "type": "VARCHAR(64)", "description": "Anonymous or known user identifier."}, |
| {"name": "started_at", "type": "TIMESTAMP", "description": "Session start time."}, |
| {"name": "ended_at", "type": "TIMESTAMP", "description": "Session end time (nullable)."}, |
| {"name": "source", "type": "VARCHAR(40)", "description": "Traffic source/medium or campaign."}, |
| {"name": "device", "type": "VARCHAR(40)", "description": "Device class such as mobile or desktop."}, |
| {"name": "country", "type": "CHAR(2)", "description": "ISO‑2 country of the session."} |
| ] |
| }, |
| { |
| "table": "marketing_campaigns", |
| "description": "Planned and active campaigns for acquisition and retention.", |
| "columns": [ |
| {"name": "campaign_id", "type": "BIGINT", "description": "Primary key for the campaign."}, |
| {"name": "campaign_name", "type": "VARCHAR(160)", "description": "Human‑readable campaign label."}, |
| {"name": "channel", "type": "VARCHAR(40)", "description": "email, ads, social, affiliates, etc."}, |
| {"name": "budget", "type": "DECIMAL(14,2)", "description": "Allocated spend for the campaign."}, |
| {"name": "currency", "type": "CHAR(3)", "description": "Currency of budget."}, |
| {"name": "start_date", "type": "DATE", "description": "Campaign start date."}, |
| {"name": "end_date", "type": "DATE", "description": "Campaign end date (nullable)."} |
| ] |
| }, |
| { |
| "table": "leads", |
| "description": "Prospective customers captured by marketing or sales.", |
| "columns": [ |
| {"name": "lead_id", "type": "BIGINT", "description": "Primary key for the lead."}, |
| {"name": "source", "type": "VARCHAR(40)", "description": "Origin of the lead such as web, event, referral."}, |
| {"name": "first_name", "type": "VARCHAR(80)", "description": "Lead’s given name."}, |
| {"name": "last_name", "type": "VARCHAR(80)", "description": "Lead’s family name."}, |
| {"name": "email", "type": "VARCHAR(255)", "description": "Contact email address (nullable)."}, |
| {"name": "company", "type": "VARCHAR(160)", "description": "Company name if B2B (nullable)."}, |
| {"name": "status", "type": "VARCHAR(20)", "description": "new, qualified, unqualified, converted."}, |
| {"name": "created_at", "type": "TIMESTAMP", "description": "Time the lead was created."} |
| ] |
| }, |
| { |
| "table": "crm_interactions", |
| "description": "Logged emails, calls, and meetings with leads or customers.", |
| "columns": [ |
| {"name": "interaction_id", "type": "BIGINT", "description": "Primary key for the interaction."}, |
| {"name": "actor_employee_id", "type": "BIGINT", "description": "FK to employees who performed the interaction."}, |
| {"name": "lead_id", "type": "BIGINT", "description": "FK to leads (nullable if customer_id used)."}, |
| {"name": "customer_id", "type": "BIGINT", "description": "FK to customers (nullable if lead_id used)."}, |
| {"name": "channel", "type": "VARCHAR(20)", "description": "email, call, meeting, chat, etc."}, |
| {"name": "occurred_at", "type": "TIMESTAMP", "description": "When the interaction occurred."}, |
| {"name": "notes", "type": "TEXT", "description": "Free‑form summary of the interaction."} |
| ] |
| }, |
| { |
| "table": "inventory", |
| "description": "Current and reserved stock levels by product and location.", |
| "columns": [ |
| {"name": "inventory_id", "type": "BIGINT", "description": "Primary key for the inventory record."}, |
| {"name": "product_id", "type": "BIGINT", "description": "FK to products."}, |
| {"name": "location_id", "type": "BIGINT", "description": "FK to locations (warehouse/store)."}, |
| {"name": "on_hand_qty", "type": "INT", "description": "Physical units currently available."}, |
| {"name": "reserved_qty", "type": "INT", "description": "Units reserved for open orders."}, |
| {"name": "reorder_point", "type": "INT", "description": "Threshold to trigger replenishment."}, |
| {"name": "last_restock_date", "type": "DATE", "description": "Date of last inbound stock."} |
| ] |
| } |
| ] |