@openora/core 0.4.1-canary.76 → 0.4.1-canary.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/admin-console/plugin.d.ts +2 -0
  3. package/dist/admin-console/plugin.d.ts.map +1 -1
  4. package/dist/analytics/plugin.d.ts +2 -0
  5. package/dist/analytics/plugin.d.ts.map +1 -1
  6. package/dist/audit/__tests__/audit.service.int.test.js +44 -0
  7. package/dist/audit/__tests__/audit.service.int.test.js.map +1 -1
  8. package/dist/audit/plugin.d.ts +2 -0
  9. package/dist/audit/plugin.d.ts.map +1 -1
  10. package/dist/audit/plugin.js +12 -0
  11. package/dist/audit/plugin.js.map +1 -1
  12. package/dist/casino/gaming/plugin.d.ts +2 -0
  13. package/dist/casino/gaming/plugin.d.ts.map +1 -1
  14. package/dist/casino/lobby/plugin.d.ts +2 -0
  15. package/dist/casino/lobby/plugin.d.ts.map +1 -1
  16. package/dist/cms/plugin.d.ts +2 -0
  17. package/dist/cms/plugin.d.ts.map +1 -1
  18. package/dist/compliance/__tests__/kyc.service.int.test.js +2 -2
  19. package/dist/compliance/__tests__/kyc.service.int.test.js.map +1 -1
  20. package/dist/compliance/__tests__/rg-monitoring.service.int.test.js +1 -1
  21. package/dist/compliance/__tests__/rg-monitoring.service.int.test.js.map +1 -1
  22. package/dist/compliance/plugin.d.ts +2 -0
  23. package/dist/compliance/plugin.d.ts.map +1 -1
  24. package/dist/contracts/adapters/index.d.ts +4 -0
  25. package/dist/contracts/adapters/index.d.ts.map +1 -1
  26. package/dist/contracts/adapters/index.js +2 -0
  27. package/dist/contracts/adapters/index.js.map +1 -1
  28. package/dist/contracts/adapters/payment.d.ts +11 -3
  29. package/dist/contracts/adapters/payment.d.ts.map +1 -1
  30. package/dist/contracts/adapters/payment.js.map +1 -1
  31. package/dist/contracts/adapters/player-activity.d.ts +6 -0
  32. package/dist/contracts/adapters/player-activity.d.ts.map +1 -0
  33. package/dist/contracts/adapters/player-activity.js +3 -0
  34. package/dist/contracts/adapters/player-activity.js.map +1 -0
  35. package/dist/contracts/adapters/social-commands.d.ts +12 -0
  36. package/dist/contracts/adapters/social-commands.d.ts.map +1 -0
  37. package/dist/contracts/adapters/social-commands.js +7 -0
  38. package/dist/contracts/adapters/social-commands.js.map +1 -0
  39. package/dist/contracts/schemas/events.d.ts +12 -0
  40. package/dist/contracts/schemas/events.d.ts.map +1 -1
  41. package/dist/contracts/schemas/events.js +7 -0
  42. package/dist/contracts/schemas/events.js.map +1 -1
  43. package/dist/engagement/chat/__tests__/chat.service.int.test.js +123 -2
  44. package/dist/engagement/chat/__tests__/chat.service.int.test.js.map +1 -1
  45. package/dist/engagement/chat/contract/index.d.ts +4 -0
  46. package/dist/engagement/chat/contract/index.d.ts.map +1 -1
  47. package/dist/engagement/chat/contract/index.js +2 -0
  48. package/dist/engagement/chat/contract/index.js.map +1 -1
  49. package/dist/engagement/chat/plugin.d.ts +2 -0
  50. package/dist/engagement/chat/plugin.d.ts.map +1 -1
  51. package/dist/engagement/chat/plugin.js +2 -2
  52. package/dist/engagement/chat/plugin.js.map +1 -1
  53. package/dist/engagement/chat/router/index.d.ts +2 -0
  54. package/dist/engagement/chat/router/index.d.ts.map +1 -1
  55. package/dist/engagement/chat/service/chat.service.d.ts +6 -2
  56. package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
  57. package/dist/engagement/chat/service/chat.service.js +26 -13
  58. package/dist/engagement/chat/service/chat.service.js.map +1 -1
  59. package/dist/engagement/chat-commands/plugin.d.ts +2 -0
  60. package/dist/engagement/chat-commands/plugin.d.ts.map +1 -1
  61. package/dist/engagement/notifications/plugin.d.ts +2 -0
  62. package/dist/engagement/notifications/plugin.d.ts.map +1 -1
  63. package/dist/engagement/social/__tests__/social.plugin.int.test.d.ts +2 -0
  64. package/dist/engagement/social/__tests__/social.plugin.int.test.d.ts.map +1 -0
  65. package/dist/engagement/social/__tests__/social.plugin.int.test.js +106 -0
  66. package/dist/engagement/social/__tests__/social.plugin.int.test.js.map +1 -0
  67. package/dist/engagement/social/__tests__/social.router.int.test.js +44 -2
  68. package/dist/engagement/social/__tests__/social.router.int.test.js.map +1 -1
  69. package/dist/engagement/social/__tests__/social.service.int.test.js +252 -6
  70. package/dist/engagement/social/__tests__/social.service.int.test.js.map +1 -1
  71. package/dist/engagement/social/contract/index.d.ts +40 -0
  72. package/dist/engagement/social/contract/index.d.ts.map +1 -1
  73. package/dist/engagement/social/contract/index.js +20 -0
  74. package/dist/engagement/social/contract/index.js.map +1 -1
  75. package/dist/engagement/social/drizzle/migrations/0003_fuzzy_shadow_king.sql +4 -0
  76. package/dist/engagement/social/drizzle/migrations/meta/0003_snapshot.json +145 -0
  77. package/dist/engagement/social/drizzle/migrations/meta/_journal.json +7 -0
  78. package/dist/engagement/social/plugin.d.ts +52 -50
  79. package/dist/engagement/social/plugin.d.ts.map +1 -1
  80. package/dist/engagement/social/plugin.js +8 -7
  81. package/dist/engagement/social/plugin.js.map +1 -1
  82. package/dist/engagement/social/router/index.d.ts +24 -0
  83. package/dist/engagement/social/router/index.d.ts.map +1 -1
  84. package/dist/engagement/social/router/index.js +12 -1
  85. package/dist/engagement/social/router/index.js.map +1 -1
  86. package/dist/engagement/social/schema/index.d.ts +17 -0
  87. package/dist/engagement/social/schema/index.d.ts.map +1 -1
  88. package/dist/engagement/social/schema/index.js +5 -17
  89. package/dist/engagement/social/schema/index.js.map +1 -1
  90. package/dist/engagement/social/service/social.service.d.ts +17 -3
  91. package/dist/engagement/social/service/social.service.d.ts.map +1 -1
  92. package/dist/engagement/social/service/social.service.js +103 -12
  93. package/dist/engagement/social/service/social.service.js.map +1 -1
  94. package/dist/engagement/social-transfers/plugin.d.ts +2 -0
  95. package/dist/engagement/social-transfers/plugin.d.ts.map +1 -1
  96. package/dist/iam/plugin.d.ts +2 -0
  97. package/dist/iam/plugin.d.ts.map +1 -1
  98. package/dist/pam/identity/plugin.d.ts +2 -0
  99. package/dist/pam/identity/plugin.d.ts.map +1 -1
  100. package/dist/pam/player-management/__tests__/player.service.int.test.js +29 -0
  101. package/dist/pam/player-management/__tests__/player.service.int.test.js.map +1 -1
  102. package/dist/pam/player-management/plugin.d.ts +2 -0
  103. package/dist/pam/player-management/plugin.d.ts.map +1 -1
  104. package/dist/pam/player-management/plugin.js +6 -4
  105. package/dist/pam/player-management/plugin.js.map +1 -1
  106. package/dist/pam/player-management/service/player.service.d.ts +3 -2
  107. package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
  108. package/dist/pam/player-management/service/player.service.js +7 -1
  109. package/dist/pam/player-management/service/player.service.js.map +1 -1
  110. package/dist/pam/player-note/plugin.d.ts +2 -0
  111. package/dist/pam/player-note/plugin.d.ts.map +1 -1
  112. package/dist/pam/profile/plugin.d.ts +2 -0
  113. package/dist/pam/profile/plugin.d.ts.map +1 -1
  114. package/dist/pam/tag/plugin.d.ts +2 -0
  115. package/dist/pam/tag/plugin.d.ts.map +1 -1
  116. package/dist/server/runtime/core-token-catalog.d.ts +2 -0
  117. package/dist/server/runtime/core-token-catalog.d.ts.map +1 -1
  118. package/dist/server/runtime/core-token-catalog.js +3 -1
  119. package/dist/server/runtime/core-token-catalog.js.map +1 -1
  120. package/dist/server/runtime/create-app.d.ts.map +1 -1
  121. package/dist/server/runtime/create-app.js +7 -1
  122. package/dist/server/runtime/create-app.js.map +1 -1
  123. package/dist/wallet/__tests__/admin-reporting.int.test.js +5 -4
  124. package/dist/wallet/__tests__/admin-reporting.int.test.js.map +1 -1
  125. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js +9 -5
  126. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js.map +1 -1
  127. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js +12 -11
  128. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js.map +1 -1
  129. package/dist/wallet/__tests__/wallet-commands.service.int.test.js +17 -9
  130. package/dist/wallet/__tests__/wallet-commands.service.int.test.js.map +1 -1
  131. package/dist/wallet/__tests__/wallet-currency-code.test.d.ts +2 -0
  132. package/dist/wallet/__tests__/wallet-currency-code.test.d.ts.map +1 -0
  133. package/dist/wallet/__tests__/wallet-currency-code.test.js +14 -0
  134. package/dist/wallet/__tests__/wallet-currency-code.test.js.map +1 -0
  135. package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js +8 -4
  136. package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js.map +1 -1
  137. package/dist/wallet/__tests__/wallet-webhook.router.int.test.js +19 -11
  138. package/dist/wallet/__tests__/wallet-webhook.router.int.test.js.map +1 -1
  139. package/dist/wallet/__tests__/wallet.rate-limit.int.test.js +8 -5
  140. package/dist/wallet/__tests__/wallet.rate-limit.int.test.js.map +1 -1
  141. package/dist/wallet/__tests__/wallet.router.int.test.js +2 -4
  142. package/dist/wallet/__tests__/wallet.router.int.test.js.map +1 -1
  143. package/dist/wallet/__tests__/wallet.service.int.test.js +122 -25
  144. package/dist/wallet/__tests__/wallet.service.int.test.js.map +1 -1
  145. package/dist/wallet/contract/index.d.ts +39 -8
  146. package/dist/wallet/contract/index.d.ts.map +1 -1
  147. package/dist/wallet/contract/index.js +26 -5
  148. package/dist/wallet/contract/index.js.map +1 -1
  149. package/dist/wallet/drizzle/migrations/0008_gorgeous_colonel_america.sql +1 -0
  150. package/dist/wallet/drizzle/migrations/0009_smooth_sue_storm.sql +17 -0
  151. package/dist/wallet/drizzle/migrations/meta/0008_snapshot.json +716 -0
  152. package/dist/wallet/drizzle/migrations/meta/0009_snapshot.json +895 -0
  153. package/dist/wallet/drizzle/migrations/meta/_journal.json +14 -0
  154. package/dist/wallet/index.d.ts.map +1 -1
  155. package/dist/wallet/index.js +0 -2
  156. package/dist/wallet/index.js.map +1 -1
  157. package/dist/wallet/migrate.d.ts +0 -1
  158. package/dist/wallet/migrate.d.ts.map +1 -1
  159. package/dist/wallet/migrate.js +0 -4
  160. package/dist/wallet/migrate.js.map +1 -1
  161. package/dist/wallet/plugin.d.ts +2 -0
  162. package/dist/wallet/plugin.d.ts.map +1 -1
  163. package/dist/wallet/router/index.d.ts +19 -4
  164. package/dist/wallet/router/index.d.ts.map +1 -1
  165. package/dist/wallet/router/index.js +5 -2
  166. package/dist/wallet/router/index.js.map +1 -1
  167. package/dist/wallet/schema/index.d.ts +126 -17
  168. package/dist/wallet/schema/index.d.ts.map +1 -1
  169. package/dist/wallet/schema/index.js +24 -2
  170. package/dist/wallet/schema/index.js.map +1 -1
  171. package/dist/wallet/service/wallet-commands.service.d.ts.map +1 -1
  172. package/dist/wallet/service/wallet-commands.service.js +7 -15
  173. package/dist/wallet/service/wallet-commands.service.js.map +1 -1
  174. package/dist/wallet/service/wallet.service.d.ts +280 -6
  175. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  176. package/dist/wallet/service/wallet.service.js +110 -62
  177. package/dist/wallet/service/wallet.service.js.map +1 -1
  178. package/package.json +1 -1
