7bdb2989cac2e3cf6b036c83006cc73eacd82a73
- follows.create: assertPetOwnership + self-follow rejection + prisma.follow.create + backfillOnFollow - follows.delete: assertPetOwnership + prisma.follow.delete by composite key - follows.isFollowing: prisma.follow.findUnique → boolean - follows.listFollowers: scoped by followeePetId, includes follower display fields - follows.listFollowing: scoped by followerPetId, includes followee display fields - All mutations use protectedProcedure; social graph is pet-to-pet never ownerId (SOCL-01/02/03)
Languages
TypeScript
98.6%
Shell
0.5%
CSS
0.4%
HTML
0.2%
JavaScript
0.2%
Other
0.1%