-- NOTE: This file is auto generated by ./sql-generator

-- SyncRepository.getCheckpoints
select
  "type",
  "ack"
from
  "session_sync_checkpoints"
where
  "sessionId" = $1

-- SyncRepository.deleteCheckpoints
delete from "session_sync_checkpoints"
where
  "sessionId" = $1

-- SyncRepository.getUserUpserts
select
  "id",
  "name",
  "email",
  "deletedAt",
  "updateId"
from
  "users"
where
  "updatedAt" < now() - interval '1 millisecond'
order by
  "updateId" asc

-- SyncRepository.getUserDeletes
select
  "id",
  "userId"
from
  "users_audit"
where
  "deletedAt" < now() - interval '1 millisecond'
order by
  "id" asc

-- SyncRepository.getPartnerUpserts
select
  "sharedById",
  "sharedWithId",
  "inTimeline",
  "updateId"
from
  "partners"
where
  (
    "sharedById" = $1
    or "sharedWithId" = $2
  )
  and "updatedAt" < now() - interval '1 millisecond'
order by
  "updateId" asc

-- SyncRepository.getPartnerDeletes
select
  "id",
  "sharedById",
  "sharedWithId"
from
  "partners_audit"
where
  (
    "sharedById" = $1
    or "sharedWithId" = $2
  )
  and "deletedAt" < now() - interval '1 millisecond'
order by
  "id" asc

-- SyncRepository.getAssetUpserts
select
  "id",
  "ownerId",
  "originalFileName",
  "thumbhash",
  "checksum",
  "fileCreatedAt",
  "fileModifiedAt",
  "localDateTime",
  "type",
  "deletedAt",
  "isFavorite",
  "visibility",
  "updateId"
from
  "assets"
where
  "ownerId" = $1
  and "updatedAt" < now() - interval '1 millisecond'
order by
  "updateId" asc

-- SyncRepository.getPartnerAssetsUpserts
select
  "id",
  "ownerId",
  "originalFileName",
  "thumbhash",
  "checksum",
  "fileCreatedAt",
  "fileModifiedAt",
  "localDateTime",
  "type",
  "deletedAt",
  "isFavorite",
  "visibility",
  "updateId"
from
  "assets"
where
  "ownerId" in (
    select
      "sharedById"
    from
      "partners"
    where
      "sharedWithId" = $1
  )
  and "updatedAt" < now() - interval '1 millisecond'
order by
  "updateId" asc

-- SyncRepository.getAssetDeletes
select
  "id",
  "assetId"
from
  "assets_audit"
where
  "ownerId" = $1
  and "deletedAt" < now() - interval '1 millisecond'
order by
  "id" asc

-- SyncRepository.getPartnerAssetDeletes
select
  "id",
  "assetId"
from
  "assets_audit"
where
  "ownerId" in (
    select
      "sharedById"
    from
      "partners"
    where
      "sharedWithId" = $1
  )
  and "deletedAt" < now() - interval '1 millisecond'
order by
  "id" asc

-- SyncRepository.getAssetExifsUpserts
select
  "exif"."assetId",
  "exif"."description",
  "exif"."exifImageWidth",
  "exif"."exifImageHeight",
  "exif"."fileSizeInByte",
  "exif"."orientation",
  "exif"."dateTimeOriginal",
  "exif"."modifyDate",
  "exif"."timeZone",
  "exif"."latitude",
  "exif"."longitude",
  "exif"."projectionType",
  "exif"."city",
  "exif"."state",
  "exif"."country",
  "exif"."make",
  "exif"."model",
  "exif"."lensModel",
  "exif"."fNumber",
  "exif"."focalLength",
  "exif"."iso",
  "exif"."exposureTime",
  "exif"."profileDescription",
  "exif"."rating",
  "exif"."fps",
  "exif"."updateId"
from
  "exif"
where
  "assetId" in (
    select
      "id"
    from
      "assets"
    where
      "ownerId" = $1
  )
  and "updatedAt" < now() - interval '1 millisecond'
order by
  "updateId" asc

-- SyncRepository.getPartnerAssetExifsUpserts
select
  "exif"."assetId",
  "exif"."description",
  "exif"."exifImageWidth",
  "exif"."exifImageHeight",
  "exif"."fileSizeInByte",
  "exif"."orientation",
  "exif"."dateTimeOriginal",
  "exif"."modifyDate",
  "exif"."timeZone",
  "exif"."latitude",
  "exif"."longitude",
  "exif"."projectionType",
  "exif"."city",
  "exif"."state",
  "exif"."country",
  "exif"."make",
  "exif"."model",
  "exif"."lensModel",
  "exif"."fNumber",
  "exif"."focalLength",
  "exif"."iso",
  "exif"."exposureTime",
  "exif"."profileDescription",
  "exif"."rating",
  "exif"."fps",
  "exif"."updateId"
from
  "exif"
where
  "assetId" in (
    select
      "id"
    from
      "assets"
    where
      "ownerId" in (
        select
          "sharedById"
        from
          "partners"
        where
          "sharedWithId" = $1
      )
  )
  and "updatedAt" < now() - interval '1 millisecond'
order by
  "updateId" asc

-- SyncRepository.getAlbumDeletes
select
  "id",
  "albumId"
from
  "albums_audit"
where
  "userId" = $1
  and "deletedAt" < now() - interval '1 millisecond'
order by
  "id" asc

-- SyncRepository.getAlbumUpserts
select distinct
  on ("albums"."id", "albums"."updateId") "albums"."id",
  "albums"."ownerId",
  "albums"."albumName" as "name",
  "albums"."description",
  "albums"."createdAt",
  "albums"."updatedAt",
  "albums"."albumThumbnailAssetId" as "thumbnailAssetId",
  "albums"."isActivityEnabled",
  "albums"."order",
  "albums"."updateId"
from
  "albums"
  left join "albums_shared_users_users" as "album_users" on "albums"."id" = "album_users"."albumsId"
where
  "albums"."updatedAt" < now() - interval '1 millisecond'
  and (
    "albums"."ownerId" = $1
    or "album_users"."usersId" = $2
  )
order by
  "albums"."updateId" asc

-- SyncRepository.getAlbumUserDeletes
select
  "id",
  "userId",
  "albumId"
from
  "album_users_audit"
where
  "albumId" in (
    select
      "id"
    from
      "albums"
    where
      "ownerId" = $1
    union
    (
      select
        "albumUsers"."albumsId" as "id"
      from
        "albums_shared_users_users" as "albumUsers"
      where
        "albumUsers"."usersId" = $2
    )
  )
  and "deletedAt" < now() - interval '1 millisecond'
order by
  "id" asc

-- SyncRepository.getAlbumUserUpserts
select
  "albums_shared_users_users"."albumsId" as "albumId",
  "albums_shared_users_users"."usersId" as "userId",
  "albums_shared_users_users"."role",
  "albums_shared_users_users"."updateId"
from
  "albums_shared_users_users"
where
  "albums_shared_users_users"."updatedAt" < now() - interval '1 millisecond'
  and "albums_shared_users_users"."albumsId" in (
    select
      "id"
    from
      "albums"
    where
      "ownerId" = $1
    union
    (
      select
        "albumUsers"."albumsId" as "id"
      from
        "albums_shared_users_users" as "albumUsers"
      where
        "albumUsers"."usersId" = $2
    )
  )
order by
  "albums_shared_users_users"."updateId" asc
