diff --git a/Photos-version-5-database.md b/Photos-version-5-database.md index 243a6b0..9cc575d 100644 --- a/Photos-version-5-database.md +++ b/Photos-version-5-database.md @@ -68,6 +68,45 @@ Appears to contain additional information on every resource (e.g. original, edit - `ZREMOTEAVAILABILITY`: resource is available in cloud library - `ZASSET`: foreign key to `ZADDITIONALASSETATTRIBUTES.ZASSET` +## Shared Photos + +### Comments and Likes +Photos in shared albums can contain comments or "likes" from all the users who have been invited to view the shared album. + +These are stored in `ZCLOUDSHAREDCOMMENT` and can be associated with a Photo UUID using the following query: + +```sql +SELECT +ZGENERICASSET.ZUUID, --0: UUID of the photo +ZCLOUDSHAREDCOMMENT.ZISLIKE, --1: comment is actually a "like" +ZCLOUDSHAREDCOMMENT.Z_FOK_COMMENTEDASSET, --2: sort order for comments on a photo +ZCLOUDSHAREDCOMMENT.ZCOMMENTDATE, --3: date of comment +ZCLOUDSHAREDCOMMENT.ZCOMMENTTEXT, --4: text of comment +ZCLOUDSHAREDCOMMENT.ZCOMMENTERHASHEDPERSONID, --5: hashed ID of person who made comment/like +ZCLOUDSHAREDCOMMENT.ZISMYCOMMENT --6: is my (this user's) comment +FROM ZCLOUDSHAREDCOMMENT +JOIN ZGENERICASSET ON +ZGENERICASSET.Z_PK = ZCLOUDSHAREDCOMMENT.ZCOMMENTEDASSET +OR +ZGENERICASSET.Z_PK = ZCLOUDSHAREDCOMMENT.ZLIKEDASSET +WHERE ZGENERICASSET.ZUUID = ? +``` + +To get the name of the person who made the comment, use `ZCLOUDSHAREDCOMMENT.ZCOMMENTERHASHEDPERSONID` to find the person's details in `ZCLOUDSHAREDALBUMINVITATIONRECORD`: + +```sql +SELECT +ZINVITEEHASHEDPERSONID, +ZINVITEEFIRSTNAME, +ZINVITEELASTNAME, +ZINVITEEFULLNAME +FROM +ZCLOUDSHAREDALBUMINVITATIONRECORD +WHERE +ZINVITEEHASHEDPERSONID = ? +LIMIT 1 +``` + **TODO** Document the following