{
  "id": "89eb2f93-a27f-4204-9968-76fd83a2ac12",
  "prevId": "93b2b001-19bc-4555-9e02-5341e88fe732",
  "version": "7",
  "dialect": "postgresql",
  "tables": {
    "public.tweet_analytics": {
      "name": "tweet_analytics",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "integer",
          "primaryKey": true,
          "notNull": true,
          "identity": {
            "type": "always",
            "name": "tweet_analytics_id_seq",
            "schema": "public",
            "increment": "1",
            "startWith": "1",
            "minValue": "1",
            "maxValue": "2147483647",
            "cache": "1",
            "cycle": false
          }
        },
        "tweet_id": {
          "name": "tweet_id",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true
        },
        "raw_engagement_score": {
          "name": "raw_engagement_score",
          "type": "numeric(10, 3)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0.0'"
        },
        "normalized_engagement_score": {
          "name": "normalized_engagement_score",
          "type": "numeric(10, 6)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0.0'"
        },
        "freshness_adjusted_score": {
          "name": "freshness_adjusted_score",
          "type": "numeric(10, 6)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0.0'"
        },
        "final_score": {
          "name": "final_score",
          "type": "numeric(10, 6)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0.0'"
        },
        "author_size_normalization_factor": {
          "name": "author_size_normalization_factor",
          "type": "numeric(10, 6)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0.0'"
        },
        "freshness_decay_factor": {
          "name": "freshness_decay_factor",
          "type": "numeric(10, 6)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0.0'"
        },
        "age_in_hours": {
          "name": "age_in_hours",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0.0'"
        },
        "should_reply": {
          "name": "should_reply",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "algorithm_version": {
          "name": "algorithm_version",
          "type": "varchar(16)",
          "primaryKey": false,
          "notNull": true,
          "default": "'1.0'"
        },
        "computed_at": {
          "name": "computed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_tweet_analytics_tweet_id": {
          "name": "idx_tweet_analytics_tweet_id",
          "columns": [
            {
              "expression": "tweet_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tweet_analytics_final_score": {
          "name": "idx_tweet_analytics_final_score",
          "columns": [
            {
              "expression": "final_score",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tweet_analytics_should_reply": {
          "name": "idx_tweet_analytics_should_reply",
          "columns": [
            {
              "expression": "should_reply",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tweet_analytics_computed_at": {
          "name": "idx_tweet_analytics_computed_at",
          "columns": [
            {
              "expression": "computed_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "tweet_analytics_tweet_id_tweets_tweet_id_fk": {
          "name": "tweet_analytics_tweet_id_tweets_tweet_id_fk",
          "tableFrom": "tweet_analytics",
          "tableTo": "tweets",
          "columnsFrom": [
            "tweet_id"
          ],
          "columnsTo": [
            "tweet_id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "tweet_analytics_tweet_id_unique": {
          "name": "tweet_analytics_tweet_id_unique",
          "nullsNotDistinct": false,
          "columns": [
            "tweet_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.tweets": {
      "name": "tweets",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "integer",
          "primaryKey": true,
          "notNull": true,
          "identity": {
            "type": "always",
            "name": "tweets_id_seq",
            "schema": "public",
            "increment": "1",
            "startWith": "1",
            "minValue": "1",
            "maxValue": "2147483647",
            "cache": "1",
            "cycle": false
          }
        },
        "tweet_id": {
          "name": "tweet_id",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true
        },
        "text": {
          "name": "text",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "lang": {
          "name": "lang",
          "type": "varchar(10)",
          "primaryKey": false,
          "notNull": false
        },
        "tweet_url": {
          "name": "tweet_url",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "author_id": {
          "name": "author_id",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true
        },
        "author_username": {
          "name": "author_username",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false
        },
        "author_name": {
          "name": "author_name",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false
        },
        "author_followers": {
          "name": "author_followers",
          "type": "integer",
          "primaryKey": false,
          "notNull": false,
          "default": 0
        },
        "conversation_id": {
          "name": "conversation_id",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false
        },
        "is_reply": {
          "name": "is_reply",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "in_reply_to_id": {
          "name": "in_reply_to_id",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false
        },
        "in_reply_to_username": {
          "name": "in_reply_to_username",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false
        },
        "like_count": {
          "name": "like_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "reply_count": {
          "name": "reply_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "retweet_count": {
          "name": "retweet_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "quote_count": {
          "name": "quote_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "view_count": {
          "name": "view_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "created_at_utc": {
          "name": "created_at_utc",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "captured_at_utc": {
          "name": "captured_at_utc",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "status": {
          "name": "status",
          "type": "tweet_status",
          "typeSchema": "public",
          "primaryKey": false,
          "notNull": true,
          "default": "'pending'"
        },
        "errors": {
          "name": "errors",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false,
          "default": "'[]'::jsonb"
        },
        "source": {
          "name": "source",
          "type": "varchar(32)",
          "primaryKey": false,
          "notNull": true,
          "default": "'mentions'"
        },
        "raw_json": {
          "name": "raw_json",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true
        },
        "reply": {
          "name": "reply",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "reasoning": {
          "name": "reasoning",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_tweets_tweet_id": {
          "name": "idx_tweets_tweet_id",
          "columns": [
            {
              "expression": "tweet_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tweets_created_status": {
          "name": "idx_tweets_created_status",
          "columns": [
            {
              "expression": "created_at_utc",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tweets_captured_time": {
          "name": "idx_tweets_captured_time",
          "columns": [
            {
              "expression": "captured_at_utc",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tweets_author_status_updated": {
          "name": "idx_tweets_author_status_updated",
          "columns": [
            {
              "expression": "author_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "updated_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tweets_language": {
          "name": "idx_tweets_language",
          "columns": [
            {
              "expression": "lang",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tweets_status": {
          "name": "idx_tweets_status",
          "columns": [
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "tweets_tweet_id_unique": {
          "name": "tweets_tweet_id_unique",
          "nullsNotDistinct": false,
          "columns": [
            "tweet_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    }
  },
  "enums": {
    "public.tweet_status": {
      "name": "tweet_status",
      "schema": "public",
      "values": [
        "pending",
        "processed",
        "notified",
        "ready_to_respond",
        "responded",
        "ignored",
        "error"
      ]
    }
  },
  "schemas": {},
  "sequences": {},
  "roles": {},
  "policies": {},
  "views": {},
  "_meta": {
    "columns": {},
    "schemas": {},
    "tables": {}
  }
}