- launch.ts policy: LAUNCH_MODE=free_early_access default; effective access = published && (free || early); intended tier (access) never rewritten - Billing off server-side: /api/subscribe 503 honest copy; subscribe CTAs render disabled 'قريباً' from first paint; /subscription early-access panel + /api/notify (LaunchNotifications) with honest 503 when mail transport off - Signup trust: verification email at signup (Users afterChange), no confirm-password, 429 message fidelity, typo suggestion, live password hint - Agent pipeline: pickFields strips access/readingMinutes, sourceId dedup, secret-scan 422 (pattern names only), string-content rejected (was silently replaced), publish stays explicit opt-in - lexical.ts: root unwrap fix — lexicalToText/countLexicalWords returned 0 for real serialized trees (secret scan + readingMinutes were inert) - llms-full.txt: fetchIndexDocs(true) — bodies were never selected - Content honesty: contentType/authorName/sourceId fields + migration, readingMinutes computed at write (160 wpm) + backfill script, byline, 'حُدّث' freshness - SEO/AI-SEO: metadata rewrite (published-only, og:image 1200x630), Article + BreadcrumbList + FAQPage + Organization JSON-LD, isAccessibleForFree honest, table renderer, robots AI-crawler policy (10 named bots), llms.txt + llms-full.txt, /topics/* hubs + sitemap, noindex auth pages, www 301 - Ops: backup-db.sh (restore rehearsed on VPS), docs copies (launch readiness + marketing audit + owner-inputs for L-03), GLOSSARY.md entries Verified: tsc --noEmit 0, npm run build 0, local smoke (ghost VIP read, subscribe/notify/agent APIs, signup token, 429 on 6th, llms/topics/sitemap, og:image/JSON-LD)
2215 lines
57 KiB
JSON
2215 lines
57 KiB
JSON
{
|
|
"version": "7",
|
|
"dialect": "postgresql",
|
|
"tables": {
|
|
"public.users_sessions": {
|
|
"name": "users_sessions",
|
|
"schema": "",
|
|
"columns": {
|
|
"_order": {
|
|
"name": "_order",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"_parent_id": {
|
|
"name": "_parent_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"id": {
|
|
"name": "id",
|
|
"type": "varchar",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"expires_at": {
|
|
"name": "expires_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
}
|
|
},
|
|
"indexes": {
|
|
"users_sessions_order_idx": {
|
|
"name": "users_sessions_order_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "_order",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"users_sessions_parent_id_idx": {
|
|
"name": "users_sessions_parent_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "_parent_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {
|
|
"users_sessions_parent_id_fk": {
|
|
"name": "users_sessions_parent_id_fk",
|
|
"tableFrom": "users_sessions",
|
|
"tableTo": "users",
|
|
"columnsFrom": [
|
|
"_parent_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
}
|
|
},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.users": {
|
|
"name": "users",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"full_name": {
|
|
"name": "full_name",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"terms_version": {
|
|
"name": "terms_version",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"terms_accepted_at": {
|
|
"name": "terms_accepted_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"interest": {
|
|
"name": "interest",
|
|
"type": "enum_users_interest",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"level": {
|
|
"name": "level",
|
|
"type": "enum_users_level",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"goal": {
|
|
"name": "goal",
|
|
"type": "enum_users_goal",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"prefs": {
|
|
"name": "prefs",
|
|
"type": "jsonb",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"email_verified": {
|
|
"name": "email_verified",
|
|
"type": "boolean",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"default": false
|
|
},
|
|
"verification_token": {
|
|
"name": "verification_token",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"onboarded": {
|
|
"name": "onboarded",
|
|
"type": "boolean",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"default": false
|
|
},
|
|
"role": {
|
|
"name": "role",
|
|
"type": "enum_users_role",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "'free'"
|
|
},
|
|
"stripe_customer_id": {
|
|
"name": "stripe_customer_id",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"email": {
|
|
"name": "email",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"reset_password_token": {
|
|
"name": "reset_password_token",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"reset_password_expiration": {
|
|
"name": "reset_password_expiration",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"salt": {
|
|
"name": "salt",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"hash": {
|
|
"name": "hash",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"reset_password_requested_at": {
|
|
"name": "reset_password_requested_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"login_attempts": {
|
|
"name": "login_attempts",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"default": 0
|
|
},
|
|
"lock_until": {
|
|
"name": "lock_until",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
}
|
|
},
|
|
"indexes": {
|
|
"users_updated_at_idx": {
|
|
"name": "users_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"users_created_at_idx": {
|
|
"name": "users_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"users_email_idx": {
|
|
"name": "users_email_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "email",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": true,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.posts": {
|
|
"name": "posts",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"title": {
|
|
"name": "title",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"slug": {
|
|
"name": "slug",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"dek": {
|
|
"name": "dek",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"access": {
|
|
"name": "access",
|
|
"type": "enum_posts_access",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "'free'"
|
|
},
|
|
"teaser": {
|
|
"name": "teaser",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"content": {
|
|
"name": "content",
|
|
"type": "jsonb",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"category": {
|
|
"name": "category",
|
|
"type": "enum_posts_category",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"level": {
|
|
"name": "level",
|
|
"type": "enum_posts_level",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "'مبتدئ'"
|
|
},
|
|
"content_type": {
|
|
"name": "content_type",
|
|
"type": "enum_posts_content_type",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"author_name": {
|
|
"name": "author_name",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"views": {
|
|
"name": "views",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"default": 0
|
|
},
|
|
"likes": {
|
|
"name": "likes",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"default": 0
|
|
},
|
|
"cover_id": {
|
|
"name": "cover_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"reading_minutes": {
|
|
"name": "reading_minutes",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": 5
|
|
},
|
|
"published_at": {
|
|
"name": "published_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"source_id": {
|
|
"name": "source_id",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"status": {
|
|
"name": "status",
|
|
"type": "enum_posts_status",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "'draft'"
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"posts_slug_idx": {
|
|
"name": "posts_slug_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "slug",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": true,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"posts_cover_idx": {
|
|
"name": "posts_cover_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "cover_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"posts_source_id_idx": {
|
|
"name": "posts_source_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "source_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"posts_updated_at_idx": {
|
|
"name": "posts_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"posts_created_at_idx": {
|
|
"name": "posts_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {
|
|
"posts_cover_id_media_id_fk": {
|
|
"name": "posts_cover_id_media_id_fk",
|
|
"tableFrom": "posts",
|
|
"tableTo": "media",
|
|
"columnsFrom": [
|
|
"cover_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "set null",
|
|
"onUpdate": "no action"
|
|
}
|
|
},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.posts_rels": {
|
|
"name": "posts_rels",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"order": {
|
|
"name": "order",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"parent_id": {
|
|
"name": "parent_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"path": {
|
|
"name": "path",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"files_id": {
|
|
"name": "files_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
}
|
|
},
|
|
"indexes": {
|
|
"posts_rels_order_idx": {
|
|
"name": "posts_rels_order_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "order",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"posts_rels_parent_idx": {
|
|
"name": "posts_rels_parent_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "parent_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"posts_rels_path_idx": {
|
|
"name": "posts_rels_path_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "path",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"posts_rels_files_id_idx": {
|
|
"name": "posts_rels_files_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "files_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {
|
|
"posts_rels_parent_fk": {
|
|
"name": "posts_rels_parent_fk",
|
|
"tableFrom": "posts_rels",
|
|
"tableTo": "posts",
|
|
"columnsFrom": [
|
|
"parent_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"posts_rels_files_fk": {
|
|
"name": "posts_rels_files_fk",
|
|
"tableFrom": "posts_rels",
|
|
"tableTo": "files",
|
|
"columnsFrom": [
|
|
"files_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
}
|
|
},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.media": {
|
|
"name": "media",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"url": {
|
|
"name": "url",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"thumbnail_u_r_l": {
|
|
"name": "thumbnail_u_r_l",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"filename": {
|
|
"name": "filename",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"mime_type": {
|
|
"name": "mime_type",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"filesize": {
|
|
"name": "filesize",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"width": {
|
|
"name": "width",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"height": {
|
|
"name": "height",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"focal_x": {
|
|
"name": "focal_x",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"focal_y": {
|
|
"name": "focal_y",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
}
|
|
},
|
|
"indexes": {
|
|
"media_updated_at_idx": {
|
|
"name": "media_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"media_created_at_idx": {
|
|
"name": "media_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"media_filename_idx": {
|
|
"name": "media_filename_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "filename",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": true,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.files": {
|
|
"name": "files",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"label": {
|
|
"name": "label",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"access": {
|
|
"name": "access",
|
|
"type": "enum_files_access",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "'vip'"
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"url": {
|
|
"name": "url",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"thumbnail_u_r_l": {
|
|
"name": "thumbnail_u_r_l",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"filename": {
|
|
"name": "filename",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"mime_type": {
|
|
"name": "mime_type",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"filesize": {
|
|
"name": "filesize",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"width": {
|
|
"name": "width",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"height": {
|
|
"name": "height",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"focal_x": {
|
|
"name": "focal_x",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"focal_y": {
|
|
"name": "focal_y",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
}
|
|
},
|
|
"indexes": {
|
|
"files_updated_at_idx": {
|
|
"name": "files_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"files_created_at_idx": {
|
|
"name": "files_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"files_filename_idx": {
|
|
"name": "files_filename_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "filename",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": true,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.post_likes": {
|
|
"name": "post_likes",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"user_id": {
|
|
"name": "user_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"post_id": {
|
|
"name": "post_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"post_likes_user_idx": {
|
|
"name": "post_likes_user_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "user_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"post_likes_post_idx": {
|
|
"name": "post_likes_post_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "post_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"post_likes_updated_at_idx": {
|
|
"name": "post_likes_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"post_likes_created_at_idx": {
|
|
"name": "post_likes_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {
|
|
"post_likes_user_id_users_id_fk": {
|
|
"name": "post_likes_user_id_users_id_fk",
|
|
"tableFrom": "post_likes",
|
|
"tableTo": "users",
|
|
"columnsFrom": [
|
|
"user_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "set null",
|
|
"onUpdate": "no action"
|
|
},
|
|
"post_likes_post_id_posts_id_fk": {
|
|
"name": "post_likes_post_id_posts_id_fk",
|
|
"tableFrom": "post_likes",
|
|
"tableTo": "posts",
|
|
"columnsFrom": [
|
|
"post_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "set null",
|
|
"onUpdate": "no action"
|
|
}
|
|
},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.comments": {
|
|
"name": "comments",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"post_id": {
|
|
"name": "post_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"author_id": {
|
|
"name": "author_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"author_name": {
|
|
"name": "author_name",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"body": {
|
|
"name": "body",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"status": {
|
|
"name": "status",
|
|
"type": "enum_comments_status",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "'pending'"
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"comments_post_idx": {
|
|
"name": "comments_post_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "post_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"comments_author_idx": {
|
|
"name": "comments_author_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "author_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"comments_updated_at_idx": {
|
|
"name": "comments_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"comments_created_at_idx": {
|
|
"name": "comments_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {
|
|
"comments_post_id_posts_id_fk": {
|
|
"name": "comments_post_id_posts_id_fk",
|
|
"tableFrom": "comments",
|
|
"tableTo": "posts",
|
|
"columnsFrom": [
|
|
"post_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "set null",
|
|
"onUpdate": "no action"
|
|
},
|
|
"comments_author_id_users_id_fk": {
|
|
"name": "comments_author_id_users_id_fk",
|
|
"tableFrom": "comments",
|
|
"tableTo": "users",
|
|
"columnsFrom": [
|
|
"author_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "set null",
|
|
"onUpdate": "no action"
|
|
}
|
|
},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.launch_notifications": {
|
|
"name": "launch_notifications",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"email": {
|
|
"name": "email",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"source": {
|
|
"name": "source",
|
|
"type": "enum_launch_notifications_source",
|
|
"typeSchema": "public",
|
|
"primaryKey": false,
|
|
"notNull": false,
|
|
"default": "'subscription'"
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"launch_notifications_email_idx": {
|
|
"name": "launch_notifications_email_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "email",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": true,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"launch_notifications_updated_at_idx": {
|
|
"name": "launch_notifications_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"launch_notifications_created_at_idx": {
|
|
"name": "launch_notifications_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.payload_kv": {
|
|
"name": "payload_kv",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"key": {
|
|
"name": "key",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"data": {
|
|
"name": "data",
|
|
"type": "jsonb",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
}
|
|
},
|
|
"indexes": {
|
|
"payload_kv_key_idx": {
|
|
"name": "payload_kv_key_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "key",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": true,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.payload_locked_documents": {
|
|
"name": "payload_locked_documents",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"global_slug": {
|
|
"name": "global_slug",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"payload_locked_documents_global_slug_idx": {
|
|
"name": "payload_locked_documents_global_slug_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "global_slug",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_updated_at_idx": {
|
|
"name": "payload_locked_documents_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_created_at_idx": {
|
|
"name": "payload_locked_documents_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.payload_locked_documents_rels": {
|
|
"name": "payload_locked_documents_rels",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"order": {
|
|
"name": "order",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"parent_id": {
|
|
"name": "parent_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"path": {
|
|
"name": "path",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"users_id": {
|
|
"name": "users_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"posts_id": {
|
|
"name": "posts_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"media_id": {
|
|
"name": "media_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"files_id": {
|
|
"name": "files_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"post_likes_id": {
|
|
"name": "post_likes_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"comments_id": {
|
|
"name": "comments_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"launch_notifications_id": {
|
|
"name": "launch_notifications_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
}
|
|
},
|
|
"indexes": {
|
|
"payload_locked_documents_rels_order_idx": {
|
|
"name": "payload_locked_documents_rels_order_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "order",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_rels_parent_idx": {
|
|
"name": "payload_locked_documents_rels_parent_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "parent_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_rels_path_idx": {
|
|
"name": "payload_locked_documents_rels_path_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "path",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_rels_users_id_idx": {
|
|
"name": "payload_locked_documents_rels_users_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "users_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_rels_posts_id_idx": {
|
|
"name": "payload_locked_documents_rels_posts_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "posts_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_rels_media_id_idx": {
|
|
"name": "payload_locked_documents_rels_media_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "media_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_rels_files_id_idx": {
|
|
"name": "payload_locked_documents_rels_files_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "files_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_rels_post_likes_id_idx": {
|
|
"name": "payload_locked_documents_rels_post_likes_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "post_likes_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_rels_comments_id_idx": {
|
|
"name": "payload_locked_documents_rels_comments_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "comments_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_locked_documents_rels_launch_notifications_id_idx": {
|
|
"name": "payload_locked_documents_rels_launch_notifications_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "launch_notifications_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {
|
|
"payload_locked_documents_rels_parent_fk": {
|
|
"name": "payload_locked_documents_rels_parent_fk",
|
|
"tableFrom": "payload_locked_documents_rels",
|
|
"tableTo": "payload_locked_documents",
|
|
"columnsFrom": [
|
|
"parent_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"payload_locked_documents_rels_users_fk": {
|
|
"name": "payload_locked_documents_rels_users_fk",
|
|
"tableFrom": "payload_locked_documents_rels",
|
|
"tableTo": "users",
|
|
"columnsFrom": [
|
|
"users_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"payload_locked_documents_rels_posts_fk": {
|
|
"name": "payload_locked_documents_rels_posts_fk",
|
|
"tableFrom": "payload_locked_documents_rels",
|
|
"tableTo": "posts",
|
|
"columnsFrom": [
|
|
"posts_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"payload_locked_documents_rels_media_fk": {
|
|
"name": "payload_locked_documents_rels_media_fk",
|
|
"tableFrom": "payload_locked_documents_rels",
|
|
"tableTo": "media",
|
|
"columnsFrom": [
|
|
"media_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"payload_locked_documents_rels_files_fk": {
|
|
"name": "payload_locked_documents_rels_files_fk",
|
|
"tableFrom": "payload_locked_documents_rels",
|
|
"tableTo": "files",
|
|
"columnsFrom": [
|
|
"files_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"payload_locked_documents_rels_post_likes_fk": {
|
|
"name": "payload_locked_documents_rels_post_likes_fk",
|
|
"tableFrom": "payload_locked_documents_rels",
|
|
"tableTo": "post_likes",
|
|
"columnsFrom": [
|
|
"post_likes_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"payload_locked_documents_rels_comments_fk": {
|
|
"name": "payload_locked_documents_rels_comments_fk",
|
|
"tableFrom": "payload_locked_documents_rels",
|
|
"tableTo": "comments",
|
|
"columnsFrom": [
|
|
"comments_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"payload_locked_documents_rels_launch_notifications_fk": {
|
|
"name": "payload_locked_documents_rels_launch_notifications_fk",
|
|
"tableFrom": "payload_locked_documents_rels",
|
|
"tableTo": "launch_notifications",
|
|
"columnsFrom": [
|
|
"launch_notifications_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
}
|
|
},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.payload_preferences": {
|
|
"name": "payload_preferences",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"key": {
|
|
"name": "key",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"value": {
|
|
"name": "value",
|
|
"type": "jsonb",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"payload_preferences_key_idx": {
|
|
"name": "payload_preferences_key_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "key",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_preferences_updated_at_idx": {
|
|
"name": "payload_preferences_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_preferences_created_at_idx": {
|
|
"name": "payload_preferences_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.payload_preferences_rels": {
|
|
"name": "payload_preferences_rels",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"order": {
|
|
"name": "order",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"parent_id": {
|
|
"name": "parent_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"path": {
|
|
"name": "path",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": true
|
|
},
|
|
"users_id": {
|
|
"name": "users_id",
|
|
"type": "integer",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
}
|
|
},
|
|
"indexes": {
|
|
"payload_preferences_rels_order_idx": {
|
|
"name": "payload_preferences_rels_order_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "order",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_preferences_rels_parent_idx": {
|
|
"name": "payload_preferences_rels_parent_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "parent_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_preferences_rels_path_idx": {
|
|
"name": "payload_preferences_rels_path_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "path",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_preferences_rels_users_id_idx": {
|
|
"name": "payload_preferences_rels_users_id_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "users_id",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {
|
|
"payload_preferences_rels_parent_fk": {
|
|
"name": "payload_preferences_rels_parent_fk",
|
|
"tableFrom": "payload_preferences_rels",
|
|
"tableTo": "payload_preferences",
|
|
"columnsFrom": [
|
|
"parent_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
},
|
|
"payload_preferences_rels_users_fk": {
|
|
"name": "payload_preferences_rels_users_fk",
|
|
"tableFrom": "payload_preferences_rels",
|
|
"tableTo": "users",
|
|
"columnsFrom": [
|
|
"users_id"
|
|
],
|
|
"columnsTo": [
|
|
"id"
|
|
],
|
|
"onDelete": "cascade",
|
|
"onUpdate": "no action"
|
|
}
|
|
},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
},
|
|
"public.payload_migrations": {
|
|
"name": "payload_migrations",
|
|
"schema": "",
|
|
"columns": {
|
|
"id": {
|
|
"name": "id",
|
|
"type": "serial",
|
|
"primaryKey": true,
|
|
"notNull": true
|
|
},
|
|
"name": {
|
|
"name": "name",
|
|
"type": "varchar",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"batch": {
|
|
"name": "batch",
|
|
"type": "numeric",
|
|
"primaryKey": false,
|
|
"notNull": false
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"type": "timestamp(3) with time zone",
|
|
"primaryKey": false,
|
|
"notNull": true,
|
|
"default": "now()"
|
|
}
|
|
},
|
|
"indexes": {
|
|
"payload_migrations_updated_at_idx": {
|
|
"name": "payload_migrations_updated_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "updated_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
},
|
|
"payload_migrations_created_at_idx": {
|
|
"name": "payload_migrations_created_at_idx",
|
|
"columns": [
|
|
{
|
|
"expression": "created_at",
|
|
"isExpression": false,
|
|
"asc": true,
|
|
"nulls": "last"
|
|
}
|
|
],
|
|
"isUnique": false,
|
|
"concurrently": false,
|
|
"method": "btree",
|
|
"with": {}
|
|
}
|
|
},
|
|
"foreignKeys": {},
|
|
"compositePrimaryKeys": {},
|
|
"uniqueConstraints": {},
|
|
"policies": {},
|
|
"checkConstraints": {},
|
|
"isRLSEnabled": false
|
|
}
|
|
},
|
|
"enums": {
|
|
"public.enum_users_interest": {
|
|
"name": "enum_users_interest",
|
|
"schema": "public",
|
|
"values": [
|
|
"الوكلاء",
|
|
"RAG",
|
|
"الأتمتة",
|
|
"النماذج المفتوحة"
|
|
]
|
|
},
|
|
"public.enum_users_level": {
|
|
"name": "enum_users_level",
|
|
"schema": "public",
|
|
"values": [
|
|
"مبتدئ",
|
|
"متوسط",
|
|
"متقدم"
|
|
]
|
|
},
|
|
"public.enum_users_goal": {
|
|
"name": "enum_users_goal",
|
|
"schema": "public",
|
|
"values": [
|
|
"بناء مشروع ذكاء اصطناعي",
|
|
"تطوير مساري المهني",
|
|
"أتمتة العمل",
|
|
"فهم الوكلاء بعمق"
|
|
]
|
|
},
|
|
"public.enum_users_role": {
|
|
"name": "enum_users_role",
|
|
"schema": "public",
|
|
"values": [
|
|
"free",
|
|
"vip",
|
|
"admin"
|
|
]
|
|
},
|
|
"public.enum_posts_access": {
|
|
"name": "enum_posts_access",
|
|
"schema": "public",
|
|
"values": [
|
|
"free",
|
|
"vip"
|
|
]
|
|
},
|
|
"public.enum_posts_category": {
|
|
"name": "enum_posts_category",
|
|
"schema": "public",
|
|
"values": [
|
|
"وكلاء",
|
|
"نماذج",
|
|
"استرجاع",
|
|
"سلامة",
|
|
"أدوات",
|
|
"أعمال"
|
|
]
|
|
},
|
|
"public.enum_posts_level": {
|
|
"name": "enum_posts_level",
|
|
"schema": "public",
|
|
"values": [
|
|
"مبتدئ",
|
|
"متوسط",
|
|
"متقدم"
|
|
]
|
|
},
|
|
"public.enum_posts_content_type": {
|
|
"name": "enum_posts_content_type",
|
|
"schema": "public",
|
|
"values": [
|
|
"note",
|
|
"tutorial",
|
|
"case_study",
|
|
"comparison"
|
|
]
|
|
},
|
|
"public.enum_posts_status": {
|
|
"name": "enum_posts_status",
|
|
"schema": "public",
|
|
"values": [
|
|
"draft",
|
|
"published"
|
|
]
|
|
},
|
|
"public.enum_files_access": {
|
|
"name": "enum_files_access",
|
|
"schema": "public",
|
|
"values": [
|
|
"free",
|
|
"vip"
|
|
]
|
|
},
|
|
"public.enum_comments_status": {
|
|
"name": "enum_comments_status",
|
|
"schema": "public",
|
|
"values": [
|
|
"pending",
|
|
"approved",
|
|
"rejected"
|
|
]
|
|
},
|
|
"public.enum_launch_notifications_source": {
|
|
"name": "enum_launch_notifications_source",
|
|
"schema": "public",
|
|
"values": [
|
|
"subscription"
|
|
]
|
|
}
|
|
},
|
|
"schemas": {},
|
|
"sequences": {},
|
|
"roles": {},
|
|
"policies": {},
|
|
"views": {},
|
|
"_meta": {
|
|
"schemas": {},
|
|
"tables": {},
|
|
"columns": {}
|
|
},
|
|
"id": "3f0f79b9-af02-4ae5-b820-e41972a5f859",
|
|
"prevId": "00000000-0000-0000-0000-000000000000"
|
|
} |