@@ -7,7 +7,7 @@ import { migrate as migrateChat } from '@openora/core/engagement/migrate/chat';
7
7
  import { chatUserBlock } from '@openora/core/engagement/schema/chat';
8
8
  import { player } from '@openora/core/pam/schema/profile';
9
9
  import { migrate as migrateProfile } from '@openora/core/pam/migrate/profile';
10
- import { makeEventBus, testContext } from '../../../testing/mock.js';
10
+ import { makeEventBus, makeIdentityReader, testContext } from '../../../testing/mock.js';
11
11
  import { migrate } from '../migrate.js';
12
12
  import { friendship } from '../schema/index.js';
13
13
  import { createSocialRouter } from '../router/index.js';
@@ -15,7 +15,10 @@ import { SocialService } from '../service/social.service.js';
15
15
  let db;
16
16
  function build() {
17
17
  const events = makeEventBus();
18
- return { router: createSocialRouter(new SocialService(db.drizzle, events)), events };
18
+ return {
19
+ router: createSocialRouter(new SocialService(db.drizzle, events, makeIdentityReader())),
20
+ events,
21
+ };
19
22
  }
20
23
  async function seedPlayer(overrides = {}) {
21
24
  const [row] = await db.drizzle.db
@@ -43,6 +46,45 @@ describe('social router authz', () => {
43
46
  const { router } = build();
44
47
  await expect(call(router.getRelationships, { userIds: [randomUUID()] }, { context: testContext() })).rejects.toBeInstanceOf(ORPCError);
45
48
  });
49
+ it('rejects listFriends for an unauthenticated caller', async () => {
50
+ const { router } = build();
51
+ await expect(call(router.listFriends, { page: 1, limit: 20 }, { context: testContext() })).rejects.toBeInstanceOf(ORPCError);
52
+ });
53
+ it('rejects removeFriend for an unauthenticated caller', async () => {
54
+ const { router } = build();
55
+ await expect(call(router.removeFriend, { targetUserId: randomUUID() }, { context: testContext() })).rejects.toBeInstanceOf(ORPCError);
56
+ });
57
+ });
58
+ describe('social router listFriends', () => {
59
+ it('returns the accepted, non-removed friends for the caller', async () => {
60
+ const { router } = build();
61
+ const caller = await seedPlayer({ displayName: 'Caller' });
62
+ const friend = await seedPlayer({ displayName: 'Friend' });
63
+ await call(router.sendFriendRequest, { targetUserId: friend.userId }, { context: ctxFor(caller.userId) });
64
+ await call(router.sendFriendRequest, { targetUserId: caller.userId }, { context: ctxFor(friend.userId) });
65
+ const result = await call(router.listFriends, { page: 1, limit: 20 }, { context: ctxFor(caller.userId) });
66
+ expect(result.total).toBe(1);
67
+ expect(result.items[0]).toMatchObject({ userId: friend.userId, displayName: 'Friend' });
68
+ });
69
+ });
70
+ describe('social router removeFriend', () => {
71
+ it('dissolves an active friendship', async () => {
72
+ const { router } = build();
73
+ const caller = await seedPlayer();
74
+ const friend = await seedPlayer();
75
+ await call(router.sendFriendRequest, { targetUserId: friend.userId }, { context: ctxFor(caller.userId) });
76
+ await call(router.sendFriendRequest, { targetUserId: caller.userId }, { context: ctxFor(friend.userId) });
77
+ const result = await call(router.removeFriend, { targetUserId: friend.userId }, { context: ctxFor(caller.userId) });
78
+ expect(result).toEqual({ success: true });
79
+ });
80
+ it('maps a nonexistent friendship to NOT_FOUND', async () => {
81
+ const { router } = build();
82
+ const caller = await seedPlayer();
83
+ const stranger = await seedPlayer();
84
+ const error = await call(router.removeFriend, { targetUserId: stranger.userId }, { context: ctxFor(caller.userId) }).catch((e) => e);
85
+ expect(error).toBeInstanceOf(ORPCError);
86
+ expect(error.code).toBe('NOT_FOUND');
87
+ });
46
88
  });
