@managesome/knotr-toolkit 0.1.1
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/dist/constants/index.d.ts +103 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +92 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/marketplace.d.ts +130 -0
- package/dist/constants/marketplace.d.ts.map +1 -0
- package/dist/constants/marketplace.js +195 -0
- package/dist/constants/marketplace.js.map +1 -0
- package/dist/i18n/ar.json +368 -0
- package/dist/i18n/en.json +369 -0
- package/dist/i18n/index.d.ts +20 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +22 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/ur.json +368 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/types/account.d.ts +55 -0
- package/dist/types/account.d.ts.map +1 -0
- package/dist/types/account.js +3 -0
- package/dist/types/account.js.map +1 -0
- package/dist/types/admin.d.ts +70 -0
- package/dist/types/admin.d.ts.map +1 -0
- package/dist/types/admin.js +117 -0
- package/dist/types/admin.js.map +1 -0
- package/dist/types/api.d.ts +210 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +5 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/chat.d.ts +92 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +8 -0
- package/dist/types/chat.js.map +1 -0
- package/dist/types/common.d.ts +50 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +3 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/company.d.ts +110 -0
- package/dist/types/company.d.ts.map +1 -0
- package/dist/types/company.js +3 -0
- package/dist/types/company.js.map +1 -0
- package/dist/types/flag.d.ts +67 -0
- package/dist/types/flag.d.ts.map +1 -0
- package/dist/types/flag.js +3 -0
- package/dist/types/flag.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/marketplace.d.ts +583 -0
- package/dist/types/marketplace.d.ts.map +1 -0
- package/dist/types/marketplace.js +3 -0
- package/dist/types/marketplace.js.map +1 -0
- package/dist/types/match.d.ts +71 -0
- package/dist/types/match.d.ts.map +1 -0
- package/dist/types/match.js +8 -0
- package/dist/types/match.js.map +1 -0
- package/dist/types/payment.d.ts +176 -0
- package/dist/types/payment.d.ts.map +1 -0
- package/dist/types/payment.js +112 -0
- package/dist/types/payment.js.map +1 -0
- package/dist/types/policy.d.ts +347 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/policy.js +52 -0
- package/dist/types/policy.js.map +1 -0
- package/dist/types/profile.d.ts +196 -0
- package/dist/types/profile.d.ts.map +1 -0
- package/dist/types/profile.js +3 -0
- package/dist/types/profile.js.map +1 -0
- package/dist/types/verification.d.ts +57 -0
- package/dist/types/verification.d.ts.map +1 -0
- package/dist/types/verification.js +3 -0
- package/dist/types/verification.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import type { Account } from './account';
|
|
2
|
+
import type { Chat, Message } from './chat';
|
|
3
|
+
import type { Company } from './company';
|
|
4
|
+
import type { Flag } from './flag';
|
|
5
|
+
import type { Match } from './match';
|
|
6
|
+
import type { PromoCode, Subscription, SubscriptionPlan } from './payment';
|
|
7
|
+
import type { Profile } from './profile';
|
|
8
|
+
export interface AuthTokens {
|
|
9
|
+
accessToken: string;
|
|
10
|
+
refreshToken: string;
|
|
11
|
+
expiresIn: number;
|
|
12
|
+
}
|
|
13
|
+
export interface LoginResponse {
|
|
14
|
+
account: Account;
|
|
15
|
+
tokens: AuthTokens;
|
|
16
|
+
}
|
|
17
|
+
export interface VerifyCodeResponse {
|
|
18
|
+
verified: boolean;
|
|
19
|
+
account?: Account;
|
|
20
|
+
tokens?: AuthTokens;
|
|
21
|
+
requiresRegistration?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface AccountResponse {
|
|
24
|
+
account: Account;
|
|
25
|
+
}
|
|
26
|
+
export interface AccountListResponse {
|
|
27
|
+
accounts: Account[];
|
|
28
|
+
total: number;
|
|
29
|
+
}
|
|
30
|
+
export interface ProfileResponse {
|
|
31
|
+
profile: Profile;
|
|
32
|
+
}
|
|
33
|
+
export interface ProfileListResponse {
|
|
34
|
+
profiles: Profile[];
|
|
35
|
+
total: number;
|
|
36
|
+
pendingCount?: number;
|
|
37
|
+
approvedCount?: number;
|
|
38
|
+
flaggedCount?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface MatchResponse {
|
|
41
|
+
match: Match;
|
|
42
|
+
}
|
|
43
|
+
export interface MatchListResponse {
|
|
44
|
+
matches: Match[];
|
|
45
|
+
total: number;
|
|
46
|
+
}
|
|
47
|
+
export interface InterestResponse {
|
|
48
|
+
interest: {
|
|
49
|
+
id: string;
|
|
50
|
+
fromProfileId: string;
|
|
51
|
+
toProfileId: string;
|
|
52
|
+
status: 'pending' | 'accepted' | 'declined' | 'expired';
|
|
53
|
+
expiresAt: Date;
|
|
54
|
+
createdAt: Date;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export interface InterestListResponse {
|
|
58
|
+
interests: InterestResponse['interest'][];
|
|
59
|
+
total: number;
|
|
60
|
+
}
|
|
61
|
+
export interface ChatResponse {
|
|
62
|
+
chat: Chat;
|
|
63
|
+
}
|
|
64
|
+
export interface ChatListResponse {
|
|
65
|
+
chats: Chat[];
|
|
66
|
+
total: number;
|
|
67
|
+
}
|
|
68
|
+
export interface MessageResponse {
|
|
69
|
+
message: Message;
|
|
70
|
+
}
|
|
71
|
+
export interface MessageListResponse {
|
|
72
|
+
messages: Message[];
|
|
73
|
+
total: number;
|
|
74
|
+
hasMore: boolean;
|
|
75
|
+
}
|
|
76
|
+
export interface SubscriptionResponse {
|
|
77
|
+
subscription: Subscription;
|
|
78
|
+
}
|
|
79
|
+
export interface SubscriptionListResponse {
|
|
80
|
+
subscriptions: Subscription[];
|
|
81
|
+
total: number;
|
|
82
|
+
activeCount?: number;
|
|
83
|
+
trialCount?: number;
|
|
84
|
+
monthlyRevenue?: number;
|
|
85
|
+
}
|
|
86
|
+
export interface SubscriptionPlanListResponse {
|
|
87
|
+
plans: SubscriptionPlan[];
|
|
88
|
+
}
|
|
89
|
+
export interface CompanyResponse {
|
|
90
|
+
company: Company;
|
|
91
|
+
}
|
|
92
|
+
export interface CompanyListResponse {
|
|
93
|
+
companies: Company[];
|
|
94
|
+
total: number;
|
|
95
|
+
}
|
|
96
|
+
export interface FlagResponse {
|
|
97
|
+
flag: Flag;
|
|
98
|
+
}
|
|
99
|
+
export interface FlagListResponse {
|
|
100
|
+
flags: Flag[];
|
|
101
|
+
total: number;
|
|
102
|
+
pendingCount?: number;
|
|
103
|
+
highSeverityCount?: number;
|
|
104
|
+
resolvedCount?: number;
|
|
105
|
+
}
|
|
106
|
+
export interface DashboardStats {
|
|
107
|
+
totalAccounts: number;
|
|
108
|
+
activeAccounts: number;
|
|
109
|
+
totalProfiles: number;
|
|
110
|
+
pendingProfiles: number;
|
|
111
|
+
pendingApprovals: number;
|
|
112
|
+
flaggedContent: number;
|
|
113
|
+
activeMatches: number;
|
|
114
|
+
totalMatches: number;
|
|
115
|
+
successfulMatches: number;
|
|
116
|
+
totalChats: number;
|
|
117
|
+
revenue: number;
|
|
118
|
+
totalRevenue: number;
|
|
119
|
+
monthlyRevenue: number;
|
|
120
|
+
activeSubscriptions: number;
|
|
121
|
+
newAccountsToday: number;
|
|
122
|
+
newAccountsThisWeek: number;
|
|
123
|
+
newAccountsThisMonth: number;
|
|
124
|
+
genderDistribution: {
|
|
125
|
+
male: number;
|
|
126
|
+
female: number;
|
|
127
|
+
};
|
|
128
|
+
accountTypeDistribution: {
|
|
129
|
+
individual: number;
|
|
130
|
+
company: number;
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
export interface AnalyticsData {
|
|
134
|
+
period: string;
|
|
135
|
+
date?: string;
|
|
136
|
+
accounts: number;
|
|
137
|
+
profiles: number;
|
|
138
|
+
matches: number;
|
|
139
|
+
count?: number;
|
|
140
|
+
revenue: number;
|
|
141
|
+
}
|
|
142
|
+
export interface RecentActivity {
|
|
143
|
+
type: string;
|
|
144
|
+
description: string;
|
|
145
|
+
time: string;
|
|
146
|
+
}
|
|
147
|
+
export interface AnalyticsResponse {
|
|
148
|
+
data: AnalyticsData[];
|
|
149
|
+
registrations?: {
|
|
150
|
+
date: string;
|
|
151
|
+
count: number;
|
|
152
|
+
}[];
|
|
153
|
+
matches?: {
|
|
154
|
+
date: string;
|
|
155
|
+
count: number;
|
|
156
|
+
}[];
|
|
157
|
+
recentActivity?: RecentActivity[];
|
|
158
|
+
range: 'week' | 'month' | 'quarter' | 'year';
|
|
159
|
+
}
|
|
160
|
+
export interface PromoCodeResponse {
|
|
161
|
+
promoCode: PromoCode;
|
|
162
|
+
}
|
|
163
|
+
export interface PromoCodeListResponse {
|
|
164
|
+
promoCodes: PromoCode[];
|
|
165
|
+
total: number;
|
|
166
|
+
activeCount?: number;
|
|
167
|
+
totalRedemptions?: number;
|
|
168
|
+
totalDiscountGiven?: number;
|
|
169
|
+
}
|
|
170
|
+
export interface AppSettings {
|
|
171
|
+
appName: string;
|
|
172
|
+
supportEmail: string;
|
|
173
|
+
genderBalanceEnabled: boolean;
|
|
174
|
+
genderBalanceRatio: number;
|
|
175
|
+
autoFlagThreshold: number;
|
|
176
|
+
profileApprovalRequired: boolean;
|
|
177
|
+
trialDays: number;
|
|
178
|
+
basicMonthlyPrice: number;
|
|
179
|
+
premiumMonthlyPrice: number;
|
|
180
|
+
vipMonthlyPrice: number;
|
|
181
|
+
}
|
|
182
|
+
export interface SettingsResponse {
|
|
183
|
+
settings: AppSettings;
|
|
184
|
+
}
|
|
185
|
+
export interface VerificationResponse {
|
|
186
|
+
verification: {
|
|
187
|
+
id: string;
|
|
188
|
+
profileId: string;
|
|
189
|
+
type: 'identity' | 'photo' | 'phone' | 'email';
|
|
190
|
+
status: 'pending' | 'approved' | 'rejected';
|
|
191
|
+
submittedAt: Date;
|
|
192
|
+
reviewedAt?: Date;
|
|
193
|
+
reviewedBy?: string;
|
|
194
|
+
notes?: string;
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
export interface ActivityLogEntry {
|
|
198
|
+
id: string;
|
|
199
|
+
action: string;
|
|
200
|
+
entityType: 'account' | 'profile' | 'match' | 'subscription' | 'flag';
|
|
201
|
+
entityId: string;
|
|
202
|
+
performedBy: string;
|
|
203
|
+
performedAt: Date;
|
|
204
|
+
details?: Record<string, unknown>;
|
|
205
|
+
}
|
|
206
|
+
export interface ActivityLogResponse {
|
|
207
|
+
activities: ActivityLogEntry[];
|
|
208
|
+
total: number;
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,iDAAiD;AACjD,6DAA6D"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { TimestampFields } from './common';
|
|
2
|
+
export type ChatStatus = 'active' | 'paused' | 'ended' | 'flagged' | 'blocked';
|
|
3
|
+
export type MessageType = 'text' | 'image' | 'system' | 'interest_intro';
|
|
4
|
+
export type MessageStatus = 'sent' | 'delivered' | 'read' | 'deleted';
|
|
5
|
+
export interface Chat extends TimestampFields {
|
|
6
|
+
id: string;
|
|
7
|
+
matchId: string;
|
|
8
|
+
participant1: ChatParticipant;
|
|
9
|
+
participant2: ChatParticipant;
|
|
10
|
+
status: ChatStatus;
|
|
11
|
+
encryptionKeyId: string;
|
|
12
|
+
lastMessageAt?: Date;
|
|
13
|
+
lastMessagePreview?: string;
|
|
14
|
+
totalMessages: number;
|
|
15
|
+
unreadCount1: number;
|
|
16
|
+
unreadCount2: number;
|
|
17
|
+
flaggedAt?: Date;
|
|
18
|
+
reviewedAt?: Date;
|
|
19
|
+
reviewedBy?: string;
|
|
20
|
+
reviewNotes?: string;
|
|
21
|
+
isImageSharingEnabled: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface ChatParticipant {
|
|
24
|
+
profileId: string;
|
|
25
|
+
accountId: string;
|
|
26
|
+
profileName: string;
|
|
27
|
+
profilePhotoUrl?: string;
|
|
28
|
+
isCompany: boolean;
|
|
29
|
+
lastReadAt?: Date;
|
|
30
|
+
mutedUntil?: Date;
|
|
31
|
+
blockedOther: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface Message extends TimestampFields {
|
|
34
|
+
id: string;
|
|
35
|
+
chatId: string;
|
|
36
|
+
senderProfileId: string;
|
|
37
|
+
senderAccountId: string;
|
|
38
|
+
type: MessageType;
|
|
39
|
+
content: string;
|
|
40
|
+
imageUrl?: string;
|
|
41
|
+
status: MessageStatus;
|
|
42
|
+
deliveredAt?: Date;
|
|
43
|
+
readAt?: Date;
|
|
44
|
+
isFlagged: boolean;
|
|
45
|
+
flaggedAt?: Date;
|
|
46
|
+
flagReason?: string;
|
|
47
|
+
isEdited: boolean;
|
|
48
|
+
editedAt?: Date;
|
|
49
|
+
isDeleted: boolean;
|
|
50
|
+
deletedAt?: Date;
|
|
51
|
+
deletedBy?: string;
|
|
52
|
+
replyToMessageId?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface SystemMessage {
|
|
55
|
+
type: 'match_started' | 'match_ended' | 'chat_paused' | 'warning' | 'info';
|
|
56
|
+
content: string;
|
|
57
|
+
metadata?: Record<string, any>;
|
|
58
|
+
}
|
|
59
|
+
export interface ChatSendMessageInput {
|
|
60
|
+
chatId: string;
|
|
61
|
+
type: 'text' | 'image';
|
|
62
|
+
content: string;
|
|
63
|
+
imageUrl?: string;
|
|
64
|
+
replyToMessageId?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface ChatMarkReadInput {
|
|
67
|
+
chatId: string;
|
|
68
|
+
messageIds: string[];
|
|
69
|
+
}
|
|
70
|
+
export interface ChatListItem {
|
|
71
|
+
chatId: string;
|
|
72
|
+
matchId: string;
|
|
73
|
+
otherParticipant: {
|
|
74
|
+
profileId: string;
|
|
75
|
+
profileName: string;
|
|
76
|
+
profilePhotoUrl?: string;
|
|
77
|
+
isCompany: boolean;
|
|
78
|
+
};
|
|
79
|
+
status: ChatStatus;
|
|
80
|
+
lastMessageAt?: Date;
|
|
81
|
+
lastMessagePreview?: string;
|
|
82
|
+
unreadCount: number;
|
|
83
|
+
isOnline: boolean;
|
|
84
|
+
}
|
|
85
|
+
export interface ChatEncryptionInfo {
|
|
86
|
+
isEncrypted: boolean;
|
|
87
|
+
encryptionType: 'e2e' | 'at_rest';
|
|
88
|
+
canBeReviewedByAdmin: boolean;
|
|
89
|
+
reviewPolicy: string;
|
|
90
|
+
}
|
|
91
|
+
export declare const CHAT_ENCRYPTION_POLICY: ChatEncryptionInfo;
|
|
92
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Chat and messaging types
|
|
2
|
+
export const CHAT_ENCRYPTION_POLICY = {
|
|
3
|
+
isEncrypted: true,
|
|
4
|
+
encryptionType: 'at_rest',
|
|
5
|
+
canBeReviewedByAdmin: true,
|
|
6
|
+
reviewPolicy: 'Chats may be reviewed by our moderation team if flagged for inappropriate or non-halal content. We take privacy seriously but prioritize the safety and Islamic values of our community.',
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA,2BAA2B;AA4I3B,MAAM,CAAC,MAAM,sBAAsB,GAAuB;IACxD,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,SAAS;IACzB,oBAAoB,EAAE,IAAI;IAC1B,YAAY,EACV,0LAA0L;CAC7L,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export type Language = 'en' | 'ur' | 'ar';
|
|
2
|
+
export type Gender = 'male' | 'female';
|
|
3
|
+
export type Sect = 'sunni_hanafi' | 'sunni_shafi' | 'sunni_maliki' | 'sunni_hanbali' | 'shia_twelver' | 'shia_ismaili' | 'shia_zaydi' | 'ahmadiyya' | 'other';
|
|
4
|
+
export type MaritalStatus = 'never_married' | 'divorced' | 'widowed' | 'annulled';
|
|
5
|
+
export type EducationLevel = 'high_school' | 'diploma' | 'bachelors' | 'masters' | 'doctorate' | 'islamic_scholar' | 'hafiz' | 'other';
|
|
6
|
+
export type Complexion = 'very_fair' | 'fair' | 'wheatish' | 'olive' | 'brown' | 'dark';
|
|
7
|
+
export type BodyType = 'slim' | 'average' | 'athletic' | 'heavy';
|
|
8
|
+
export type HijabStatus = 'always' | 'mostly' | 'sometimes' | 'never';
|
|
9
|
+
export type BeardStatus = 'full' | 'trimmed' | 'sometimes' | 'clean_shaven';
|
|
10
|
+
export type PrayerFrequency = 'five_times' | 'mostly' | 'sometimes' | 'rarely' | 'trying_to_improve';
|
|
11
|
+
export type DietaryPreference = 'strict_halal' | 'halal' | 'vegetarian' | 'no_preference';
|
|
12
|
+
export interface Location {
|
|
13
|
+
country: string;
|
|
14
|
+
state?: string;
|
|
15
|
+
city: string;
|
|
16
|
+
coordinates?: {
|
|
17
|
+
lat: number;
|
|
18
|
+
lng: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export interface AgeRange {
|
|
22
|
+
min: number;
|
|
23
|
+
max: number;
|
|
24
|
+
}
|
|
25
|
+
export interface IncomeRange {
|
|
26
|
+
min: number;
|
|
27
|
+
max: number;
|
|
28
|
+
currency: string;
|
|
29
|
+
}
|
|
30
|
+
export interface PaginatedResponse<T> {
|
|
31
|
+
data: T[];
|
|
32
|
+
total: number;
|
|
33
|
+
page: number;
|
|
34
|
+
limit: number;
|
|
35
|
+
totalPages: number;
|
|
36
|
+
hasNext: boolean;
|
|
37
|
+
hasPrev: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface ApiResponse<T = any> {
|
|
40
|
+
success: boolean;
|
|
41
|
+
data?: T;
|
|
42
|
+
message?: string;
|
|
43
|
+
error?: string;
|
|
44
|
+
code?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface TimestampFields {
|
|
47
|
+
createdAt: Date;
|
|
48
|
+
updatedAt: Date;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvC,MAAM,MAAM,IAAI,GACZ,cAAc,GACd,aAAa,GACb,cAAc,GACd,eAAe,GACf,cAAc,GACd,cAAc,GACd,YAAY,GACZ,WAAW,GACX,OAAO,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAElF,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAExF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,mBAAmB,CAAC;AAErG,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,CAAC;AAE1F,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA,yBAAyB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Location, TimestampFields } from './common';
|
|
2
|
+
export type CompanyType = 'organization' | 'consultancy' | 'individual_professional';
|
|
3
|
+
export type CompanyStatus = 'pending_application' | 'under_review' | 'approved' | 'suspended' | 'rejected' | 'banned';
|
|
4
|
+
export type TrustLevel = 'new' | 'verified' | 'trusted' | 'premium' | 'elite';
|
|
5
|
+
export interface Company extends TimestampFields {
|
|
6
|
+
id: string;
|
|
7
|
+
accountId: string;
|
|
8
|
+
status: CompanyStatus;
|
|
9
|
+
trustLevel: TrustLevel;
|
|
10
|
+
name: string;
|
|
11
|
+
type: CompanyType;
|
|
12
|
+
description: string;
|
|
13
|
+
registrationNumber?: string;
|
|
14
|
+
registrationDocument?: string;
|
|
15
|
+
email: string;
|
|
16
|
+
phone: string;
|
|
17
|
+
website?: string;
|
|
18
|
+
socialMedia?: {
|
|
19
|
+
facebook?: string;
|
|
20
|
+
instagram?: string;
|
|
21
|
+
linkedin?: string;
|
|
22
|
+
};
|
|
23
|
+
location: Location;
|
|
24
|
+
serviceAreas: string[];
|
|
25
|
+
yearsInBusiness: number;
|
|
26
|
+
successfulMatches: number;
|
|
27
|
+
documentsSubmitted: CompanyDocument[];
|
|
28
|
+
guaranteeStatement: string;
|
|
29
|
+
references: CompanyReference[];
|
|
30
|
+
reviewedAt?: Date;
|
|
31
|
+
reviewedBy?: string;
|
|
32
|
+
reviewNotes?: string;
|
|
33
|
+
rejectionReason?: string;
|
|
34
|
+
rating: number;
|
|
35
|
+
totalReviews: number;
|
|
36
|
+
activeProfiles: number;
|
|
37
|
+
totalProfilesCreated: number;
|
|
38
|
+
reportedCount: number;
|
|
39
|
+
autoApproveProfiles: boolean;
|
|
40
|
+
maxConcurrentChats: number;
|
|
41
|
+
teamMembers: CompanyTeamMember[];
|
|
42
|
+
}
|
|
43
|
+
export interface CompanyDocument {
|
|
44
|
+
id: string;
|
|
45
|
+
type: 'registration' | 'license' | 'identity' | 'reference' | 'other';
|
|
46
|
+
name: string;
|
|
47
|
+
url: string;
|
|
48
|
+
uploadedAt: Date;
|
|
49
|
+
verifiedAt?: Date;
|
|
50
|
+
verifiedBy?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface CompanyReference {
|
|
53
|
+
name: string;
|
|
54
|
+
relationship: string;
|
|
55
|
+
phone?: string;
|
|
56
|
+
email?: string;
|
|
57
|
+
verified: boolean;
|
|
58
|
+
verifiedAt?: Date;
|
|
59
|
+
notes?: string;
|
|
60
|
+
}
|
|
61
|
+
export interface CompanyTeamMember {
|
|
62
|
+
accountId: string;
|
|
63
|
+
role: 'owner' | 'manager' | 'agent';
|
|
64
|
+
name: string;
|
|
65
|
+
email: string;
|
|
66
|
+
addedAt: Date;
|
|
67
|
+
permissions: CompanyPermission[];
|
|
68
|
+
}
|
|
69
|
+
export type CompanyPermission = 'create_profile' | 'edit_profile' | 'delete_profile' | 'view_chats' | 'respond_chats' | 'manage_team' | 'view_analytics' | 'billing';
|
|
70
|
+
export interface CompanyReview extends TimestampFields {
|
|
71
|
+
id: string;
|
|
72
|
+
companyId: string;
|
|
73
|
+
reviewerAccountId: string;
|
|
74
|
+
profileId: string;
|
|
75
|
+
rating: number;
|
|
76
|
+
review: string;
|
|
77
|
+
isAnonymous: boolean;
|
|
78
|
+
isApproved: boolean;
|
|
79
|
+
flagged: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface CompanyApplicationInput {
|
|
82
|
+
name: string;
|
|
83
|
+
type: CompanyType;
|
|
84
|
+
description: string;
|
|
85
|
+
registrationNumber?: string;
|
|
86
|
+
email: string;
|
|
87
|
+
phone: string;
|
|
88
|
+
website?: string;
|
|
89
|
+
location: Location;
|
|
90
|
+
serviceAreas: string[];
|
|
91
|
+
yearsInBusiness: number;
|
|
92
|
+
successfulMatches: number;
|
|
93
|
+
guaranteeStatement: string;
|
|
94
|
+
references: Omit<CompanyReference, 'verified' | 'verifiedAt' | 'notes'>[];
|
|
95
|
+
}
|
|
96
|
+
export interface CompanyPublicView {
|
|
97
|
+
id: string;
|
|
98
|
+
name: string;
|
|
99
|
+
type: CompanyType;
|
|
100
|
+
description: string;
|
|
101
|
+
location: Location;
|
|
102
|
+
serviceAreas: string[];
|
|
103
|
+
trustLevel: TrustLevel;
|
|
104
|
+
rating: number;
|
|
105
|
+
totalReviews: number;
|
|
106
|
+
yearsInBusiness: number;
|
|
107
|
+
successfulMatches: number;
|
|
108
|
+
activeProfiles: number;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=company.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company.d.ts","sourceRoot":"","sources":["../../src/types/company.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company.js","sourceRoot":"","sources":["../../src/types/company.ts"],"names":[],"mappings":"AAAA,+DAA+D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { TimestampFields } from './common';
|
|
2
|
+
export type FlagTargetType = 'profile' | 'account' | 'chat' | 'message' | 'company';
|
|
3
|
+
export type FlagReason = 'fake_profile' | 'inappropriate_content' | 'harassment' | 'scam_fraud' | 'impersonation' | 'non_halal_behavior' | 'spam' | 'underage' | 'already_married' | 'incorrect_information' | 'offensive_language' | 'solicitation' | 'other';
|
|
4
|
+
export type FlagStatus = 'pending' | 'under_review' | 'action_taken' | 'dismissed' | 'escalated';
|
|
5
|
+
export type FlagActionTaken = 'warning_issued' | 'content_removed' | 'profile_suspended' | 'account_suspended' | 'account_blocked' | 'no_action';
|
|
6
|
+
export interface Flag extends TimestampFields {
|
|
7
|
+
id: string;
|
|
8
|
+
reporterAccountId: string;
|
|
9
|
+
reporterProfileId?: string;
|
|
10
|
+
targetType: FlagTargetType;
|
|
11
|
+
targetId: string;
|
|
12
|
+
targetAccountId: string;
|
|
13
|
+
reason: FlagReason;
|
|
14
|
+
description: string;
|
|
15
|
+
evidenceUrls?: string[];
|
|
16
|
+
chatId?: string;
|
|
17
|
+
messageIds?: string[];
|
|
18
|
+
status: FlagStatus;
|
|
19
|
+
priority: 'low' | 'medium' | 'high' | 'critical';
|
|
20
|
+
reviewedAt?: Date;
|
|
21
|
+
reviewedBy?: string;
|
|
22
|
+
reviewNotes?: string;
|
|
23
|
+
actionTaken?: FlagActionTaken;
|
|
24
|
+
warningIssuedAt?: Date;
|
|
25
|
+
suspensionEndsAt?: Date;
|
|
26
|
+
appealedAt?: Date;
|
|
27
|
+
appealNotes?: string;
|
|
28
|
+
appealReviewedAt?: Date;
|
|
29
|
+
appealOutcome?: 'upheld' | 'overturned';
|
|
30
|
+
}
|
|
31
|
+
export interface FlagCreateInput {
|
|
32
|
+
targetType: FlagTargetType;
|
|
33
|
+
targetId: string;
|
|
34
|
+
reason: FlagReason;
|
|
35
|
+
description: string;
|
|
36
|
+
evidenceUrls?: string[];
|
|
37
|
+
chatId?: string;
|
|
38
|
+
messageIds?: string[];
|
|
39
|
+
}
|
|
40
|
+
export interface FlagReviewInput {
|
|
41
|
+
status: FlagStatus;
|
|
42
|
+
actionTaken?: FlagActionTaken;
|
|
43
|
+
reviewNotes?: string;
|
|
44
|
+
warningMessage?: string;
|
|
45
|
+
suspensionDays?: number;
|
|
46
|
+
}
|
|
47
|
+
export interface FlagStats {
|
|
48
|
+
totalFlags: number;
|
|
49
|
+
pendingFlags: number;
|
|
50
|
+
flagsThisWeek: number;
|
|
51
|
+
flagsThisMonth: number;
|
|
52
|
+
byReason: Record<FlagReason, number>;
|
|
53
|
+
byStatus: Record<FlagStatus, number>;
|
|
54
|
+
}
|
|
55
|
+
export interface AccountFlagSummary {
|
|
56
|
+
accountId: string;
|
|
57
|
+
totalFlagsReceived: number;
|
|
58
|
+
confirmedFlagsCount: number;
|
|
59
|
+
warningsCount: number;
|
|
60
|
+
suspensionsCount: number;
|
|
61
|
+
isBlocked: boolean;
|
|
62
|
+
blockedAt?: Date;
|
|
63
|
+
blockReason?: string;
|
|
64
|
+
lastFlagAt?: Date;
|
|
65
|
+
recentFlags: Flag[];
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=flag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flag.d.ts","sourceRoot":"","sources":["../../src/types/flag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flag.js","sourceRoot":"","sources":["../../src/types/flag.ts"],"names":[],"mappings":"AAAA,4CAA4C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './account';
|
|
2
|
+
export * from './admin';
|
|
3
|
+
export * from './api';
|
|
4
|
+
export * from './chat';
|
|
5
|
+
export * from './common';
|
|
6
|
+
export * from './company';
|
|
7
|
+
export * from './flag';
|
|
8
|
+
export * from './marketplace';
|
|
9
|
+
export * from './match';
|
|
10
|
+
export * from './payment';
|
|
11
|
+
export * from './policy';
|
|
12
|
+
export * from './profile';
|
|
13
|
+
export * from './verification';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// QalbMatch Shared Types
|
|
2
|
+
// All shared type definitions for backend, mobile, and admin
|
|
3
|
+
export * from './account';
|
|
4
|
+
export * from './admin';
|
|
5
|
+
export * from './api';
|
|
6
|
+
export * from './chat';
|
|
7
|
+
export * from './common';
|
|
8
|
+
export * from './company';
|
|
9
|
+
export * from './flag';
|
|
10
|
+
export * from './marketplace';
|
|
11
|
+
export * from './match';
|
|
12
|
+
export * from './payment';
|
|
13
|
+
export * from './policy';
|
|
14
|
+
export * from './profile';
|
|
15
|
+
export * from './verification';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,6DAA6D;AAE7D,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
|