{
  "version": "5",
  "dialect": "mysql",
  "id": "f8b33694-e36d-4e05-937e-5ac177e961dd",
  "prevId": "34d6e2d8-d94e-4c93-8f0d-1d06fa8b9fb4",
  "tables": {
    "domain_purchases": {
      "name": "domain_purchases",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "domain": {
          "name": "domain",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "tier": {
          "name": "tier",
          "type": "enum('free','tier_5','tier_7_50','tier_10','tier_15','tier_pwyw')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'free'"
        },
        "stripePaymentIntentId": {
          "name": "stripePaymentIntentId",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "downloadCount": {
          "name": "downloadCount",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "monthStart": {
          "name": "monthStart",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "domain_purchases_id": {
          "name": "domain_purchases_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "download_jobs": {
      "name": "download_jobs",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "sourceUrl": {
          "name": "sourceUrl",
          "type": "varchar(2048)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "sourceType": {
          "name": "sourceType",
          "type": "enum('wayback','live')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'wayback'"
        },
        "status": {
          "name": "status",
          "type": "enum('queued','in progress','done','failed')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'queued'"
        },
        "progressPercent": {
          "name": "progressPercent",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "totalAssets": {
          "name": "totalAssets",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": 0
        },
        "downloadedAssets": {
          "name": "downloadedAssets",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": 0
        },
        "archiveUrl": {
          "name": "archiveUrl",
          "type": "varchar(2048)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "zipFileUrl": {
          "name": "zipFileUrl",
          "type": "varchar(2048)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "zipFileKey": {
          "name": "zipFileKey",
          "type": "varchar(512)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "targetDate": {
          "name": "targetDate",
          "type": "varchar(14)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "rewriteUrl": {
          "name": "rewriteUrl",
          "type": "varchar(2048)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "contactReplacements": {
          "name": "contactReplacements",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "pagesFound": {
          "name": "pagesFound",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": 0
        },
        "pagesDownloaded": {
          "name": "pagesDownloaded",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": 0
        },
        "downloadSizeBytes": {
          "name": "downloadSizeBytes",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": 0
        },
        "assetBreakdown": {
          "name": "assetBreakdown",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "previewImageUrl": {
          "name": "previewImageUrl",
          "type": "varchar(2048)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "currentUrl": {
          "name": "currentUrl",
          "type": "varchar(2048)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "seoOptimize": {
          "name": "seoOptimize",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "replacementsPaid": {
          "name": "replacementsPaid",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "errorMessage": {
          "name": "errorMessage",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        },
        "completedAt": {
          "name": "completedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "restartedAt": {
          "name": "restartedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "download_jobs_id": {
          "name": "download_jobs_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "job_assets": {
      "name": "job_assets",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "jobId": {
          "name": "jobId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "assetUrl": {
          "name": "assetUrl",
          "type": "varchar(2048)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "assetType": {
          "name": "assetType",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "localPath": {
          "name": "localPath",
          "type": "varchar(512)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('pending','downloaded','failed')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'pending'"
        },
        "errorMessage": {
          "name": "errorMessage",
          "type": "varchar(1024)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "job_assets_id": {
          "name": "job_assets_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "user_monthly_quotas": {
      "name": "user_monthly_quotas",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "domainsUsedThisMonth": {
          "name": "domainsUsedThisMonth",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "monthStart": {
          "name": "monthStart",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "user_monthly_quotas_id": {
          "name": "user_monthly_quotas_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {
        "user_monthly_quotas_userId_unique": {
          "name": "user_monthly_quotas_userId_unique",
          "columns": [
            "userId"
          ]
        }
      },
      "checkConstraint": {}
    },
    "users": {
      "name": "users",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "openId": {
          "name": "openId",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "email": {
          "name": "email",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "passwordHash": {
          "name": "passwordHash",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "loginMethod": {
          "name": "loginMethod",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "role": {
          "name": "role",
          "type": "enum('user','admin')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'user'"
        },
        "stripeCustomerId": {
          "name": "stripeCustomerId",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        },
        "lastSignedIn": {
          "name": "lastSignedIn",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "users_id": {
          "name": "users_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {
        "users_openId_unique": {
          "name": "users_openId_unique",
          "columns": [
            "openId"
          ]
        },
        "users_name_unique": {
          "name": "users_name_unique",
          "columns": [
            "name"
          ]
        }
      },
      "checkConstraint": {}
    }
  },
  "views": {},
  "_meta": {
    "schemas": {},
    "tables": {},
    "columns": {}
  },
  "internal": {
    "tables": {},
    "indexes": {}
  }
}