47
89
  describe('social router sendFriendRequest', () => {
48
90
  it('sends a pending friend request for an authenticated caller', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"social.router.int.test.js","sourceRoot":"","sources":["../../../../src/engagement/social/__tests__/social.router.int.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social.router.int.test.js","sourceRoot":"","sources":["../../../../src/engagement/social/__tests__/social.router.int.test.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,31 @@
1
1
  import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
2
2
  import { randomUUID } from 'node:crypto';
3
- import { sql } from 'drizzle-orm';
3
+ import { eq, sql } from 'drizzle-orm';
4
4
  import { createTestDb } from '@openora/core/testing';
5
5
  import { migrate as migrateChat } from '@openora/core/engagement/migrate/chat';
6
- import { chatUserBlock } from '@openora/core/engagement/schema/chat';
6
+ import { chatUserBlock, chatUserIgnore } from '@openora/core/engagement/schema/chat';
7
7
  import { player } from '@openora/core/pam/schema/profile';
8
8
  import { migrate as migrateProfile } from '@openora/core/pam/migrate/profile';
9
- import { makeEventBus } from '../../../testing/mock.js';
9
+ import { makeEventBus, makeIdentityReader } from '../../../testing/mock.js';
10
10
  import { migrate } from '../migrate.js';
11
11
  import { friendship } from '../schema/index.js';
12
- import { SocialService, SelfFriendRequestError, FriendRequestTargetNotFoundError, FriendRequestUnavailableError, AlreadyFriendsError, RequestAlreadyPendingError, FriendRequestRefusedError, BlockedBySelfError, } from '../service/social.service.js';
12
+ import { SocialService, SelfFriendRequestError, FriendRequestTargetNotFoundError, FriendRequestUnavailableError, AlreadyFriendsError, RequestAlreadyPendingError, FriendRequestRefusedError, BlockedBySelfError, FriendshipNotFoundError, } from '../service/social.service.js';
13
13
  let db;
14
+ function realIdentityReader() {
15
+ return {
16
+ ...makeIdentityReader(),
17
+ getPlayerIdByUserIdSafe: async (userId) => {
18
+ const [row] = await db.drizzle.db
19
+ .select({ id: player.id })
20
+ .from(player)
21
+ .where(eq(player.userId, userId));
22
+ return row?.id ?? null;
23
+ },
24
+ };
25
+ }
14
26
  function makeService() {
15
27
  const events = makeEventBus();
16
- return { svc: new SocialService(db.drizzle, events), events };
28
+ return { svc: new SocialService(db.drizzle, events, realIdentityReader()), events };
17
29
  }
18
30
  async function seedPlayer(overrides = {}) {
19
31
  const [row] = await db.drizzle.db
@@ -25,6 +37,9 @@ async function seedPlayer(overrides = {}) {
25
37
  async function seedBlock(blockerId, blockedId) {
26
38
  await db.drizzle.db.insert(chatUserBlock).values({ blockerId, blockedId });
27
39
  }
40
+ async function seedIgnore(ignorerId, ignoredId) {
41
+ await db.drizzle.db.insert(chatUserIgnore).values({ ignorerId, ignoredId });
42
+ }
28
43
  beforeAll(async () => {
29
44
  db = await createTestDb([migrate, migrateProfile, migrateChat]);
30
45
  });
@@ -32,7 +47,7 @@ afterAll(async () => {
32
47
  await db.drop();
33
48
  });
34
49
  beforeEach(async () => {
35
- await db.drizzle.db.execute(sql `TRUNCATE ${friendship}, ${chatUserBlock}, ${player} RESTART IDENTITY CASCADE`);
50
+ await db.drizzle.db.execute(sql `TRUNCATE ${friendship}, ${chatUserBlock}, ${chatUserIgnore}, ${player} RESTART IDENTITY CASCADE`);
36
51
  });
37
52
  describe('SocialService.sendFriendRequest (real PG)', () => {
38
53
  it('inserts a pending row and emits social.friend_request.sent', async () => {
@@ -230,4 +245,235 @@ describe('SocialService.getRelationships (real PG)', () => {
230
245
  expect(result.map((r) => r.userId)).toEqual([b.userId, a.userId, b.userId]);
231
246
  });
232
247
  });
248
+ async function makeFriends(svc, aUserId, bUserId) {
249
+ const first = await svc.sendFriendRequest(aUserId, bUserId);
250
+ await svc.sendFriendRequest(bUserId, aUserId); // mutual auto-accept
251
+ return first;
252
+ }
253
+ describe('SocialService.removeFriend (real PG)', () => {
254
+ it('dissolves an active friendship (caller as requester) and emits social.friendship.removed', async () => {
255
+ const { svc, events } = makeService();
256
+ const alice = await seedPlayer();
257
+ const bob = await seedPlayer();
258
+ const friendshipRow = await makeFriends(svc, alice.userId, bob.userId);
259
+ events.emit.mockClear();
260
+ await svc.removeFriend(alice.userId, bob.userId);
261
+ expect(events.emit).toHaveBeenCalledWith('social.friendship.removed', {
262
+ friendshipId: friendshipRow.id,
263
+ actorId: alice.userId,
264
+ actorPlayerId: alice.id,
265
+ otherUserId: bob.userId,
266
+ reason: 'removed_by_player',
267
+ });
268
+ const [row] = await db.drizzle.db.select().from(friendship);
269
+ expect(row?.removedAt).toBeInstanceOf(Date);
270
+ });
271
+ it('dissolves an active friendship (caller as addressee) and emits social.friendship.removed', async () => {
272
+ const { svc, events } = makeService();
273
+ const alice = await seedPlayer();
274
+ const bob = await seedPlayer();
275
+ const friendshipRow = await makeFriends(svc, alice.userId, bob.userId);
276
+ events.emit.mockClear();
277
+ await svc.removeFriend(bob.userId, alice.userId);
278
+ expect(events.emit).toHaveBeenCalledWith('social.friendship.removed', {
279
+ friendshipId: friendshipRow.id,
280
+ actorId: bob.userId,
281
+ actorPlayerId: bob.id,
282
+ otherUserId: alice.userId,
283
+ reason: 'removed_by_player',
284
+ });
285
+ });
286
+ it('emits a null actorPlayerId when the caller has no player row (BF-427 audit fix)', async () => {
287
+ const { svc, events } = makeService();
288
+ const alice = await seedPlayer();
289
+ const staffCallerId = randomUUID(); // an identity userId with no `player` row
290
+ await db.drizzle.db.insert(friendship).values({
291
+ requesterId: staffCallerId,
292
+ addresseeId: alice.userId,
293
+ acceptedAt: new Date(),
294
+ });
295
+ await svc.removeFriend(staffCallerId, alice.userId);
296
+ expect(events.emit).toHaveBeenCalledWith('social.friendship.removed', expect.objectContaining({ actorId: staffCallerId, actorPlayerId: null }));
297
+ });
298
+ it('throws FriendshipNotFoundError when the pair was never friended', async () => {
299
+ const { svc, events } = makeService();
300
+ const alice = await seedPlayer();
301
+ const bob = await seedPlayer();
302
+ await expect(svc.removeFriend(alice.userId, bob.userId)).rejects.toBeInstanceOf(FriendshipNotFoundError);
303
+ expect(events.emit).not.toHaveBeenCalled();
304
+ });
305
+ it('throws FriendshipNotFoundError when the request is still pending', async () => {
306
+ const { svc } = makeService();
307
+ const alice = await seedPlayer();
308
+ const bob = await seedPlayer();
309
+ await svc.sendFriendRequest(alice.userId, bob.userId);
310
+ await expect(svc.removeFriend(alice.userId, bob.userId)).rejects.toBeInstanceOf(FriendshipNotFoundError);
311
+ });
312
+ it('throws FriendshipNotFoundError when the request was refused', async () => {
313
+ const { svc } = makeService();
314
+ const alice = await seedPlayer();
315
+ const bob = await seedPlayer();
316
+ await db.drizzle.db
317
+ .insert(friendship)
318
+ .values({ requesterId: alice.userId, addresseeId: bob.userId, refusedAt: new Date() });
319
+ await expect(svc.removeFriend(alice.userId, bob.userId)).rejects.toBeInstanceOf(FriendshipNotFoundError);
320
+ });
321
+ it('throws FriendshipNotFoundError when already removed, and allows re-friending afterward (partial index)', async () => {
322
+ const { svc } = makeService();
323
+ const alice = await seedPlayer();
324
+ const bob = await seedPlayer();
325
+ await makeFriends(svc, alice.userId, bob.userId);
326
+ await svc.removeFriend(alice.userId, bob.userId);
327
+ await expect(svc.removeFriend(alice.userId, bob.userId)).rejects.toBeInstanceOf(FriendshipNotFoundError);
328
+ const resent = await svc.sendFriendRequest(alice.userId, bob.userId);
329
+ expect(resent.acceptedAt).toBeNull();
330
+ const rows = await db.drizzle.db.select().from(friendship);
331
+ expect(rows).toHaveLength(2);
332
+ });
333
+ });
334
+ describe('SocialService.dissolveFriendshipOnBlock (real PG)', () => {
335
+ it('silently no-ops when no friendship exists', async () => {
336
+ const { svc, events } = makeService();
337
+ const alice = await seedPlayer();
338
+ const bob = await seedPlayer();
339
+ await expect(svc.dissolveFriendshipOnBlock(db.drizzle.db, alice.userId, bob.userId)).resolves.toBeNull();
340
+ expect(events.emit).not.toHaveBeenCalled();
341
+ });
342
+ it('silently no-ops when the request is only pending (not yet accepted)', async () => {
343
+ const { svc, events } = makeService();
344
+ const alice = await seedPlayer();
345
+ const bob = await seedPlayer();
346
+ await svc.sendFriendRequest(alice.userId, bob.userId);
347
+ events.emit.mockClear();
348
+ await expect(svc.dissolveFriendshipOnBlock(db.drizzle.db, alice.userId, bob.userId)).resolves.toBeNull();
349
+ expect(events.emit).not.toHaveBeenCalled();
350
+ const [row] = await db.drizzle.db.select().from(friendship);
351
+ expect(row?.removedAt).toBeNull();
352
+ });
353
+ it('dissolves an active friendship and returns the removal payload, without emitting yet', async () => {
354
+ const { svc, events } = makeService();
355
+ const alice = await seedPlayer();
356
+ const bob = await seedPlayer();
357
+ const friendshipRow = await makeFriends(svc, alice.userId, bob.userId);
358
+ events.emit.mockClear();
359
+ const dissolved = await svc.dissolveFriendshipOnBlock(db.drizzle.db, alice.userId, bob.userId);
360
+ // The row commits (or, on a caller-owned tx, may still roll back) before the
361
+ // caller decides whether to publish - dissolveFriendshipOnBlock must never emit
362
+ // itself, or a rollback after this call would ship a "ghost event".
363
+ expect(dissolved).toEqual({
364
+ friendshipId: friendshipRow.id,
365
+ actorId: alice.userId,
366
+ actorPlayerId: alice.id,
367
+ otherUserId: bob.userId,
368
+ reason: 'blocked',
369
+ });
370
+ expect(events.emit).not.toHaveBeenCalled();
371
+ const [row] = await db.drizzle.db.select().from(friendship);
372
+ expect(row?.removedAt).toBeInstanceOf(Date);
373
+ });
374
+ });
375
+ describe('SocialService.listFriends (real PG)', () => {
376
+ it('returns only accepted, non-removed friendships involving the caller', async () => {
377
+ const { svc } = makeService();
378
+ const caller = await seedPlayer({ displayName: 'Caller' });
379
+ const friend = await seedPlayer({ displayName: 'Friend' });
380
+ const pending = await seedPlayer({ displayName: 'Pending' });
381
+ const refusedPlayer = await seedPlayer({ displayName: 'Refused' });
382
+ const removedFriend = await seedPlayer({ displayName: 'Removed' });
383
+ const strangerA = await seedPlayer({ displayName: 'StrangerA' });
384
+ const strangerB = await seedPlayer({ displayName: 'StrangerB' });
385
+ await makeFriends(svc, caller.userId, friend.userId);
386
+ await svc.sendFriendRequest(caller.userId, pending.userId);
387
+ await db.drizzle.db.insert(friendship).values({
388
+ requesterId: caller.userId,
389
+ addresseeId: refusedPlayer.userId,
390
+ refusedAt: new Date(),
391
+ });
392
+ await makeFriends(svc, caller.userId, removedFriend.userId);
393
+ await svc.removeFriend(caller.userId, removedFriend.userId);
394
+ await makeFriends(svc, strangerA.userId, strangerB.userId);
395
+ const result = await svc.listFriends(caller.userId, { page: 1, limit: 20 });
396
+ expect(result.total).toBe(1);
397
+ expect(result.items).toHaveLength(1);
398
+ expect(result.items[0]).toMatchObject({
399
+ userId: friend.userId,
400
+ displayName: 'Friend',
401
+ status: 'offline',
402
+ lastSeenAt: null,
403
+ isIgnored: false,
404
+ });
405
+ });
406
+ it("derives isIgnored from the CALLER's own ignore state, not the friend's", async () => {
407
+ const { svc } = makeService();
408
+ const caller = await seedPlayer({ displayName: 'Caller' });
409
+ const ignoredFriend = await seedPlayer({ displayName: 'IgnoredFriend' });
410
+ const plainFriend = await seedPlayer({ displayName: 'PlainFriend' });
411
+ await makeFriends(svc, caller.userId, ignoredFriend.userId);
412
+ await makeFriends(svc, caller.userId, plainFriend.userId);
413
+ await seedIgnore(caller.userId, ignoredFriend.userId);
414
+ await seedIgnore(plainFriend.userId, caller.userId);
415
+ const result = await svc.listFriends(caller.userId, { page: 1, limit: 20 });
416
+ const byUserId = new Map(result.items.map((i) => [i.userId, i]));
417
+ expect(byUserId.get(ignoredFriend.userId)).toMatchObject({ isIgnored: true });
418
+ expect(byUserId.get(plainFriend.userId)).toMatchObject({ isIgnored: false });
419
+ });
420
+ it('derives status: online when lastSeenAt is within the online window, offline otherwise', async () => {
421
+ const { svc } = makeService();
422
+ const caller = await seedPlayer();
423
+ const recentlyActive = await seedPlayer({ lastSeenAt: new Date() });
424
+ const staleActive = await seedPlayer({
425
+ lastSeenAt: new Date(Date.now() - 10 * 60 * 1000),
426
+ });
427
+ await makeFriends(svc, caller.userId, recentlyActive.userId);
428
+ await makeFriends(svc, caller.userId, staleActive.userId);
429
+ const result = await svc.listFriends(caller.userId, { page: 1, limit: 20 });
430
+ const byUserId = new Map(result.items.map((i) => [i.userId, i]));
431
+ expect(byUserId.get(recentlyActive.userId)).toMatchObject({ status: 'online' });
432
+ expect(typeof byUserId.get(recentlyActive.userId)?.lastSeenAt).toBe('string');
433
+ expect(byUserId.get(staleActive.userId)).toMatchObject({ status: 'offline' });
434
+ });
435
+ it('paginates results', async () => {
436
+ const { svc } = makeService();
437
+ const caller = await seedPlayer();
438
+ for (let i = 0; i < 3; i++) {
439
+ const friend = await seedPlayer({ displayName: `Friend${i}` });
440
+ await makeFriends(svc, caller.userId, friend.userId);
441
+ }
442
+ const page1 = await svc.listFriends(caller.userId, { page: 1, limit: 2 });
443
+ const page2 = await svc.listFriends(caller.userId, { page: 2, limit: 2 });
444
+ expect(page1.total).toBe(3);
445
+ expect(page1.items).toHaveLength(2);
446
+ expect(page2.items).toHaveLength(1);
447
+ const allIds = new Set([...page1.items, ...page2.items].map((i) => i.userId));
448
+ expect(allIds.size).toBe(3);
449
+ });
450
+ it('drops an entry whose player row is missing instead of rendering a blank name', async () => {
451
+ const { svc } = makeService();
452
+ const caller = await seedPlayer({ displayName: 'Caller' });
453
+ const friend = await seedPlayer({ displayName: 'Friend' });
454
+ await makeFriends(svc, caller.userId, friend.userId);
455
+ await db.drizzle.db.insert(friendship).values({
456
+ requesterId: caller.userId,
457
+ addresseeId: randomUUID(),
458
+ acceptedAt: new Date(),
459
+ });
460
+ const result = await svc.listFriends(caller.userId, { page: 1, limit: 20 });
461
+ expect(result.items).toHaveLength(1);
462
+ expect(result.items[0]?.userId).toBe(friend.userId);
463
+ });
464
+ it.each(['suspended', 'closed'])('drops a friend whose account is %s', async (status) => {
465
+ const { svc } = makeService();
466
+ const caller = await seedPlayer({ displayName: 'Caller' });
467
+ const friend = await seedPlayer({ displayName: 'Friend' });
468
+ const unavailableFriend = await seedPlayer({ displayName: 'Unavailable' });
469
+ await makeFriends(svc, caller.userId, friend.userId);
470
+ await makeFriends(svc, caller.userId, unavailableFriend.userId);
471
+ await db.drizzle.db
472
+ .update(player)
473
+ .set({ status })
474
+ .where(eq(player.userId, unavailableFriend.userId));
475
+ const result = await svc.listFriends(caller.userId, { page: 1, limit: 20 });
476
+ expect(result.items.map((i) => i.userId)).toEqual([friend.userId]);
477
+ });
478
+ });
233
479
  //# sourceMappingURL=social.service.int.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"social.service.int.test.js","sourceRoot":"","sources":["../../../../src/engagement/social/__tests__/social.service.int.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social.service.int.test.js","sourceRoot":"","sources":["../../../../src/engagement/social/__tests__/social.service.int.test.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,22 @@ export declare const RelationshipSchema: z.ZodObject<{
42
42
  canSendRequest: z.ZodBoolean;
43
43
  }, z.core.$strip>;
44
44
  export type Relationship = z.infer<typeof RelationshipSchema>;
45
+ export declare const FriendListEntrySchema: z.ZodObject<{
46
+ userId: z.ZodUUID;
47
+ friendshipId: z.ZodUUID;
48
+ displayName: z.ZodString;
49
+ status: z.ZodEnum<{
50
+ online: "online";
51
+ offline: "offline";
52
+ }>;
53
+ lastSeenAt: z.ZodNullable<z.ZodISODateTime>;
54
+ isIgnored: z.ZodBoolean;
55
+ }, z.core.$strip>;
56
+ export type FriendListEntry = z.infer<typeof FriendListEntrySchema>;
57
+ export declare const RemoveFriendInputSchema: z.ZodObject<{
58
+ targetUserId: z.ZodUUID;
59
+ }, z.core.$strip>;
60
+ export type RemoveFriendInput = z.infer<typeof RemoveFriendInputSchema>;
45
61
  export declare const socialContract: {
46
62
  sendFriendRequest: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
47
63
  targetUserId: z.ZodUUID;
@@ -69,5 +85,29 @@ export declare const socialContract: {
69
85
  friendshipId: z.ZodNullable<z.ZodUUID>;
70
86
  canSendRequest: z.ZodBoolean;
71
87
  }, z.core.$strip>>, Record<never, never>, Record<never, never>>;
88
+ listFriends: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
89
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
90
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
91
+ }, z.core.$strip>, z.ZodObject<{
92
+ items: z.ZodArray<z.ZodObject<{
93
+ userId: z.ZodUUID;
94
+ friendshipId: z.ZodUUID;
95
+ displayName: z.ZodString;
96
+ status: z.ZodEnum<{
97
+ online: "online";
98
+ offline: "offline";
99
+ }>;
100
+ lastSeenAt: z.ZodNullable<z.ZodISODateTime>;
101
+ isIgnored: z.ZodBoolean;
102
+ }, z.core.$strip>>;
103
+ total: z.ZodNumber;
104
+ page: z.ZodNumber;
105
+ limit: z.ZodNumber;
106
+ }, z.core.$strip>, Record<never, never>, Record<never, never>>;
107
+ removeFriend: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
108
+ targetUserId: z.ZodUUID;
109
+ }, z.core.$strip>, z.ZodObject<{
110
+ success: z.ZodLiteral<true>;
111
+ }, z.core.$strip>, Record<never, never>, Record<never, never>>;
72
112
  };
73
113
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/social/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AASzB,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,gBAAgB;;;;;;;iBAO3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,eAAO,MAAM,qBAAqB,iHAQxB,CAAC;AACX,eAAO,MAAM,wBAAwB;;;;;;;;EAAgC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,2BAA2B;;iBAEtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;iBAK7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;CAW1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/social/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAUzB,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,gBAAgB;;;;;;;iBAO3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,eAAO,MAAM,qBAAqB,iHAQxB,CAAC;AACX,eAAO,MAAM,wBAAwB;;;;;;;;EAAgC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,2BAA2B;;iBAEtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;iBAK7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAOhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,uBAAuB;;iBAElC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB1B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { oc } from '@orpc/contract';
2
2
  import * as z from 'zod';
3
3
  import { TimestampSchema, UuidSchema } from '@openora/core/contracts';
4
+ import { PageQuerySchema, paginated } from '@openora/core/contracts/kit';
4
5
  // Canonical request/response shapes for the Social module. This is the
5
6
  // single source of truth - the router validates against it, live OpenAPI + the typed
6
7
  // client are emitted from it. Derive related shapes with .pick()/.omit()/.extend()
@@ -40,6 +41,17 @@ export const RelationshipSchema = z.object({
40
41
  friendshipId: UuidSchema.nullable(),
41
42
  canSendRequest: z.boolean(),
42
43
  });
44
+ export const FriendListEntrySchema = z.object({
45
+ userId: UuidSchema,
46
+ friendshipId: UuidSchema,
47
+ displayName: z.string(),
48
+ status: z.enum(['online', 'offline']),
49
+ lastSeenAt: TimestampSchema.nullable(),
50
+ isIgnored: z.boolean(),
51
+ });
52
+ export const RemoveFriendInputSchema = z.object({
53
+ targetUserId: UuidSchema,
54
+ });
43
55
  export const socialContract = {
44
56
  sendFriendRequest: oc
45
57
  .route({ method: 'POST', path: '/social/friend-requests' })
@@ -50,5 +62,13 @@ export const socialContract = {
50
62
  .route({ method: 'POST', path: '/social/relationships' })
51
63
  .input(GetRelationshipsInputSchema)
52
64
  .output(z.array(RelationshipSchema)),
65
+ listFriends: oc
66
+ .route({ method: 'GET', path: '/social/friends' })
67
+ .input(PageQuerySchema)
68
+ .output(paginated(FriendListEntrySchema)),
69
+ removeFriend: oc
70
+ .route({ method: 'DELETE', path: '/social/friends/{targetUserId}' })
71
+ .input(RemoveFriendInputSchema)
72
+ .output(z.object({ success: z.literal(true) })),
53
73
  };
54
74
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/social/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEtE,uEAAuE;AACvE,qFAAqF;AACrF,mFAAmF;AACnF,0EAA0E;AAC1E,uFAAuF;AAEvF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,YAAY,EAAE,UAAU;CACzB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,UAAU;IACd,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;IACvB,SAAS,EAAE,eAAe;IAC1B,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAGH,kFAAkF;AAClF,mFAAmF;AACnF,+EAA+E;AAC/E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM;IACN,kBAAkB;IAClB,kBAAkB;IAClB,SAAS;IACT,SAAS;IACT,eAAe;IACf,aAAa;CACL,CAAC;AACX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAGtE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAC7C,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,wBAAwB;IAChC,YAAY,EAAE,UAAU,CAAC,QAAQ,EAAE;IACnC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,iBAAiB,EAAE,EAAE;SAClB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;SAC1D,KAAK,CAAC,4BAA4B,CAAC;SACnC,MAAM,CAAC,gBAAgB,CAAC;IAE3B,0EAA0E;IAC1E,gBAAgB,EAAE,EAAE;SACjB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;SACxD,KAAK,CAAC,2BAA2B,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;CACvC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/social/contract/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ DROP INDEX "friendship_pair_key";--> statement-breakpoint
2
+ ALTER TABLE "friendship" ADD COLUMN "removed_at" timestamp with time zone;--> statement-breakpoint
3
+ CREATE UNIQUE INDEX "friendship_pair_key" ON "friendship" USING btree (LEAST("requester_id", "addressee_id"),GREATEST("requester_id", "addressee_id")) WHERE "friendship"."removed_at" IS NULL;--> statement-breakpoint
4
+ ALTER TABLE "friendship" ADD CONSTRAINT "friendship_removed_requires_accepted_key" CHECK (NOT ("friendship"."removed_at" IS NOT NULL AND "friendship"."accepted_at" IS NULL));