{
  "version": "1.0.0",
  "timestamp": 0,
  "packageName": "@happyvertical/smrt-social",
  "packageVersion": "0.43.3",
  "objects": {
    "@happyvertical/smrt-social:OAuthState": {
      "name": "oauthstate",
      "className": "OAuthState",
      "qualifiedName": "@happyvertical/smrt-social:OAuthState",
      "collection": "oauthstates",
      "filePath": "/home/runner/work/smrt/smrt/packages/social/src/oauth-state.ts",
      "packageName": "@happyvertical/smrt-social",
      "fields": {
        "created_at": {
          "type": "datetime",
          "required": false
        },
        "updated_at": {
          "type": "datetime",
          "required": false
        },
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "platform": {
          "type": "text",
          "required": false,
          "default": "youtube"
        },
        "state": {
          "type": "text",
          "required": false,
          "default": ""
        },
        "codeVerifier": {
          "type": "text",
          "required": false
        },
        "redirectUri": {
          "type": "text",
          "required": false,
          "default": ""
        },
        "scopes": {
          "type": "json",
          "required": false,
          "default": []
        },
        "expiresAt": {
          "type": "datetime",
          "required": false
        }
      },
      "methods": {
        "withDatabase": {
          "name": "withDatabase",
          "async": true,
          "parameters": [
            {
              "name": "db",
              "type": "DatabaseInterface",
              "optional": false
            },
            {
              "name": "operation",
              "type": "Function",
              "optional": false
            }
          ],
          "returnType": "Promise<T>",
          "isStatic": false,
          "isPublic": true
        },
        "getAiUsageSnapshot": {
          "name": "getAiUsageSnapshot",
          "async": false,
          "parameters": [],
          "returnType": "AiUsageSnapshot | undefined",
          "isStatic": false,
          "isPublic": true
        },
        "resetAiUsage": {
          "name": "resetAiUsage",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "listAiUsage": {
          "name": "listAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageListOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<SmrtAiUsageRecord[]>",
          "isStatic": false,
          "isPublic": true
        },
        "summarizeAiUsage": {
          "name": "summarizeAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageSummaryOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string, AiUsageStats>>",
          "isStatic": false,
          "isPublic": true
        },
        "destroy": {
          "name": "destroy",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "markAsPersisted": {
          "name": "markAsPersisted",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "requireInsertOnSave": {
          "name": "requireInsertOnSave",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "initialize": {
          "name": "initialize",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "loadDataFromDb": {
          "name": "loadDataFromDb",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getFields": {
          "name": "getFields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "toJSON": {
          "name": "toJSON",
          "async": false,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "toPlainObject": {
          "name": "toPlainObject",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "toPublicJSON": {
          "name": "toPublicJSON",
          "async": false,
          "parameters": [
            {
              "name": "options",
              "type": "PublicJsonOptions",
              "optional": true
            }
          ],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "getId": {
          "name": "getId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSlug": {
          "name": "getSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSavedId": {
          "name": "getSavedId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "isSaved": {
          "name": "isSaved",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "save": {
          "name": "save",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "classifyConstraintError": {
          "name": "classifyConstraintError",
          "async": false,
          "parameters": [
            {
              "name": "message",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "'unique' | 'not_null' | null",
          "isStatic": true,
          "isPublic": true
        },
        "loadFromId": {
          "name": "loadFromId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "loadFromSlug": {
          "name": "loadFromSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "is": {
          "name": "is",
          "async": true,
          "parameters": [
            {
              "name": "criteria",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "do": {
          "name": "do",
          "async": true,
          "parameters": [
            {
              "name": "instructions",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "describe": {
          "name": "describe",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "delete": {
          "name": "delete",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "isRelatedLoaded": {
          "name": "isRelatedLoaded",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "_setLoadedRelationship": {
          "name": "_setLoadedRelationship",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "value",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelated": {
          "name": "loadRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelatedMany": {
          "name": "loadRelatedMany",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getRelated": {
          "name": "getRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "getAvailableTools": {
          "name": "getAvailableTools",
          "async": false,
          "parameters": [],
          "returnType": "AITool[]",
          "isStatic": false,
          "isPublic": true
        },
        "executeToolCall": {
          "name": "executeToolCall",
          "async": true,
          "parameters": [
            {
              "name": "toolCall",
              "type": "ToolCall",
              "optional": false
            }
          ],
          "returnType": "Promise<ToolCallResult>",
          "isStatic": false,
          "isPublic": true
        },
        "remember": {
          "name": "remember",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "recall": {
          "name": "recall",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "recallAll": {
          "name": "recallAll",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Map<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "forget": {
          "name": "forget",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "forgetScope": {
          "name": "forgetScope",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "generateEmbeddings": {
          "name": "generateEmbeddings",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "GenerateEmbeddingsOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getEmbedding": {
          "name": "getEmbedding",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "model",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<number[] | null>",
          "isStatic": false,
          "isPublic": true
        },
        "hasStaleEmbeddings": {
          "name": "hasStaleEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "clearEmbeddings": {
          "name": "clearEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "verifyState": {
          "name": "verifyState",
          "async": false,
          "parameters": [
            {
              "name": "callbackState",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "generateState": {
          "name": "generateState",
          "async": false,
          "parameters": [],
          "returnType": "string",
          "isStatic": true,
          "isPublic": true
        },
        "generateCodeVerifier": {
          "name": "generateCodeVerifier",
          "async": false,
          "parameters": [],
          "returnType": "string",
          "isStatic": true,
          "isPublic": true
        },
        "generateCodeChallenge": {
          "name": "generateCodeChallenge",
          "async": true,
          "parameters": [
            {
              "name": "verifier",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<string>",
          "isStatic": true,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableStrategy": "sti",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "delete"
          ]
        },
        "mcp": false,
        "cli": true,
        "tenantScoped": {
          "mode": "optional"
        },
        "conflictColumns": [
          "tenant_id",
          "slug",
          "context",
          "_meta_type"
        ]
      },
      "extends": "SmrtObject",
      "exportName": "OAuthState",
      "collectionExportName": "OAuthStateCollection",
      "schema": {
        "tableName": "oauth_states",
        "ddl": "CREATE TABLE IF NOT EXISTS \"oauth_states\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"_meta_type\" TEXT NOT NULL,\n  \"_meta_data\" JSON,\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"tenant_id\" UUID,\n  \"platform\" TEXT DEFAULT 'youtube',\n  \"state\" TEXT DEFAULT '',\n  \"code_verifier\" TEXT,\n  \"redirect_uri\" TEXT DEFAULT '',\n  \"scopes\" JSON DEFAULT '[]',\n  \"expires_at\" TIMESTAMP\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "_meta_type": {
            "type": "TEXT",
            "notNull": true
          },
          "_meta_data": {
            "type": "JSON",
            "notNull": false
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false
          },
          "platform": {
            "type": "TEXT",
            "notNull": false,
            "default": "youtube"
          },
          "state": {
            "type": "TEXT",
            "notNull": false,
            "default": ""
          },
          "code_verifier": {
            "type": "TEXT",
            "notNull": false
          },
          "redirect_uri": {
            "type": "TEXT",
            "notNull": false,
            "default": ""
          },
          "scopes": {
            "type": "JSON",
            "notNull": false,
            "default": []
          },
          "expires_at": {
            "type": "TIMESTAMP",
            "notNull": false
          }
        },
        "indexes": [
          {
            "name": "oauth_states_slug_context_meta_type_idx",
            "columns": [
              "tenant_id",
              "slug",
              "context",
              "_meta_type"
            ],
            "unique": true
          },
          {
            "name": "oauth_states_meta_type_idx",
            "columns": [
              "_meta_type"
            ]
          },
          {
            "name": "oauth_states_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          }
        ],
        "version": "709e111f"
      }
    },
    "@happyvertical/smrt-social:SocialAccount": {
      "name": "socialaccount",
      "className": "SocialAccount",
      "qualifiedName": "@happyvertical/smrt-social:SocialAccount",
      "collection": "socialaccounts",
      "filePath": "/home/runner/work/smrt/smrt/packages/social/src/social-account.ts",
      "packageName": "@happyvertical/smrt-social",
      "fields": {
        "created_at": {
          "type": "datetime",
          "required": false
        },
        "updated_at": {
          "type": "datetime",
          "required": false
        },
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "name": {
          "type": "text",
          "required": false,
          "default": ""
        },
        "platform": {
          "type": "text",
          "required": false,
          "default": "youtube"
        },
        "platformUserId": {
          "type": "text",
          "required": false
        },
        "platformUsername": {
          "type": "text",
          "required": false
        },
        "platformUrl": {
          "type": "text",
          "required": false
        },
        "accessToken": {
          "type": "text",
          "required": false
        },
        "refreshToken": {
          "type": "text",
          "required": false
        },
        "credentialSecretId": {
          "type": "text",
          "required": false
        },
        "accessTokenSecretName": {
          "type": "text",
          "required": false
        },
        "refreshTokenSecretName": {
          "type": "text",
          "required": false
        },
        "tokenExpiresAt": {
          "type": "datetime",
          "required": false
        },
        "isActive": {
          "type": "boolean",
          "required": false,
          "default": true
        },
        "defaultHashtags": {
          "type": "json",
          "required": false,
          "default": []
        },
        "scopes": {
          "type": "json",
          "required": false,
          "default": []
        },
        "missingPermissions": {
          "type": "json",
          "required": false,
          "default": []
        },
        "linkBehavior": {
          "type": "text",
          "required": false,
          "default": "description"
        },
        "publishMode": {
          "type": "text",
          "required": false,
          "default": "dry_run"
        },
        "publicPublishingAllowed": {
          "type": "boolean",
          "required": false,
          "default": false
        },
        "status": {
          "type": "text",
          "required": false,
          "default": "connected"
        },
        "errorMessage": {
          "type": "text",
          "required": false
        }
      },
      "methods": {
        "withDatabase": {
          "name": "withDatabase",
          "async": true,
          "parameters": [
            {
              "name": "db",
              "type": "DatabaseInterface",
              "optional": false
            },
            {
              "name": "operation",
              "type": "Function",
              "optional": false
            }
          ],
          "returnType": "Promise<T>",
          "isStatic": false,
          "isPublic": true
        },
        "getAiUsageSnapshot": {
          "name": "getAiUsageSnapshot",
          "async": false,
          "parameters": [],
          "returnType": "AiUsageSnapshot | undefined",
          "isStatic": false,
          "isPublic": true
        },
        "resetAiUsage": {
          "name": "resetAiUsage",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "listAiUsage": {
          "name": "listAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageListOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<SmrtAiUsageRecord[]>",
          "isStatic": false,
          "isPublic": true
        },
        "summarizeAiUsage": {
          "name": "summarizeAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageSummaryOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string, AiUsageStats>>",
          "isStatic": false,
          "isPublic": true
        },
        "destroy": {
          "name": "destroy",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "markAsPersisted": {
          "name": "markAsPersisted",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "requireInsertOnSave": {
          "name": "requireInsertOnSave",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "initialize": {
          "name": "initialize",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "loadDataFromDb": {
          "name": "loadDataFromDb",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getFields": {
          "name": "getFields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "toJSON": {
          "name": "toJSON",
          "async": false,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "toPlainObject": {
          "name": "toPlainObject",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "toPublicJSON": {
          "name": "toPublicJSON",
          "async": false,
          "parameters": [
            {
              "name": "options",
              "type": "PublicJsonOptions",
              "optional": true
            }
          ],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "getId": {
          "name": "getId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSlug": {
          "name": "getSlug",
          "async": true,
          "parameters": [],
          "returnType": "Promise<string | null | undefined>",
          "isStatic": false,
          "isPublic": true
        },
        "getSavedId": {
          "name": "getSavedId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "isSaved": {
          "name": "isSaved",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "save": {
          "name": "save",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "classifyConstraintError": {
          "name": "classifyConstraintError",
          "async": false,
          "parameters": [
            {
              "name": "message",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "'unique' | 'not_null' | null",
          "isStatic": true,
          "isPublic": true
        },
        "loadFromId": {
          "name": "loadFromId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "loadFromSlug": {
          "name": "loadFromSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "is": {
          "name": "is",
          "async": true,
          "parameters": [
            {
              "name": "criteria",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "do": {
          "name": "do",
          "async": true,
          "parameters": [
            {
              "name": "instructions",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "describe": {
          "name": "describe",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "delete": {
          "name": "delete",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "isRelatedLoaded": {
          "name": "isRelatedLoaded",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "_setLoadedRelationship": {
          "name": "_setLoadedRelationship",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "value",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelated": {
          "name": "loadRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelatedMany": {
          "name": "loadRelatedMany",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getRelated": {
          "name": "getRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "getAvailableTools": {
          "name": "getAvailableTools",
          "async": false,
          "parameters": [],
          "returnType": "AITool[]",
          "isStatic": false,
          "isPublic": true
        },
        "executeToolCall": {
          "name": "executeToolCall",
          "async": true,
          "parameters": [
            {
              "name": "toolCall",
              "type": "ToolCall",
              "optional": false
            }
          ],
          "returnType": "Promise<ToolCallResult>",
          "isStatic": false,
          "isPublic": true
        },
        "remember": {
          "name": "remember",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "recall": {
          "name": "recall",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "recallAll": {
          "name": "recallAll",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Map<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "forget": {
          "name": "forget",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "forgetScope": {
          "name": "forgetScope",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "generateEmbeddings": {
          "name": "generateEmbeddings",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "GenerateEmbeddingsOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getEmbedding": {
          "name": "getEmbedding",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "model",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<number[] | null>",
          "isStatic": false,
          "isPublic": true
        },
        "hasStaleEmbeddings": {
          "name": "hasStaleEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "clearEmbeddings": {
          "name": "clearEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "setCredentials": {
          "name": "setCredentials",
          "async": true,
          "parameters": [
            {
              "name": "credentials",
              "type": "Record<string>",
              "optional": false
            },
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getCredentials": {
          "name": "getCredentials",
          "async": true,
          "parameters": [],
          "returnType": "Promise<Record<string> | null>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableStrategy": "sti",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get"
          ]
        },
        "cli": true,
        "tenantScoped": {
          "mode": "optional"
        },
        "conflictColumns": [
          "tenant_id",
          "slug",
          "context",
          "_meta_type"
        ]
      },
      "extends": "SmrtObject",
      "exportName": "SocialAccount",
      "collectionExportName": "SocialAccountCollection",
      "schema": {
        "tableName": "social_accounts",
        "ddl": "CREATE TABLE IF NOT EXISTS \"social_accounts\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"_meta_type\" TEXT NOT NULL,\n  \"_meta_data\" JSON,\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"tenant_id\" UUID,\n  \"name\" TEXT DEFAULT '',\n  \"platform\" TEXT DEFAULT 'youtube',\n  \"platform_user_id\" TEXT,\n  \"platform_username\" TEXT,\n  \"platform_url\" TEXT,\n  \"access_token\" TEXT,\n  \"refresh_token\" TEXT,\n  \"credential_secret_id\" TEXT,\n  \"access_token_secret_name\" TEXT,\n  \"refresh_token_secret_name\" TEXT,\n  \"token_expires_at\" TIMESTAMP,\n  \"is_active\" BOOLEAN DEFAULT TRUE,\n  \"default_hashtags\" JSON DEFAULT '[]',\n  \"scopes\" JSON DEFAULT '[]',\n  \"missing_permissions\" JSON DEFAULT '[]',\n  \"link_behavior\" TEXT DEFAULT 'description',\n  \"publish_mode\" TEXT DEFAULT 'dry_run',\n  \"public_publishing_allowed\" BOOLEAN DEFAULT FALSE,\n  \"status\" TEXT DEFAULT 'connected',\n  \"error_message\" TEXT\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "_meta_type": {
            "type": "TEXT",
            "notNull": true
          },
          "_meta_data": {
            "type": "JSON",
            "notNull": false
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false
          },
          "name": {
            "type": "TEXT",
            "notNull": false,
            "default": ""
          },
          "platform": {
            "type": "TEXT",
            "notNull": false,
            "default": "youtube"
          },
          "platform_user_id": {
            "type": "TEXT",
            "notNull": false
          },
          "platform_username": {
            "type": "TEXT",
            "notNull": false
          },
          "platform_url": {
            "type": "TEXT",
            "notNull": false
          },
          "access_token": {
            "type": "TEXT",
            "notNull": false
          },
          "refresh_token": {
            "type": "TEXT",
            "notNull": false
          },
          "credential_secret_id": {
            "type": "TEXT",
            "notNull": false
          },
          "access_token_secret_name": {
            "type": "TEXT",
            "notNull": false
          },
          "refresh_token_secret_name": {
            "type": "TEXT",
            "notNull": false
          },
          "token_expires_at": {
            "type": "TIMESTAMP",
            "notNull": false
          },
          "is_active": {
            "type": "BOOLEAN",
            "notNull": false,
            "default": true
          },
          "default_hashtags": {
            "type": "JSON",
            "notNull": false,
            "default": []
          },
          "scopes": {
            "type": "JSON",
            "notNull": false,
            "default": []
          },
          "missing_permissions": {
            "type": "JSON",
            "notNull": false,
            "default": []
          },
          "link_behavior": {
            "type": "TEXT",
            "notNull": false,
            "default": "description"
          },
          "publish_mode": {
            "type": "TEXT",
            "notNull": false,
            "default": "dry_run"
          },
          "public_publishing_allowed": {
            "type": "BOOLEAN",
            "notNull": false,
            "default": false
          },
          "status": {
            "type": "TEXT",
            "notNull": false,
            "default": "connected"
          },
          "error_message": {
            "type": "TEXT",
            "notNull": false
          }
        },
        "indexes": [
          {
            "name": "social_accounts_slug_context_meta_type_idx",
            "columns": [
              "tenant_id",
              "slug",
              "context",
              "_meta_type"
            ],
            "unique": true
          },
          {
            "name": "social_accounts_meta_type_idx",
            "columns": [
              "_meta_type"
            ]
          },
          {
            "name": "social_accounts_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          }
        ],
        "version": "0c175da6"
      }
    },
    "@happyvertical/smrt-social:SocialPostAnalyticsSnapshot": {
      "name": "socialpostanalyticssnapshot",
      "className": "SocialPostAnalyticsSnapshot",
      "qualifiedName": "@happyvertical/smrt-social:SocialPostAnalyticsSnapshot",
      "collection": "socialpostanalyticssnapshots",
      "filePath": "/home/runner/work/smrt/smrt/packages/social/src/social-post-analytics-snapshot.ts",
      "packageName": "@happyvertical/smrt-social",
      "fields": {
        "created_at": {
          "type": "datetime",
          "required": false
        },
        "updated_at": {
          "type": "datetime",
          "required": false
        },
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "socialPostId": {
          "type": "foreignKey",
          "required": false,
          "related": "SocialPost"
        },
        "platform": {
          "type": "text",
          "required": true,
          "_meta": {
            "required": true
          }
        },
        "analytics": {
          "type": "json",
          "required": false
        },
        "raw": {
          "type": "json",
          "required": false,
          "_meta": {
            "nullable": true
          }
        },
        "capturedAt": {
          "type": "datetime",
          "required": false
        }
      },
      "methods": {
        "withDatabase": {
          "name": "withDatabase",
          "async": true,
          "parameters": [
            {
              "name": "db",
              "type": "DatabaseInterface",
              "optional": false
            },
            {
              "name": "operation",
              "type": "Function",
              "optional": false
            }
          ],
          "returnType": "Promise<T>",
          "isStatic": false,
          "isPublic": true
        },
        "getAiUsageSnapshot": {
          "name": "getAiUsageSnapshot",
          "async": false,
          "parameters": [],
          "returnType": "AiUsageSnapshot | undefined",
          "isStatic": false,
          "isPublic": true
        },
        "resetAiUsage": {
          "name": "resetAiUsage",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "listAiUsage": {
          "name": "listAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageListOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<SmrtAiUsageRecord[]>",
          "isStatic": false,
          "isPublic": true
        },
        "summarizeAiUsage": {
          "name": "summarizeAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageSummaryOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string, AiUsageStats>>",
          "isStatic": false,
          "isPublic": true
        },
        "destroy": {
          "name": "destroy",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "markAsPersisted": {
          "name": "markAsPersisted",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "requireInsertOnSave": {
          "name": "requireInsertOnSave",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "initialize": {
          "name": "initialize",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "loadDataFromDb": {
          "name": "loadDataFromDb",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getFields": {
          "name": "getFields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "toJSON": {
          "name": "toJSON",
          "async": false,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "toPlainObject": {
          "name": "toPlainObject",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "toPublicJSON": {
          "name": "toPublicJSON",
          "async": false,
          "parameters": [
            {
              "name": "options",
              "type": "PublicJsonOptions",
              "optional": true
            }
          ],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "getId": {
          "name": "getId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSlug": {
          "name": "getSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSavedId": {
          "name": "getSavedId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "isSaved": {
          "name": "isSaved",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "save": {
          "name": "save",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "classifyConstraintError": {
          "name": "classifyConstraintError",
          "async": false,
          "parameters": [
            {
              "name": "message",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "'unique' | 'not_null' | null",
          "isStatic": true,
          "isPublic": true
        },
        "loadFromId": {
          "name": "loadFromId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "loadFromSlug": {
          "name": "loadFromSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "is": {
          "name": "is",
          "async": true,
          "parameters": [
            {
              "name": "criteria",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "do": {
          "name": "do",
          "async": true,
          "parameters": [
            {
              "name": "instructions",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "describe": {
          "name": "describe",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "delete": {
          "name": "delete",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "isRelatedLoaded": {
          "name": "isRelatedLoaded",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "_setLoadedRelationship": {
          "name": "_setLoadedRelationship",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "value",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelated": {
          "name": "loadRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelatedMany": {
          "name": "loadRelatedMany",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getRelated": {
          "name": "getRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "getAvailableTools": {
          "name": "getAvailableTools",
          "async": false,
          "parameters": [],
          "returnType": "AITool[]",
          "isStatic": false,
          "isPublic": true
        },
        "executeToolCall": {
          "name": "executeToolCall",
          "async": true,
          "parameters": [
            {
              "name": "toolCall",
              "type": "ToolCall",
              "optional": false
            }
          ],
          "returnType": "Promise<ToolCallResult>",
          "isStatic": false,
          "isPublic": true
        },
        "remember": {
          "name": "remember",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "recall": {
          "name": "recall",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "recallAll": {
          "name": "recallAll",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Map<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "forget": {
          "name": "forget",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "forgetScope": {
          "name": "forgetScope",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "generateEmbeddings": {
          "name": "generateEmbeddings",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "GenerateEmbeddingsOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getEmbedding": {
          "name": "getEmbedding",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "model",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<number[] | null>",
          "isStatic": false,
          "isPublic": true
        },
        "hasStaleEmbeddings": {
          "name": "hasStaleEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "clearEmbeddings": {
          "name": "clearEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableStrategy": "sti",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get"
          ]
        },
        "cli": true,
        "tenantScoped": {
          "mode": "optional"
        },
        "conflictColumns": [
          "tenant_id",
          "slug",
          "context",
          "_meta_type"
        ]
      },
      "extends": "SmrtObject",
      "exportName": "SocialPostAnalyticsSnapshot",
      "collectionExportName": "SocialPostAnalyticsSnapshotCollection",
      "validationRules": [
        {
          "field": "platform",
          "rule": "required",
          "fieldType": "text"
        }
      ],
      "schema": {
        "tableName": "social_post_analytics_snapshots",
        "ddl": "CREATE TABLE IF NOT EXISTS \"social_post_analytics_snapshots\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"_meta_type\" TEXT NOT NULL,\n  \"_meta_data\" JSON,\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"tenant_id\" UUID,\n  \"social_post_id\" UUID,\n  \"platform\" TEXT,\n  \"analytics\" JSON,\n  \"raw\" JSON,\n  \"captured_at\" TIMESTAMP\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "_meta_type": {
            "type": "TEXT",
            "notNull": true
          },
          "_meta_data": {
            "type": "JSON",
            "notNull": false
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false
          },
          "social_post_id": {
            "type": "UUID",
            "referenceKind": "foreignKey",
            "notNull": false,
            "foreignKey": {
              "table": "social_posts",
              "column": "id",
              "onDelete": "NO ACTION",
              "onUpdate": "CASCADE"
            }
          },
          "platform": {
            "type": "TEXT",
            "notNull": false
          },
          "analytics": {
            "type": "JSON",
            "notNull": false
          },
          "raw": {
            "type": "JSON",
            "notNull": false
          },
          "captured_at": {
            "type": "TIMESTAMP",
            "notNull": false
          }
        },
        "indexes": [
          {
            "name": "social_post_analytics_snapshots_slug_context_meta_type_idx",
            "columns": [
              "tenant_id",
              "slug",
              "context",
              "_meta_type"
            ],
            "unique": true
          },
          {
            "name": "social_post_analytics_snapshots_meta_type_idx",
            "columns": [
              "_meta_type"
            ]
          },
          {
            "name": "social_post_analytics_snapshots_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          },
          {
            "name": "social_post_analytics_snapshots_social_post_id_idx",
            "columns": [
              "social_post_id"
            ]
          }
        ],
        "version": "bd17983d"
      }
    },
    "@happyvertical/smrt-social:SocialPost": {
      "name": "socialpost",
      "className": "SocialPost",
      "qualifiedName": "@happyvertical/smrt-social:SocialPost",
      "collection": "socialposts",
      "filePath": "/home/runner/work/smrt/smrt/packages/social/src/social-post.ts",
      "packageName": "@happyvertical/smrt-social",
      "fields": {
        "created_at": {
          "type": "datetime",
          "required": false
        },
        "updated_at": {
          "type": "datetime",
          "required": false
        },
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "socialAccountId": {
          "type": "foreignKey",
          "required": false,
          "related": "SocialAccount"
        },
        "videoContentId": {
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-video:VideoContent"
        },
        "contentId": {
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-content:Content"
        },
        "postType": {
          "type": "text",
          "required": false,
          "default": "text"
        },
        "mediaUrl": {
          "type": "text",
          "required": false
        },
        "title": {
          "type": "text",
          "required": false
        },
        "description": {
          "type": "text",
          "required": false,
          "default": ""
        },
        "hashtags": {
          "type": "json",
          "required": false,
          "default": []
        },
        "linkUrl": {
          "type": "text",
          "required": false
        },
        "platformPostId": {
          "type": "text",
          "required": false
        },
        "platformUrl": {
          "type": "text",
          "required": false
        },
        "scheduledAt": {
          "type": "datetime",
          "required": false
        },
        "publishedAt": {
          "type": "datetime",
          "required": false
        },
        "status": {
          "type": "text",
          "required": false,
          "default": "draft"
        },
        "errorMessage": {
          "type": "text",
          "required": false
        },
        "analytics": {
          "type": "json",
          "required": false
        },
        "analyticsLastSyncedAt": {
          "type": "datetime",
          "required": false
        }
      },
      "methods": {
        "withDatabase": {
          "name": "withDatabase",
          "async": true,
          "parameters": [
            {
              "name": "db",
              "type": "DatabaseInterface",
              "optional": false
            },
            {
              "name": "operation",
              "type": "Function",
              "optional": false
            }
          ],
          "returnType": "Promise<T>",
          "isStatic": false,
          "isPublic": true
        },
        "getAiUsageSnapshot": {
          "name": "getAiUsageSnapshot",
          "async": false,
          "parameters": [],
          "returnType": "AiUsageSnapshot | undefined",
          "isStatic": false,
          "isPublic": true
        },
        "resetAiUsage": {
          "name": "resetAiUsage",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "listAiUsage": {
          "name": "listAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageListOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<SmrtAiUsageRecord[]>",
          "isStatic": false,
          "isPublic": true
        },
        "summarizeAiUsage": {
          "name": "summarizeAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageSummaryOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string, AiUsageStats>>",
          "isStatic": false,
          "isPublic": true
        },
        "destroy": {
          "name": "destroy",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "markAsPersisted": {
          "name": "markAsPersisted",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "requireInsertOnSave": {
          "name": "requireInsertOnSave",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "initialize": {
          "name": "initialize",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "loadDataFromDb": {
          "name": "loadDataFromDb",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getFields": {
          "name": "getFields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "toJSON": {
          "name": "toJSON",
          "async": false,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "toPlainObject": {
          "name": "toPlainObject",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "toPublicJSON": {
          "name": "toPublicJSON",
          "async": false,
          "parameters": [
            {
              "name": "options",
              "type": "PublicJsonOptions",
              "optional": true
            }
          ],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "getId": {
          "name": "getId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSlug": {
          "name": "getSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSavedId": {
          "name": "getSavedId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "isSaved": {
          "name": "isSaved",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "save": {
          "name": "save",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "classifyConstraintError": {
          "name": "classifyConstraintError",
          "async": false,
          "parameters": [
            {
              "name": "message",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "'unique' | 'not_null' | null",
          "isStatic": true,
          "isPublic": true
        },
        "loadFromId": {
          "name": "loadFromId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "loadFromSlug": {
          "name": "loadFromSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "is": {
          "name": "is",
          "async": true,
          "parameters": [
            {
              "name": "criteria",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "do": {
          "name": "do",
          "async": true,
          "parameters": [
            {
              "name": "instructions",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "describe": {
          "name": "describe",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "delete": {
          "name": "delete",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "isRelatedLoaded": {
          "name": "isRelatedLoaded",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "_setLoadedRelationship": {
          "name": "_setLoadedRelationship",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "value",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelated": {
          "name": "loadRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelatedMany": {
          "name": "loadRelatedMany",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getRelated": {
          "name": "getRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "getAvailableTools": {
          "name": "getAvailableTools",
          "async": false,
          "parameters": [],
          "returnType": "AITool[]",
          "isStatic": false,
          "isPublic": true
        },
        "executeToolCall": {
          "name": "executeToolCall",
          "async": true,
          "parameters": [
            {
              "name": "toolCall",
              "type": "ToolCall",
              "optional": false
            }
          ],
          "returnType": "Promise<ToolCallResult>",
          "isStatic": false,
          "isPublic": true
        },
        "remember": {
          "name": "remember",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "recall": {
          "name": "recall",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "recallAll": {
          "name": "recallAll",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Map<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "forget": {
          "name": "forget",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "forgetScope": {
          "name": "forgetScope",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "generateEmbeddings": {
          "name": "generateEmbeddings",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "GenerateEmbeddingsOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getEmbedding": {
          "name": "getEmbedding",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "model",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<number[] | null>",
          "isStatic": false,
          "isPublic": true
        },
        "hasStaleEmbeddings": {
          "name": "hasStaleEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "clearEmbeddings": {
          "name": "clearEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableStrategy": "sti",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get"
          ]
        },
        "cli": true,
        "tenantScoped": {
          "mode": "optional"
        },
        "conflictColumns": [
          "tenant_id",
          "slug",
          "context",
          "_meta_type"
        ]
      },
      "extends": "SmrtObject",
      "exportName": "SocialPost",
      "collectionExportName": "SocialPostCollection",
      "schema": {
        "tableName": "social_posts",
        "ddl": "CREATE TABLE IF NOT EXISTS \"social_posts\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"_meta_type\" TEXT NOT NULL,\n  \"_meta_data\" JSON,\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"tenant_id\" UUID,\n  \"social_account_id\" UUID,\n  \"video_content_id\" UUID,\n  \"content_id\" UUID,\n  \"post_type\" TEXT DEFAULT 'text',\n  \"media_url\" TEXT,\n  \"title\" TEXT,\n  \"description\" TEXT DEFAULT '',\n  \"hashtags\" JSON DEFAULT '[]',\n  \"link_url\" TEXT,\n  \"platform_post_id\" TEXT,\n  \"platform_url\" TEXT,\n  \"scheduled_at\" TIMESTAMP,\n  \"published_at\" TIMESTAMP,\n  \"status\" TEXT DEFAULT 'draft',\n  \"error_message\" TEXT,\n  \"analytics\" JSON,\n  \"analytics_last_synced_at\" TIMESTAMP\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "_meta_type": {
            "type": "TEXT",
            "notNull": true
          },
          "_meta_data": {
            "type": "JSON",
            "notNull": false
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false
          },
          "social_account_id": {
            "type": "UUID",
            "referenceKind": "foreignKey",
            "notNull": false,
            "foreignKey": {
              "table": "social_accounts",
              "column": "id",
              "onDelete": "NO ACTION",
              "onUpdate": "CASCADE"
            }
          },
          "video_content_id": {
            "type": "UUID",
            "referenceKind": "crossPackageRef",
            "notNull": false
          },
          "content_id": {
            "type": "UUID",
            "referenceKind": "crossPackageRef",
            "notNull": false
          },
          "post_type": {
            "type": "TEXT",
            "notNull": false,
            "default": "text"
          },
          "media_url": {
            "type": "TEXT",
            "notNull": false
          },
          "title": {
            "type": "TEXT",
            "notNull": false
          },
          "description": {
            "type": "TEXT",
            "notNull": false,
            "default": ""
          },
          "hashtags": {
            "type": "JSON",
            "notNull": false,
            "default": []
          },
          "link_url": {
            "type": "TEXT",
            "notNull": false
          },
          "platform_post_id": {
            "type": "TEXT",
            "notNull": false
          },
          "platform_url": {
            "type": "TEXT",
            "notNull": false
          },
          "scheduled_at": {
            "type": "TIMESTAMP",
            "notNull": false
          },
          "published_at": {
            "type": "TIMESTAMP",
            "notNull": false
          },
          "status": {
            "type": "TEXT",
            "notNull": false,
            "default": "draft"
          },
          "error_message": {
            "type": "TEXT",
            "notNull": false
          },
          "analytics": {
            "type": "JSON",
            "notNull": false
          },
          "analytics_last_synced_at": {
            "type": "TIMESTAMP",
            "notNull": false
          }
        },
        "indexes": [
          {
            "name": "social_posts_slug_context_meta_type_idx",
            "columns": [
              "tenant_id",
              "slug",
              "context",
              "_meta_type"
            ],
            "unique": true
          },
          {
            "name": "social_posts_meta_type_idx",
            "columns": [
              "_meta_type"
            ]
          },
          {
            "name": "social_posts_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          },
          {
            "name": "social_posts_social_account_id_idx",
            "columns": [
              "social_account_id"
            ]
          },
          {
            "name": "social_posts_video_content_id_idx",
            "columns": [
              "video_content_id"
            ]
          },
          {
            "name": "social_posts_content_id_idx",
            "columns": [
              "content_id"
            ]
          }
        ],
        "version": "49573fcf"
      }
    },
    "@happyvertical/smrt-social:OAuthStateCollection": {
      "name": "oauthstatecollection",
      "className": "OAuthStateCollection",
      "qualifiedName": "@happyvertical/smrt-social:OAuthStateCollection",
      "collection": "oauthstates",
      "filePath": "/home/runner/work/smrt/smrt/packages/social/src/collections/oauth-state-collection.ts",
      "packageName": "@happyvertical/smrt-social",
      "fields": {},
      "methods": {
        "findByState": {
          "name": "findByState",
          "async": true,
          "parameters": [
            {
              "name": "state",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<OAuthState | null>",
          "isStatic": false,
          "isPublic": true
        },
        "findExpired": {
          "name": "findExpired",
          "async": true,
          "parameters": [
            {
              "name": "now",
              "type": "Date",
              "optional": true
            }
          ],
          "returnType": "Promise<OAuthState[]>",
          "isStatic": false,
          "isPublic": true
        },
        "deleteExpired": {
          "name": "deleteExpired",
          "async": true,
          "parameters": [
            {
              "name": "now",
              "type": "Date",
              "optional": true
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtCollection",
      "extendsTypeArg": "OAuthState",
      "exportName": "OAuthStateCollection",
      "collectionExportName": "OAuthStateCollectionCollection",
      "schema": {
        "tableName": "oauth_state_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"oauth_state_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "oauth_state_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "oauth_state_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "bb1b91f9"
      }
    },
    "@happyvertical/smrt-social:SocialAccountCollection": {
      "name": "socialaccountcollection",
      "className": "SocialAccountCollection",
      "qualifiedName": "@happyvertical/smrt-social:SocialAccountCollection",
      "collection": "socialaccounts",
      "filePath": "/home/runner/work/smrt/smrt/packages/social/src/collections/social-account-collection.ts",
      "packageName": "@happyvertical/smrt-social",
      "fields": {},
      "methods": {
        "findActive": {
          "name": "findActive",
          "async": true,
          "parameters": [
            {
              "name": "platform",
              "type": "SocialPlatformType",
              "optional": true
            }
          ],
          "returnType": "Promise<SocialAccount[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findReady": {
          "name": "findReady",
          "async": true,
          "parameters": [
            {
              "name": "platform",
              "type": "SocialPlatformType",
              "optional": true
            }
          ],
          "returnType": "Promise<SocialAccount[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findNeedsAttention": {
          "name": "findNeedsAttention",
          "async": true,
          "parameters": [],
          "returnType": "Promise<SocialAccount[]>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtCollection",
      "extendsTypeArg": "SocialAccount",
      "exportName": "SocialAccountCollection",
      "collectionExportName": "SocialAccountCollectionCollection",
      "schema": {
        "tableName": "social_account_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"social_account_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "social_account_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "social_account_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "eeae07d4"
      }
    },
    "@happyvertical/smrt-social:SocialPostAnalyticsSnapshotCollection": {
      "name": "socialpostanalyticssnapshotcollection",
      "className": "SocialPostAnalyticsSnapshotCollection",
      "qualifiedName": "@happyvertical/smrt-social:SocialPostAnalyticsSnapshotCollection",
      "collection": "socialpostanalyticssnapshots",
      "filePath": "/home/runner/work/smrt/smrt/packages/social/src/collections/social-post-analytics-snapshot-collection.ts",
      "packageName": "@happyvertical/smrt-social",
      "fields": {},
      "methods": {
        "recordSnapshot": {
          "name": "recordSnapshot",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<SocialPostAnalyticsSnapshot>",
          "isStatic": false,
          "isPublic": true
        },
        "findForPost": {
          "name": "findForPost",
          "async": true,
          "parameters": [
            {
              "name": "socialPostId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<SocialPostAnalyticsSnapshot[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findLatestForPost": {
          "name": "findLatestForPost",
          "async": true,
          "parameters": [
            {
              "name": "socialPostId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<SocialPostAnalyticsSnapshot | null>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtCollection",
      "extendsTypeArg": "SocialPostAnalyticsSnapshot",
      "exportName": "SocialPostAnalyticsSnapshotCollection",
      "collectionExportName": "SocialPostAnalyticsSnapshotCollectionCollection",
      "schema": {
        "tableName": "social_post_analytics_snapshot_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"social_post_analytics_snapshot_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "social_post_analytics_snapshot_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "social_post_analytics_snapshot_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "c98f7921"
      }
    },
    "@happyvertical/smrt-social:SocialPostCollection": {
      "name": "socialpostcollection",
      "className": "SocialPostCollection",
      "qualifiedName": "@happyvertical/smrt-social:SocialPostCollection",
      "collection": "socialposts",
      "filePath": "/home/runner/work/smrt/smrt/packages/social/src/collections/social-post-collection.ts",
      "packageName": "@happyvertical/smrt-social",
      "fields": {},
      "methods": {
        "createDraft": {
          "name": "createDraft",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "CreateSocialPostDraftOptions",
              "optional": false
            }
          ],
          "returnType": "Promise<SocialPost>",
          "isStatic": false,
          "isPublic": true
        },
        "findByStatus": {
          "name": "findByStatus",
          "async": true,
          "parameters": [
            {
              "name": "status",
              "type": "PostStatus",
              "optional": false
            }
          ],
          "returnType": "Promise<SocialPost[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findForAccount": {
          "name": "findForAccount",
          "async": true,
          "parameters": [
            {
              "name": "socialAccountId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<SocialPost[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findDueForPublish": {
          "name": "findDueForPublish",
          "async": true,
          "parameters": [
            {
              "name": "now",
              "type": "Date",
              "optional": true
            }
          ],
          "returnType": "Promise<SocialPost[]>",
          "isStatic": false,
          "isPublic": true
        },
        "recordPublishSuccess": {
          "name": "recordPublishSuccess",
          "async": true,
          "parameters": [
            {
              "name": "post",
              "type": "SocialPost",
              "optional": false
            },
            {
              "name": "data",
              "type": "PublishSuccessData",
              "optional": false
            }
          ],
          "returnType": "Promise<SocialPost>",
          "isStatic": false,
          "isPublic": true
        },
        "recordPublishFailure": {
          "name": "recordPublishFailure",
          "async": true,
          "parameters": [
            {
              "name": "post",
              "type": "SocialPost",
              "optional": false
            },
            {
              "name": "error",
              "type": "Error | string",
              "optional": false
            }
          ],
          "returnType": "Promise<SocialPost>",
          "isStatic": false,
          "isPublic": true
        },
        "updateLatestAnalytics": {
          "name": "updateLatestAnalytics",
          "async": true,
          "parameters": [
            {
              "name": "post",
              "type": "SocialPost",
              "optional": false
            },
            {
              "name": "analytics",
              "type": "PostAnalytics",
              "optional": false
            },
            {
              "name": "syncedAt",
              "type": "Date",
              "optional": true
            }
          ],
          "returnType": "Promise<SocialPost>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtCollection",
      "extendsTypeArg": "SocialPost",
      "exportName": "SocialPostCollection",
      "collectionExportName": "SocialPostCollectionCollection",
      "schema": {
        "tableName": "social_post_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"social_post_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "social_post_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "social_post_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "1baa42c4"
      }
    }
  },
  "moduleType": "smrt",
  "smrtDependencies": [
    "@happyvertical/smrt-content",
    "@happyvertical/smrt-core",
    "@happyvertical/smrt-secrets",
    "@happyvertical/smrt-tenancy",
    "@happyvertical/smrt-video"
  ]
}