{
  "_meta": {
    "description": "This file contains a serialized version of schema entities for drift.",
    "version": "1.3.0"
  },
  "options": {
    "store_date_time_values_as_text": true
  },
  "entities": [
    {
      "id": 0,
      "references": [],
      "type": "table",
      "data": {
        "name": "user_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "name",
            "getter_name": "name",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "email",
            "getter_name": "email",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "has_profile_image",
            "getter_name": "hasProfileImage",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"has_profile_image\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"has_profile_image\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "profile_changed_at",
            "getter_name": "profileChangedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "avatar_color",
            "getter_name": "avatarColor",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AvatarColor>(AvatarColor.values)",
              "dart_type_name": "AvatarColor"
            }
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 1,
      "references": [
        0
      ],
      "type": "table",
      "data": {
        "name": "remote_asset_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "name",
            "getter_name": "name",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "type",
            "getter_name": "type",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AssetType>(AssetType.values)",
              "dart_type_name": "AssetType"
            }
          },
          {
            "name": "created_at",
            "getter_name": "createdAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "updated_at",
            "getter_name": "updatedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "width",
            "getter_name": "width",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "height",
            "getter_name": "height",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "duration_ms",
            "getter_name": "durationMs",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "checksum",
            "getter_name": "checksum",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "is_favorite",
            "getter_name": "isFavorite",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_favorite\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_favorite\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "owner_id",
            "getter_name": "ownerId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES user_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES user_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "user_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "local_date_time",
            "getter_name": "localDateTime",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "thumb_hash",
            "getter_name": "thumbHash",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "deleted_at",
            "getter_name": "deletedAt",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "live_photo_video_id",
            "getter_name": "livePhotoVideoId",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "visibility",
            "getter_name": "visibility",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AssetVisibility>(AssetVisibility.values)",
              "dart_type_name": "AssetVisibility"
            }
          },
          {
            "name": "stack_id",
            "getter_name": "stackId",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "library_id",
            "getter_name": "libraryId",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "is_edited",
            "getter_name": "isEdited",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_edited\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_edited\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 2,
      "references": [
        0
      ],
      "type": "table",
      "data": {
        "name": "stack_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "created_at",
            "getter_name": "createdAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "updated_at",
            "getter_name": "updatedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "owner_id",
            "getter_name": "ownerId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES user_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES user_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "user_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "primary_asset_id",
            "getter_name": "primaryAssetId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 3,
      "references": [],
      "type": "table",
      "data": {
        "name": "local_asset_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "name",
            "getter_name": "name",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "type",
            "getter_name": "type",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AssetType>(AssetType.values)",
              "dart_type_name": "AssetType"
            }
          },
          {
            "name": "created_at",
            "getter_name": "createdAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "updated_at",
            "getter_name": "updatedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "width",
            "getter_name": "width",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "height",
            "getter_name": "height",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "duration_ms",
            "getter_name": "durationMs",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "checksum",
            "getter_name": "checksum",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "is_favorite",
            "getter_name": "isFavorite",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_favorite\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_favorite\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "orientation",
            "getter_name": "orientation",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "i_cloud_id",
            "getter_name": "iCloudId",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "adjustment_time",
            "getter_name": "adjustmentTime",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "latitude",
            "getter_name": "latitude",
            "moor_type": "double",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "longitude",
            "getter_name": "longitude",
            "moor_type": "double",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "playback_style",
            "getter_name": "playbackStyle",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AssetPlaybackStyle>(AssetPlaybackStyle.values)",
              "dart_type_name": "AssetPlaybackStyle"
            }
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 4,
      "references": [
        1
      ],
      "type": "table",
      "data": {
        "name": "remote_album_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "name",
            "getter_name": "name",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "description",
            "getter_name": "description",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('\\'\\'')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "created_at",
            "getter_name": "createdAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "updated_at",
            "getter_name": "updatedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "thumbnail_asset_id",
            "getter_name": "thumbnailAssetId",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_asset_entity (id) ON DELETE SET NULL",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_asset_entity (id) ON DELETE SET NULL"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_asset_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "setNull"
                }
              }
            ]
          },
          {
            "name": "is_activity_enabled",
            "getter_name": "isActivityEnabled",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_activity_enabled\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_activity_enabled\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('1')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "order",
            "getter_name": "order",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AlbumAssetOrder>(AlbumAssetOrder.values)",
              "dart_type_name": "AlbumAssetOrder"
            }
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 5,
      "references": [
        4
      ],
      "type": "table",
      "data": {
        "name": "local_album_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "name",
            "getter_name": "name",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "updated_at",
            "getter_name": "updatedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "backup_selection",
            "getter_name": "backupSelection",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<BackupSelection>(BackupSelection.values)",
              "dart_type_name": "BackupSelection"
            }
          },
          {
            "name": "is_ios_shared_album",
            "getter_name": "isIosSharedAlbum",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_ios_shared_album\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_ios_shared_album\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "linked_remote_album_id",
            "getter_name": "linkedRemoteAlbumId",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_album_entity (id) ON DELETE SET NULL",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_album_entity (id) ON DELETE SET NULL"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_album_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "setNull"
                }
              }
            ]
          },
          {
            "name": "marker",
            "getter_name": "marker_",
            "moor_type": "bool",
            "nullable": true,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"marker\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"marker\" IN (0, 1))"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 6,
      "references": [
        3,
        5
      ],
      "type": "table",
      "data": {
        "name": "local_album_asset_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "asset_id",
            "getter_name": "assetId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES local_asset_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES local_asset_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "local_asset_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "album_id",
            "getter_name": "albumId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES local_album_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES local_album_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "local_album_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "marker",
            "getter_name": "marker_",
            "moor_type": "bool",
            "nullable": true,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"marker\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"marker\" IN (0, 1))"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "asset_id",
          "album_id"
        ]
      }
    },
    {
      "id": 7,
      "references": [
        6
      ],
      "type": "index",
      "data": {
        "on": 6,
        "name": "idx_local_album_asset_album_asset",
        "sql": "CREATE INDEX IF NOT EXISTS idx_local_album_asset_album_asset ON local_album_asset_entity (album_id, asset_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 8,
      "references": [
        3
      ],
      "type": "index",
      "data": {
        "on": 3,
        "name": "idx_local_asset_checksum",
        "sql": "CREATE INDEX IF NOT EXISTS idx_local_asset_checksum ON local_asset_entity (checksum)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 9,
      "references": [
        3
      ],
      "type": "index",
      "data": {
        "on": 3,
        "name": "idx_local_asset_cloud_id",
        "sql": "CREATE INDEX IF NOT EXISTS idx_local_asset_cloud_id ON local_asset_entity (i_cloud_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 10,
      "references": [
        2
      ],
      "type": "index",
      "data": {
        "on": 2,
        "name": "idx_stack_primary_asset_id",
        "sql": "CREATE INDEX IF NOT EXISTS idx_stack_primary_asset_id ON stack_entity (primary_asset_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 11,
      "references": [
        1
      ],
      "type": "index",
      "data": {
        "on": 1,
        "name": "UQ_remote_assets_owner_checksum",
        "sql": "CREATE UNIQUE INDEX IF NOT EXISTS UQ_remote_assets_owner_checksum\nON remote_asset_entity (owner_id, checksum)\nWHERE (library_id IS NULL);\n",
        "unique": true,
        "columns": []
      }
    },
    {
      "id": 12,
      "references": [
        1
      ],
      "type": "index",
      "data": {
        "on": 1,
        "name": "UQ_remote_assets_owner_library_checksum",
        "sql": "CREATE UNIQUE INDEX IF NOT EXISTS UQ_remote_assets_owner_library_checksum\nON remote_asset_entity (owner_id, library_id, checksum)\nWHERE (library_id IS NOT NULL);\n",
        "unique": true,
        "columns": []
      }
    },
    {
      "id": 13,
      "references": [
        1
      ],
      "type": "index",
      "data": {
        "on": 1,
        "name": "idx_remote_asset_checksum",
        "sql": "CREATE INDEX IF NOT EXISTS idx_remote_asset_checksum ON remote_asset_entity (checksum)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 14,
      "references": [
        1
      ],
      "type": "index",
      "data": {
        "on": 1,
        "name": "idx_remote_asset_stack_id",
        "sql": "CREATE INDEX IF NOT EXISTS idx_remote_asset_stack_id ON remote_asset_entity (stack_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 15,
      "references": [
        1
      ],
      "type": "index",
      "data": {
        "on": 1,
        "name": "idx_remote_asset_owner_visibility_deleted_created",
        "sql": "CREATE INDEX IF NOT EXISTS idx_remote_asset_owner_visibility_deleted_created\nON remote_asset_entity (owner_id, visibility, deleted_at, created_at DESC)\n",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 16,
      "references": [],
      "type": "table",
      "data": {
        "name": "auth_user_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "name",
            "getter_name": "name",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "email",
            "getter_name": "email",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "is_admin",
            "getter_name": "isAdmin",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_admin\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_admin\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "has_profile_image",
            "getter_name": "hasProfileImage",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"has_profile_image\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"has_profile_image\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "profile_changed_at",
            "getter_name": "profileChangedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "avatar_color",
            "getter_name": "avatarColor",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AvatarColor>(AvatarColor.values)",
              "dart_type_name": "AvatarColor"
            }
          },
          {
            "name": "quota_size_in_bytes",
            "getter_name": "quotaSizeInBytes",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "quota_usage_in_bytes",
            "getter_name": "quotaUsageInBytes",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "pin_code",
            "getter_name": "pinCode",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 17,
      "references": [
        0
      ],
      "type": "table",
      "data": {
        "name": "user_metadata_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "user_id",
            "getter_name": "userId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES user_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES user_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "user_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "key",
            "getter_name": "key",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<UserMetadataKey>(UserMetadataKey.values)",
              "dart_type_name": "UserMetadataKey"
            }
          },
          {
            "name": "value",
            "getter_name": "value",
            "moor_type": "blob",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "userMetadataConverter",
              "dart_type_name": "Map<String, Object?>"
            }
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "user_id",
          "key"
        ]
      }
    },
    {
      "id": 18,
      "references": [
        0
      ],
      "type": "table",
      "data": {
        "name": "partner_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "shared_by_id",
            "getter_name": "sharedById",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES user_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES user_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "user_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "shared_with_id",
            "getter_name": "sharedWithId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES user_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES user_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "user_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "in_timeline",
            "getter_name": "inTimeline",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"in_timeline\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"in_timeline\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "shared_by_id",
          "shared_with_id"
        ]
      }
    },
    {
      "id": 19,
      "references": [
        1
      ],
      "type": "table",
      "data": {
        "name": "remote_exif_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "asset_id",
            "getter_name": "assetId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_asset_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "city",
            "getter_name": "city",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "state",
            "getter_name": "state",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "country",
            "getter_name": "country",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "date_time_original",
            "getter_name": "dateTimeOriginal",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "description",
            "getter_name": "description",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "height",
            "getter_name": "height",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "width",
            "getter_name": "width",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "exposure_time",
            "getter_name": "exposureTime",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "f_number",
            "getter_name": "fNumber",
            "moor_type": "double",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "file_size",
            "getter_name": "fileSize",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "focal_length",
            "getter_name": "focalLength",
            "moor_type": "double",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "latitude",
            "getter_name": "latitude",
            "moor_type": "double",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "longitude",
            "getter_name": "longitude",
            "moor_type": "double",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "iso",
            "getter_name": "iso",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "make",
            "getter_name": "make",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "model",
            "getter_name": "model",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "lens",
            "getter_name": "lens",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "orientation",
            "getter_name": "orientation",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "time_zone",
            "getter_name": "timeZone",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "rating",
            "getter_name": "rating",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "projection_type",
            "getter_name": "projectionType",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "asset_id"
        ]
      }
    },
    {
      "id": 20,
      "references": [
        1,
        4
      ],
      "type": "table",
      "data": {
        "name": "remote_album_asset_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "asset_id",
            "getter_name": "assetId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_asset_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "album_id",
            "getter_name": "albumId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_album_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_album_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_album_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "asset_id",
          "album_id"
        ]
      }
    },
    {
      "id": 21,
      "references": [
        4,
        0
      ],
      "type": "table",
      "data": {
        "name": "remote_album_user_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "album_id",
            "getter_name": "albumId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_album_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_album_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_album_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "user_id",
            "getter_name": "userId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES user_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES user_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "user_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "role",
            "getter_name": "role",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AlbumUserRole>(AlbumUserRole.values)",
              "dart_type_name": "AlbumUserRole"
            }
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "album_id",
          "user_id"
        ]
      }
    },
    {
      "id": 22,
      "references": [
        1
      ],
      "type": "table",
      "data": {
        "name": "remote_asset_cloud_id_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "asset_id",
            "getter_name": "assetId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_asset_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "cloud_id",
            "getter_name": "cloudId",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "created_at",
            "getter_name": "createdAt",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "adjustment_time",
            "getter_name": "adjustmentTime",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "latitude",
            "getter_name": "latitude",
            "moor_type": "double",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "longitude",
            "getter_name": "longitude",
            "moor_type": "double",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "asset_id"
        ]
      }
    },
    {
      "id": 23,
      "references": [
        0
      ],
      "type": "table",
      "data": {
        "name": "memory_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "created_at",
            "getter_name": "createdAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "updated_at",
            "getter_name": "updatedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "deleted_at",
            "getter_name": "deletedAt",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "owner_id",
            "getter_name": "ownerId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES user_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES user_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "user_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "type",
            "getter_name": "type",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<MemoryTypeEnum>(MemoryTypeEnum.values)",
              "dart_type_name": "MemoryTypeEnum"
            }
          },
          {
            "name": "data",
            "getter_name": "data",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "is_saved",
            "getter_name": "isSaved",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_saved\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_saved\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "memory_at",
            "getter_name": "memoryAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "seen_at",
            "getter_name": "seenAt",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "show_at",
            "getter_name": "showAt",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "hide_at",
            "getter_name": "hideAt",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 24,
      "references": [
        1,
        23
      ],
      "type": "table",
      "data": {
        "name": "memory_asset_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "asset_id",
            "getter_name": "assetId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_asset_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "memory_id",
            "getter_name": "memoryId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES memory_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES memory_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "memory_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "asset_id",
          "memory_id"
        ]
      }
    },
    {
      "id": 25,
      "references": [
        0
      ],
      "type": "table",
      "data": {
        "name": "person_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "created_at",
            "getter_name": "createdAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "updated_at",
            "getter_name": "updatedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "owner_id",
            "getter_name": "ownerId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES user_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES user_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "user_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "name",
            "getter_name": "name",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "face_asset_id",
            "getter_name": "faceAssetId",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "is_favorite",
            "getter_name": "isFavorite",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_favorite\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_favorite\" IN (0, 1))"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "is_hidden",
            "getter_name": "isHidden",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_hidden\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_hidden\" IN (0, 1))"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "color",
            "getter_name": "color",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "birth_date",
            "getter_name": "birthDate",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 26,
      "references": [
        1,
        25
      ],
      "type": "table",
      "data": {
        "name": "asset_face_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "asset_id",
            "getter_name": "assetId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_asset_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "person_id",
            "getter_name": "personId",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES person_entity (id) ON DELETE SET NULL",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES person_entity (id) ON DELETE SET NULL"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "person_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "setNull"
                }
              }
            ]
          },
          {
            "name": "image_width",
            "getter_name": "imageWidth",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "image_height",
            "getter_name": "imageHeight",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "bounding_box_x1",
            "getter_name": "boundingBoxX1",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "bounding_box_y1",
            "getter_name": "boundingBoxY1",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "bounding_box_x2",
            "getter_name": "boundingBoxX2",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "bounding_box_y2",
            "getter_name": "boundingBoxY2",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "source_type",
            "getter_name": "sourceType",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "is_visible",
            "getter_name": "isVisible",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_visible\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_visible\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('1')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "deleted_at",
            "getter_name": "deletedAt",
            "moor_type": "dateTime",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 27,
      "references": [],
      "type": "table",
      "data": {
        "name": "store_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "string_value",
            "getter_name": "stringValue",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "int_value",
            "getter_name": "intValue",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 28,
      "references": [],
      "type": "table",
      "data": {
        "name": "trashed_local_asset_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "name",
            "getter_name": "name",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "type",
            "getter_name": "type",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AssetType>(AssetType.values)",
              "dart_type_name": "AssetType"
            }
          },
          {
            "name": "created_at",
            "getter_name": "createdAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "updated_at",
            "getter_name": "updatedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "width",
            "getter_name": "width",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "height",
            "getter_name": "height",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "duration_ms",
            "getter_name": "durationMs",
            "moor_type": "int",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "album_id",
            "getter_name": "albumId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "checksum",
            "getter_name": "checksum",
            "moor_type": "string",
            "nullable": true,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "is_favorite",
            "getter_name": "isFavorite",
            "moor_type": "bool",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "CHECK (\"is_favorite\" IN (0, 1))",
            "dialectAwareDefaultConstraints": {
              "sqlite": "CHECK (\"is_favorite\" IN (0, 1))"
            },
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "orientation",
            "getter_name": "orientation",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "source",
            "getter_name": "source",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<TrashOrigin>(TrashOrigin.values)",
              "dart_type_name": "TrashOrigin"
            }
          },
          {
            "name": "playback_style",
            "getter_name": "playbackStyle",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('0')",
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AssetPlaybackStyle>(AssetPlaybackStyle.values)",
              "dart_type_name": "AssetPlaybackStyle"
            }
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id",
          "album_id"
        ]
      }
    },
    {
      "id": 29,
      "references": [
        1
      ],
      "type": "table",
      "data": {
        "name": "asset_edit_entity",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "id",
            "getter_name": "id",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "asset_id",
            "getter_name": "assetId",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "defaultConstraints": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE",
            "dialectAwareDefaultConstraints": {
              "sqlite": "REFERENCES remote_asset_entity (id) ON DELETE CASCADE"
            },
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [
              {
                "foreign_key": {
                  "to": {
                    "table": "remote_asset_entity",
                    "column": "id"
                  },
                  "initially_deferred": false,
                  "on_update": null,
                  "on_delete": "cascade"
                }
              }
            ]
          },
          {
            "name": "action",
            "getter_name": "action",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "const EnumIndexConverter<AssetEditAction>(AssetEditAction.values)",
              "dart_type_name": "AssetEditAction"
            }
          },
          {
            "name": "parameters",
            "getter_name": "parameters",
            "moor_type": "blob",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": [],
            "type_converter": {
              "dart_expr": "editParameterConverter",
              "dart_type_name": "Map<String, Object?>"
            }
          },
          {
            "name": "sequence",
            "getter_name": "sequence",
            "moor_type": "int",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "id"
        ]
      }
    },
    {
      "id": 30,
      "references": [],
      "type": "table",
      "data": {
        "name": "metadata",
        "was_declared_in_moor": false,
        "columns": [
          {
            "name": "key",
            "getter_name": "key",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "value",
            "getter_name": "value",
            "moor_type": "string",
            "nullable": false,
            "customConstraints": null,
            "default_dart": null,
            "default_client_dart": null,
            "dsl_features": []
          },
          {
            "name": "updated_at",
            "getter_name": "updatedAt",
            "moor_type": "dateTime",
            "nullable": false,
            "customConstraints": null,
            "default_dart": "const CustomExpression('CURRENT_TIMESTAMP')",
            "default_client_dart": null,
            "dsl_features": []
          }
        ],
        "is_virtual": false,
        "without_rowid": true,
        "constraints": [],
        "strict": true,
        "explicit_pk": [
          "key"
        ]
      }
    },
    {
      "id": 31,
      "references": [
        18
      ],
      "type": "index",
      "data": {
        "on": 18,
        "name": "idx_partner_shared_with_id",
        "sql": "CREATE INDEX IF NOT EXISTS idx_partner_shared_with_id ON partner_entity (shared_with_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 32,
      "references": [
        19
      ],
      "type": "index",
      "data": {
        "on": 19,
        "name": "idx_lat_lng",
        "sql": "CREATE INDEX IF NOT EXISTS idx_lat_lng ON remote_exif_entity (latitude, longitude)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 33,
      "references": [
        19
      ],
      "type": "index",
      "data": {
        "on": 19,
        "name": "idx_remote_exif_city",
        "sql": "CREATE INDEX IF NOT EXISTS idx_remote_exif_city\nON remote_exif_entity (city) WHERE city IS NOT NULL\n",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 34,
      "references": [
        20
      ],
      "type": "index",
      "data": {
        "on": 20,
        "name": "idx_remote_album_asset_album_asset",
        "sql": "CREATE INDEX IF NOT EXISTS idx_remote_album_asset_album_asset ON remote_album_asset_entity (album_id, asset_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 35,
      "references": [
        22
      ],
      "type": "index",
      "data": {
        "on": 22,
        "name": "idx_remote_asset_cloud_id",
        "sql": "CREATE INDEX IF NOT EXISTS idx_remote_asset_cloud_id ON remote_asset_cloud_id_entity (cloud_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 36,
      "references": [
        25
      ],
      "type": "index",
      "data": {
        "on": 25,
        "name": "idx_person_owner_id",
        "sql": "CREATE INDEX IF NOT EXISTS idx_person_owner_id ON person_entity (owner_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 37,
      "references": [
        26
      ],
      "type": "index",
      "data": {
        "on": 26,
        "name": "idx_asset_face_person_id",
        "sql": "CREATE INDEX IF NOT EXISTS idx_asset_face_person_id ON asset_face_entity (person_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 38,
      "references": [
        26
      ],
      "type": "index",
      "data": {
        "on": 26,
        "name": "idx_asset_face_asset_id",
        "sql": "CREATE INDEX IF NOT EXISTS idx_asset_face_asset_id ON asset_face_entity (asset_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 39,
      "references": [
        26
      ],
      "type": "index",
      "data": {
        "on": 26,
        "name": "idx_asset_face_visible_person",
        "sql": "CREATE INDEX IF NOT EXISTS idx_asset_face_visible_person\nON asset_face_entity (person_id, asset_id)\nWHERE is_visible = 1 AND deleted_at IS NULL\n",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 40,
      "references": [
        28
      ],
      "type": "index",
      "data": {
        "on": 28,
        "name": "idx_trashed_local_asset_checksum",
        "sql": "CREATE INDEX IF NOT EXISTS idx_trashed_local_asset_checksum ON trashed_local_asset_entity (checksum)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 41,
      "references": [
        28
      ],
      "type": "index",
      "data": {
        "on": 28,
        "name": "idx_trashed_local_asset_album",
        "sql": "CREATE INDEX IF NOT EXISTS idx_trashed_local_asset_album ON trashed_local_asset_entity (album_id)",
        "unique": false,
        "columns": []
      }
    },
    {
      "id": 42,
      "references": [
        29
      ],
      "type": "index",
      "data": {
        "on": 29,
        "name": "idx_asset_edit_asset_id",
        "sql": "CREATE INDEX IF NOT EXISTS idx_asset_edit_asset_id ON asset_edit_entity (asset_id)",
        "unique": false,
        "columns": []
      }
    }
  ],
  "fixed_sql": [
    {
      "name": "user_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"user_entity\" (\"id\" TEXT NOT NULL, \"name\" TEXT NOT NULL, \"email\" TEXT NOT NULL, \"has_profile_image\" INTEGER NOT NULL DEFAULT 0 CHECK (\"has_profile_image\" IN (0, 1)), \"profile_changed_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"avatar_color\" INTEGER NOT NULL DEFAULT 0, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "remote_asset_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"remote_asset_entity\" (\"name\" TEXT NOT NULL, \"type\" INTEGER NOT NULL, \"created_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"updated_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"width\" INTEGER NULL, \"height\" INTEGER NULL, \"duration_ms\" INTEGER NULL, \"id\" TEXT NOT NULL, \"checksum\" TEXT NOT NULL, \"is_favorite\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_favorite\" IN (0, 1)), \"owner_id\" TEXT NOT NULL REFERENCES user_entity (id) ON DELETE CASCADE, \"local_date_time\" TEXT NULL, \"thumb_hash\" TEXT NULL, \"deleted_at\" TEXT NULL, \"live_photo_video_id\" TEXT NULL, \"visibility\" INTEGER NOT NULL, \"stack_id\" TEXT NULL, \"library_id\" TEXT NULL, \"is_edited\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_edited\" IN (0, 1)), PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "stack_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"stack_entity\" (\"id\" TEXT NOT NULL, \"created_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"updated_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"owner_id\" TEXT NOT NULL REFERENCES user_entity (id) ON DELETE CASCADE, \"primary_asset_id\" TEXT NOT NULL, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "local_asset_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"local_asset_entity\" (\"name\" TEXT NOT NULL, \"type\" INTEGER NOT NULL, \"created_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"updated_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"width\" INTEGER NULL, \"height\" INTEGER NULL, \"duration_ms\" INTEGER NULL, \"id\" TEXT NOT NULL, \"checksum\" TEXT NULL, \"is_favorite\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_favorite\" IN (0, 1)), \"orientation\" INTEGER NOT NULL DEFAULT 0, \"i_cloud_id\" TEXT NULL, \"adjustment_time\" TEXT NULL, \"latitude\" REAL NULL, \"longitude\" REAL NULL, \"playback_style\" INTEGER NOT NULL DEFAULT 0, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "remote_album_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"remote_album_entity\" (\"id\" TEXT NOT NULL, \"name\" TEXT NOT NULL, \"description\" TEXT NOT NULL DEFAULT '', \"created_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"updated_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"thumbnail_asset_id\" TEXT NULL REFERENCES remote_asset_entity (id) ON DELETE SET NULL, \"is_activity_enabled\" INTEGER NOT NULL DEFAULT 1 CHECK (\"is_activity_enabled\" IN (0, 1)), \"order\" INTEGER NOT NULL, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "local_album_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"local_album_entity\" (\"id\" TEXT NOT NULL, \"name\" TEXT NOT NULL, \"updated_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"backup_selection\" INTEGER NOT NULL, \"is_ios_shared_album\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_ios_shared_album\" IN (0, 1)), \"linked_remote_album_id\" TEXT NULL REFERENCES remote_album_entity (id) ON DELETE SET NULL, \"marker\" INTEGER NULL CHECK (\"marker\" IN (0, 1)), PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "local_album_asset_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"local_album_asset_entity\" (\"asset_id\" TEXT NOT NULL REFERENCES local_asset_entity (id) ON DELETE CASCADE, \"album_id\" TEXT NOT NULL REFERENCES local_album_entity (id) ON DELETE CASCADE, \"marker\" INTEGER NULL CHECK (\"marker\" IN (0, 1)), PRIMARY KEY (\"asset_id\", \"album_id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "idx_local_album_asset_album_asset",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_local_album_asset_album_asset ON local_album_asset_entity (album_id, asset_id)"
        }
      ]
    },
    {
      "name": "idx_local_asset_checksum",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_local_asset_checksum ON local_asset_entity (checksum)"
        }
      ]
    },
    {
      "name": "idx_local_asset_cloud_id",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_local_asset_cloud_id ON local_asset_entity (i_cloud_id)"
        }
      ]
    },
    {
      "name": "idx_stack_primary_asset_id",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_stack_primary_asset_id ON stack_entity (primary_asset_id)"
        }
      ]
    },
    {
      "name": "UQ_remote_assets_owner_checksum",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE UNIQUE INDEX IF NOT EXISTS UQ_remote_assets_owner_checksum ON remote_asset_entity (owner_id, checksum) WHERE(library_id IS NULL)"
        }
      ]
    },
    {
      "name": "UQ_remote_assets_owner_library_checksum",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE UNIQUE INDEX IF NOT EXISTS UQ_remote_assets_owner_library_checksum ON remote_asset_entity (owner_id, library_id, checksum) WHERE(library_id IS NOT NULL)"
        }
      ]
    },
    {
      "name": "idx_remote_asset_checksum",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_remote_asset_checksum ON remote_asset_entity (checksum)"
        }
      ]
    },
    {
      "name": "idx_remote_asset_stack_id",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_remote_asset_stack_id ON remote_asset_entity (stack_id)"
        }
      ]
    },
    {
      "name": "idx_remote_asset_owner_visibility_deleted_created",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_remote_asset_owner_visibility_deleted_created ON remote_asset_entity (owner_id, visibility, deleted_at, created_at DESC)"
        }
      ]
    },
    {
      "name": "auth_user_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"auth_user_entity\" (\"id\" TEXT NOT NULL, \"name\" TEXT NOT NULL, \"email\" TEXT NOT NULL, \"is_admin\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_admin\" IN (0, 1)), \"has_profile_image\" INTEGER NOT NULL DEFAULT 0 CHECK (\"has_profile_image\" IN (0, 1)), \"profile_changed_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"avatar_color\" INTEGER NOT NULL, \"quota_size_in_bytes\" INTEGER NOT NULL DEFAULT 0, \"quota_usage_in_bytes\" INTEGER NOT NULL DEFAULT 0, \"pin_code\" TEXT NULL, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "user_metadata_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"user_metadata_entity\" (\"user_id\" TEXT NOT NULL REFERENCES user_entity (id) ON DELETE CASCADE, \"key\" INTEGER NOT NULL, \"value\" BLOB NOT NULL, PRIMARY KEY (\"user_id\", \"key\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "partner_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"partner_entity\" (\"shared_by_id\" TEXT NOT NULL REFERENCES user_entity (id) ON DELETE CASCADE, \"shared_with_id\" TEXT NOT NULL REFERENCES user_entity (id) ON DELETE CASCADE, \"in_timeline\" INTEGER NOT NULL DEFAULT 0 CHECK (\"in_timeline\" IN (0, 1)), PRIMARY KEY (\"shared_by_id\", \"shared_with_id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "remote_exif_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"remote_exif_entity\" (\"asset_id\" TEXT NOT NULL REFERENCES remote_asset_entity (id) ON DELETE CASCADE, \"city\" TEXT NULL, \"state\" TEXT NULL, \"country\" TEXT NULL, \"date_time_original\" TEXT NULL, \"description\" TEXT NULL, \"height\" INTEGER NULL, \"width\" INTEGER NULL, \"exposure_time\" TEXT NULL, \"f_number\" REAL NULL, \"file_size\" INTEGER NULL, \"focal_length\" REAL NULL, \"latitude\" REAL NULL, \"longitude\" REAL NULL, \"iso\" INTEGER NULL, \"make\" TEXT NULL, \"model\" TEXT NULL, \"lens\" TEXT NULL, \"orientation\" TEXT NULL, \"time_zone\" TEXT NULL, \"rating\" INTEGER NULL, \"projection_type\" TEXT NULL, PRIMARY KEY (\"asset_id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "remote_album_asset_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"remote_album_asset_entity\" (\"asset_id\" TEXT NOT NULL REFERENCES remote_asset_entity (id) ON DELETE CASCADE, \"album_id\" TEXT NOT NULL REFERENCES remote_album_entity (id) ON DELETE CASCADE, PRIMARY KEY (\"asset_id\", \"album_id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "remote_album_user_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"remote_album_user_entity\" (\"album_id\" TEXT NOT NULL REFERENCES remote_album_entity (id) ON DELETE CASCADE, \"user_id\" TEXT NOT NULL REFERENCES user_entity (id) ON DELETE CASCADE, \"role\" INTEGER NOT NULL, PRIMARY KEY (\"album_id\", \"user_id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "remote_asset_cloud_id_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"remote_asset_cloud_id_entity\" (\"asset_id\" TEXT NOT NULL REFERENCES remote_asset_entity (id) ON DELETE CASCADE, \"cloud_id\" TEXT NULL, \"created_at\" TEXT NULL, \"adjustment_time\" TEXT NULL, \"latitude\" REAL NULL, \"longitude\" REAL NULL, PRIMARY KEY (\"asset_id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "memory_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"memory_entity\" (\"id\" TEXT NOT NULL, \"created_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"updated_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"deleted_at\" TEXT NULL, \"owner_id\" TEXT NOT NULL REFERENCES user_entity (id) ON DELETE CASCADE, \"type\" INTEGER NOT NULL, \"data\" TEXT NOT NULL, \"is_saved\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_saved\" IN (0, 1)), \"memory_at\" TEXT NOT NULL, \"seen_at\" TEXT NULL, \"show_at\" TEXT NULL, \"hide_at\" TEXT NULL, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "memory_asset_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"memory_asset_entity\" (\"asset_id\" TEXT NOT NULL REFERENCES remote_asset_entity (id) ON DELETE CASCADE, \"memory_id\" TEXT NOT NULL REFERENCES memory_entity (id) ON DELETE CASCADE, PRIMARY KEY (\"asset_id\", \"memory_id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "person_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"person_entity\" (\"id\" TEXT NOT NULL, \"created_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"updated_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"owner_id\" TEXT NOT NULL REFERENCES user_entity (id) ON DELETE CASCADE, \"name\" TEXT NOT NULL, \"face_asset_id\" TEXT NULL, \"is_favorite\" INTEGER NOT NULL CHECK (\"is_favorite\" IN (0, 1)), \"is_hidden\" INTEGER NOT NULL CHECK (\"is_hidden\" IN (0, 1)), \"color\" TEXT NULL, \"birth_date\" TEXT NULL, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "asset_face_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"asset_face_entity\" (\"id\" TEXT NOT NULL, \"asset_id\" TEXT NOT NULL REFERENCES remote_asset_entity (id) ON DELETE CASCADE, \"person_id\" TEXT NULL REFERENCES person_entity (id) ON DELETE SET NULL, \"image_width\" INTEGER NOT NULL, \"image_height\" INTEGER NOT NULL, \"bounding_box_x1\" INTEGER NOT NULL, \"bounding_box_y1\" INTEGER NOT NULL, \"bounding_box_x2\" INTEGER NOT NULL, \"bounding_box_y2\" INTEGER NOT NULL, \"source_type\" TEXT NOT NULL, \"is_visible\" INTEGER NOT NULL DEFAULT 1 CHECK (\"is_visible\" IN (0, 1)), \"deleted_at\" TEXT NULL, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "store_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"store_entity\" (\"id\" INTEGER NOT NULL, \"string_value\" TEXT NULL, \"int_value\" INTEGER NULL, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "trashed_local_asset_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"trashed_local_asset_entity\" (\"name\" TEXT NOT NULL, \"type\" INTEGER NOT NULL, \"created_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"updated_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), \"width\" INTEGER NULL, \"height\" INTEGER NULL, \"duration_ms\" INTEGER NULL, \"id\" TEXT NOT NULL, \"album_id\" TEXT NOT NULL, \"checksum\" TEXT NULL, \"is_favorite\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_favorite\" IN (0, 1)), \"orientation\" INTEGER NOT NULL DEFAULT 0, \"source\" INTEGER NOT NULL, \"playback_style\" INTEGER NOT NULL DEFAULT 0, PRIMARY KEY (\"id\", \"album_id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "asset_edit_entity",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"asset_edit_entity\" (\"id\" TEXT NOT NULL, \"asset_id\" TEXT NOT NULL REFERENCES remote_asset_entity (id) ON DELETE CASCADE, \"action\" INTEGER NOT NULL, \"parameters\" BLOB NOT NULL, \"sequence\" INTEGER NOT NULL, PRIMARY KEY (\"id\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "metadata",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE TABLE IF NOT EXISTS \"metadata\" (\"key\" TEXT NOT NULL, \"value\" TEXT NOT NULL, \"updated_at\" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP), PRIMARY KEY (\"key\")) WITHOUT ROWID, STRICT;"
        }
      ]
    },
    {
      "name": "idx_partner_shared_with_id",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_partner_shared_with_id ON partner_entity (shared_with_id)"
        }
      ]
    },
    {
      "name": "idx_lat_lng",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_lat_lng ON remote_exif_entity (latitude, longitude)"
        }
      ]
    },
    {
      "name": "idx_remote_exif_city",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_remote_exif_city ON remote_exif_entity (city) WHERE city IS NOT NULL"
        }
      ]
    },
    {
      "name": "idx_remote_album_asset_album_asset",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_remote_album_asset_album_asset ON remote_album_asset_entity (album_id, asset_id)"
        }
      ]
    },
    {
      "name": "idx_remote_asset_cloud_id",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_remote_asset_cloud_id ON remote_asset_cloud_id_entity (cloud_id)"
        }
      ]
    },
    {
      "name": "idx_person_owner_id",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_person_owner_id ON person_entity (owner_id)"
        }
      ]
    },
    {
      "name": "idx_asset_face_person_id",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_asset_face_person_id ON asset_face_entity (person_id)"
        }
      ]
    },
    {
      "name": "idx_asset_face_asset_id",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_asset_face_asset_id ON asset_face_entity (asset_id)"
        }
      ]
    },
    {
      "name": "idx_asset_face_visible_person",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_asset_face_visible_person ON asset_face_entity (person_id, asset_id) WHERE is_visible = 1 AND deleted_at IS NULL"
        }
      ]
    },
    {
      "name": "idx_trashed_local_asset_checksum",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_trashed_local_asset_checksum ON trashed_local_asset_entity (checksum)"
        }
      ]
    },
    {
      "name": "idx_trashed_local_asset_album",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_trashed_local_asset_album ON trashed_local_asset_entity (album_id)"
        }
      ]
    },
    {
      "name": "idx_asset_edit_asset_id",
      "sql": [
        {
          "dialect": "sqlite",
          "sql": "CREATE INDEX IF NOT EXISTS idx_asset_edit_asset_id ON asset_edit_entity (asset_id)"
        }
      ]
    }
  ]
}