-- 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",
  "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",
  "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
