Schema
    RPS Digital P3 Intake ArchiveUpdated May 10, 2026SQL

    RPS Digital P3 Intake Archive database schema

    Imported SQL source from ../../shared/db/schema.sql.

    Source file

    ../../shared/db/schema.sql

    SQL82 lines
    1. CREATE TABLE IF NOT EXISTS shops (
    2. id TEXT PRIMARY KEY,
    3. shopify_domain TEXT NOT NULL UNIQUE,
    4. access_token TEXT NOT NULL,
    5. created_at TEXT NOT NULL
    6. );
    7. CREATE TABLE IF NOT EXISTS products (
    8. id TEXT PRIMARY KEY,
    9. shop_id TEXT NOT NULL,
    10. shopify_product_id TEXT,
    11. current_release_id TEXT,
    12. prompt_id TEXT,
    13. created_at TEXT NOT NULL,
    14. FOREIGN KEY (shop_id) REFERENCES shops(id)
    15. );
    16. CREATE TABLE IF NOT EXISTS releases (
    17. id TEXT PRIMARY KEY,
    18. product_id TEXT NOT NULL,
    19. version TEXT NOT NULL,
    20. status TEXT NOT NULL,
    21. created_at TEXT NOT NULL,
    22. FOREIGN KEY (product_id) REFERENCES products(id)
    23. );
    24. CREATE TABLE IF NOT EXISTS assets (
    25. id TEXT PRIMARY KEY,
    26. release_id TEXT NOT NULL,
    27. key TEXT NOT NULL,
    28. checksum TEXT NOT NULL,
    29. mime TEXT NOT NULL,
    30. width INTEGER,
    31. height INTEGER,
    32. size INTEGER NOT NULL,
    33. variant_label TEXT NOT NULL,
    34. created_at TEXT NOT NULL,
    35. FOREIGN KEY (release_id) REFERENCES releases(id)
    36. );
    37. CREATE TABLE IF NOT EXISTS prompts (
    38. id TEXT PRIMARY KEY,
    39. shop_id TEXT NOT NULL,
    40. raw_prompt TEXT NOT NULL,
    41. provider TEXT NOT NULL,
    42. model TEXT NOT NULL,
    43. output_summary TEXT,
    44. created_at TEXT NOT NULL,
    45. FOREIGN KEY (shop_id) REFERENCES shops(id)
    46. );
    47. CREATE TABLE IF NOT EXISTS jobs (
    48. id TEXT PRIMARY KEY,
    49. shop_id TEXT NOT NULL,
    50. type TEXT NOT NULL,
    51. status TEXT NOT NULL,
    52. input_payload TEXT NOT NULL,
    53. output_payload TEXT,
    54. error TEXT,
    55. group_id TEXT,
    56. item_index INTEGER,
    57. created_at TEXT NOT NULL,
    58. updated_at TEXT NOT NULL,
    59. FOREIGN KEY (shop_id) REFERENCES shops(id)
    60. );
    61. CREATE TABLE IF NOT EXISTS entitlements (
    62. id TEXT PRIMARY KEY,
    63. shop_id TEXT NOT NULL,
    64. order_id TEXT NOT NULL,
    65. customer_id TEXT,
    66. release_id TEXT NOT NULL,
    67. token TEXT NOT NULL,
    68. expires_at TEXT NOT NULL,
    69. created_at TEXT NOT NULL,
    70. FOREIGN KEY (shop_id) REFERENCES shops(id)
    71. );
    72. CREATE INDEX IF NOT EXISTS idx_jobs_status ON jobs(status);
    73. CREATE INDEX IF NOT EXISTS idx_jobs_group ON jobs(group_id);
    74. CREATE INDEX IF NOT EXISTS idx_assets_release ON assets(release_id);
    75. CREATE INDEX IF NOT EXISTS idx_entitlements_token ON entitlements(token);