@qrush/types 2.0.38 → 2.1.0
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.
- package/README.md +4 -0
- package/dist/Chat.d.ts +60 -0
- package/dist/Chat.js +1 -0
- package/dist/Matching.d.ts +61 -0
- package/dist/Matching.js +1 -0
- package/dist/Promotion.d.ts +0 -5
- package/package.json +9 -1
package/README.md
CHANGED
|
@@ -30,6 +30,8 @@ import { CommonFields } from '@qrush/types/Common';
|
|
|
30
30
|
import { CustomDocType } from '@qrush/types/CustomDocType';
|
|
31
31
|
import { Timestamp, GeoPoint, formatTimestamp } from '@qrush/types/firebase';
|
|
32
32
|
import { IFireWebappUser, FireWebappUserSnapshotRef } from '@qrush/types/WebappUsers';
|
|
33
|
+
import { IFireChats, IFireMessages, FireChatsSnapshotRef } from '@qrush/types/Chat';
|
|
34
|
+
import { IFireMatchingRound, IFireAttendee, FireMatchingRoundSnapshotRef } from '@qrush/types/Matching';
|
|
33
35
|
```
|
|
34
36
|
|
|
35
37
|
## Available Types
|
|
@@ -44,6 +46,8 @@ import { IFireWebappUser, FireWebappUserSnapshotRef } from '@qrush/types/WebappU
|
|
|
44
46
|
- **CustomDocType** - Custom document type definitions
|
|
45
47
|
- **firebase** - Firebase/Firestore type re-exports and utilities
|
|
46
48
|
- **WebappUsers** - Web application specific user types and interfaces
|
|
49
|
+
- **Chat** - Chat system types and interfaces for messaging functionality
|
|
50
|
+
- **Matching** - Types for the matching system and attendee management
|
|
47
51
|
|
|
48
52
|
## Development
|
|
49
53
|
|
package/dist/Chat.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { FireQueryDocSnapshotRef } from '@qrush/types/CustomDocType';
|
|
2
|
+
import type { FieldValue, Timestamp } from '@qrush/types/firebase';
|
|
3
|
+
export interface IFireChats {
|
|
4
|
+
participants: {
|
|
5
|
+
[userUID: string]: Participant;
|
|
6
|
+
};
|
|
7
|
+
lastSenderUID: string | null;
|
|
8
|
+
lastMessageAt: Timestamp | null | undefined;
|
|
9
|
+
lastMessage: string | null;
|
|
10
|
+
newMessages: number;
|
|
11
|
+
chatOrigin: ChatOrigin;
|
|
12
|
+
draftMessages: {
|
|
13
|
+
[userUID: string]: IFireMessages;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface Participant {
|
|
17
|
+
name: string;
|
|
18
|
+
birthday: Timestamp;
|
|
19
|
+
pictureURI: string | null;
|
|
20
|
+
check: true;
|
|
21
|
+
}
|
|
22
|
+
type ChatOrigin = ChatOriginEvent | ChatOriginPersonalQR;
|
|
23
|
+
interface ChatOriginEvent {
|
|
24
|
+
type: 'event';
|
|
25
|
+
name: string;
|
|
26
|
+
}
|
|
27
|
+
interface ChatOriginPersonalQR {
|
|
28
|
+
type: 'personal';
|
|
29
|
+
}
|
|
30
|
+
export type FireChatsSnapshotRef = FireQueryDocSnapshotRef<IFireChats>;
|
|
31
|
+
export type IFireChatsUpdateData = {
|
|
32
|
+
lastSenderUID: string;
|
|
33
|
+
lastMessageAt: FieldValue;
|
|
34
|
+
lastMessage: string;
|
|
35
|
+
newMessages: FieldValue | number;
|
|
36
|
+
};
|
|
37
|
+
export type IFireChatsMarkAsReadData = {
|
|
38
|
+
newMessages: 0;
|
|
39
|
+
};
|
|
40
|
+
export interface IFireMessages {
|
|
41
|
+
senderUID: string;
|
|
42
|
+
sentAt: Timestamp | undefined;
|
|
43
|
+
deliveredAt: Timestamp | undefined;
|
|
44
|
+
readAt: Timestamp | undefined;
|
|
45
|
+
message?: string;
|
|
46
|
+
messagePayload?: MessagePayload;
|
|
47
|
+
}
|
|
48
|
+
type MessagePayload = MessageImagePayload;
|
|
49
|
+
interface MessageImagePayload {
|
|
50
|
+
type: 'image';
|
|
51
|
+
uri: string;
|
|
52
|
+
}
|
|
53
|
+
export type FireMessagesSnapshotRef = FireQueryDocSnapshotRef<IFireMessages>;
|
|
54
|
+
export interface IFireMessagesCreationData {
|
|
55
|
+
senderUID: string;
|
|
56
|
+
sentAt: FieldValue;
|
|
57
|
+
message?: string;
|
|
58
|
+
messagePayload?: MessagePayload;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
package/dist/Chat.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Timestamp } from '@firebase/firestore';
|
|
2
|
+
import { FireQueryDocSnapshotRef } from '@qrush/types/CustomDocType';
|
|
3
|
+
import { Gender } from '@qrush/types/Users';
|
|
4
|
+
export interface IFireMatchingRound {
|
|
5
|
+
scheduledFor: Timestamp;
|
|
6
|
+
scheduledDuration: number;
|
|
7
|
+
startedAt: Timestamp | null;
|
|
8
|
+
closedAt: Timestamp | null;
|
|
9
|
+
attendees: number;
|
|
10
|
+
demo: boolean;
|
|
11
|
+
}
|
|
12
|
+
export type FireMatchingRoundSnapshotRef = FireQueryDocSnapshotRef<IFireMatchingRound>;
|
|
13
|
+
export interface IFireMatchingRoundCreationData {
|
|
14
|
+
scheduledFor: Date;
|
|
15
|
+
scheduledDuration: number;
|
|
16
|
+
startedAt: Date | null;
|
|
17
|
+
closedAt: Date | null;
|
|
18
|
+
attendees: number;
|
|
19
|
+
demo: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface IFireAttendee {
|
|
22
|
+
name: string;
|
|
23
|
+
age: number;
|
|
24
|
+
gender: Gender;
|
|
25
|
+
pictureURI: string;
|
|
26
|
+
preference: {
|
|
27
|
+
[Preference in MatchingPreference]: boolean;
|
|
28
|
+
};
|
|
29
|
+
inGroup: boolean;
|
|
30
|
+
matchAttendeeUID?: string;
|
|
31
|
+
votes: {
|
|
32
|
+
[receiverUID: string]: Vote;
|
|
33
|
+
};
|
|
34
|
+
ignore: boolean;
|
|
35
|
+
}
|
|
36
|
+
type MatchingPreference = 'dates' | 'friends';
|
|
37
|
+
interface Vote {
|
|
38
|
+
liked: boolean;
|
|
39
|
+
time: Timestamp;
|
|
40
|
+
}
|
|
41
|
+
export interface IFireAttendeeCreationData {
|
|
42
|
+
name: string;
|
|
43
|
+
age: number;
|
|
44
|
+
gender: Gender;
|
|
45
|
+
pictureURI: string;
|
|
46
|
+
preference: {
|
|
47
|
+
[Preference in MatchingPreference]: boolean;
|
|
48
|
+
};
|
|
49
|
+
inGroup: boolean;
|
|
50
|
+
matchAttendeeUID?: string;
|
|
51
|
+
votes: {
|
|
52
|
+
[receiverUID: string]: VoteCreationData;
|
|
53
|
+
};
|
|
54
|
+
ignore: boolean;
|
|
55
|
+
}
|
|
56
|
+
interface VoteCreationData {
|
|
57
|
+
liked: boolean;
|
|
58
|
+
time: Date;
|
|
59
|
+
}
|
|
60
|
+
export type FireAttendeeSnapshotRef = FireQueryDocSnapshotRef<IFireAttendee>;
|
|
61
|
+
export {};
|
package/dist/Matching.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/Promotion.d.ts
CHANGED
|
@@ -105,10 +105,6 @@ export interface LocationPermission {
|
|
|
105
105
|
revokedBy?: string;
|
|
106
106
|
revocationReason?: string;
|
|
107
107
|
}
|
|
108
|
-
export interface TimeSlot {
|
|
109
|
-
from: Timestamp;
|
|
110
|
-
to: Timestamp;
|
|
111
|
-
}
|
|
112
108
|
export interface BaseActivePromotion {
|
|
113
109
|
instanceId: string;
|
|
114
110
|
templateId?: string;
|
|
@@ -120,7 +116,6 @@ export interface BaseActivePromotion {
|
|
|
120
116
|
dealTypeSnapshot?: PromotionDealType;
|
|
121
117
|
resetMinutesSnapshot: number;
|
|
122
118
|
resetTime?: number;
|
|
123
|
-
timeSlots?: TimeSlot[];
|
|
124
119
|
maxRedemptions?: number;
|
|
125
120
|
displayOrder?: number;
|
|
126
121
|
locationId: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qrush/types",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Shared TypeScript types for the QRush ecosystem",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -64,6 +64,14 @@
|
|
|
64
64
|
"./WebappUsers": {
|
|
65
65
|
"import": "./dist/WebappUsers.js",
|
|
66
66
|
"types": "./dist/WebappUsers.d.ts"
|
|
67
|
+
},
|
|
68
|
+
"./Chat": {
|
|
69
|
+
"import": "./dist/Chat.js",
|
|
70
|
+
"types": "./dist/Chat.d.ts"
|
|
71
|
+
},
|
|
72
|
+
"./Matching": {
|
|
73
|
+
"import": "./dist/Matching.js",
|
|
74
|
+
"types": "./dist/Matching.d.ts"
|
|
67
75
|
}
|
|
68
76
|
}
|
|
69
77
|
}
|