wip
This commit is contained in:
17
packages/social/domain/entities/FeedItem.ts
Normal file
17
packages/social/domain/entities/FeedItem.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import type { FeedItemType } from '../value-objects/FeedItemType';
|
||||
|
||||
export interface FeedItem {
|
||||
id: string;
|
||||
timestamp: Date;
|
||||
type: FeedItemType;
|
||||
actorFriendId?: string;
|
||||
actorDriverId?: string;
|
||||
leagueId?: string;
|
||||
raceId?: string;
|
||||
teamId?: string;
|
||||
position?: number;
|
||||
headline: string;
|
||||
body?: string;
|
||||
ctaLabel?: string;
|
||||
ctaHref?: string;
|
||||
}
|
||||
6
packages/social/domain/repositories/IFeedRepository.ts
Normal file
6
packages/social/domain/repositories/IFeedRepository.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import type { FeedItem } from '../entities/FeedItem';
|
||||
|
||||
export interface IFeedRepository {
|
||||
getFeedForDriver(driverId: string, limit?: number): Promise<FeedItem[]>;
|
||||
getGlobalFeed(limit?: number): Promise<FeedItem[]>;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import type { Driver } from '@gridpilot/racing/domain/entities/Driver';
|
||||
|
||||
export interface ISocialGraphRepository {
|
||||
getFriends(driverId: string): Promise<Driver[]>;
|
||||
getFriendIds(driverId: string): Promise<string[]>;
|
||||
getSuggestedFriends(driverId: string, limit?: number): Promise<Driver[]>;
|
||||
}
|
||||
8
packages/social/domain/value-objects/FeedItemType.ts
Normal file
8
packages/social/domain/value-objects/FeedItemType.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export type FeedItemType =
|
||||
| 'friend-joined-league'
|
||||
| 'friend-joined-team'
|
||||
| 'friend-finished-race'
|
||||
| 'friend-new-personal-best'
|
||||
| 'new-race-scheduled'
|
||||
| 'new-result-posted'
|
||||
| 'league-highlight';
|
||||
Reference in New Issue
Block a user