@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.
Files changed (76) hide show
  1. package/dist/constants/index.d.ts +103 -0
  2. package/dist/constants/index.d.ts.map +1 -0
  3. package/dist/constants/index.js +92 -0
  4. package/dist/constants/index.js.map +1 -0
  5. package/dist/constants/marketplace.d.ts +130 -0
  6. package/dist/constants/marketplace.d.ts.map +1 -0
  7. package/dist/constants/marketplace.js +195 -0
  8. package/dist/constants/marketplace.js.map +1 -0
  9. package/dist/i18n/ar.json +368 -0
  10. package/dist/i18n/en.json +369 -0
  11. package/dist/i18n/index.d.ts +20 -0
  12. package/dist/i18n/index.d.ts.map +1 -0
  13. package/dist/i18n/index.js +22 -0
  14. package/dist/i18n/index.js.map +1 -0
  15. package/dist/i18n/ur.json +368 -0
  16. package/dist/index.d.ts +4 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +4 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/types/account.d.ts +55 -0
  21. package/dist/types/account.d.ts.map +1 -0
  22. package/dist/types/account.js +3 -0
  23. package/dist/types/account.js.map +1 -0
  24. package/dist/types/admin.d.ts +70 -0
  25. package/dist/types/admin.d.ts.map +1 -0
  26. package/dist/types/admin.js +117 -0
  27. package/dist/types/admin.js.map +1 -0
  28. package/dist/types/api.d.ts +210 -0
  29. package/dist/types/api.d.ts.map +1 -0
  30. package/dist/types/api.js +5 -0
  31. package/dist/types/api.js.map +1 -0
  32. package/dist/types/chat.d.ts +92 -0
  33. package/dist/types/chat.d.ts.map +1 -0
  34. package/dist/types/chat.js +8 -0
  35. package/dist/types/chat.js.map +1 -0
  36. package/dist/types/common.d.ts +50 -0
  37. package/dist/types/common.d.ts.map +1 -0
  38. package/dist/types/common.js +3 -0
  39. package/dist/types/common.js.map +1 -0
  40. package/dist/types/company.d.ts +110 -0
  41. package/dist/types/company.d.ts.map +1 -0
  42. package/dist/types/company.js +3 -0
  43. package/dist/types/company.js.map +1 -0
  44. package/dist/types/flag.d.ts +67 -0
  45. package/dist/types/flag.d.ts.map +1 -0
  46. package/dist/types/flag.js +3 -0
  47. package/dist/types/flag.js.map +1 -0
  48. package/dist/types/index.d.ts +14 -0
  49. package/dist/types/index.d.ts.map +1 -0
  50. package/dist/types/index.js +16 -0
  51. package/dist/types/index.js.map +1 -0
  52. package/dist/types/marketplace.d.ts +583 -0
  53. package/dist/types/marketplace.d.ts.map +1 -0
  54. package/dist/types/marketplace.js +3 -0
  55. package/dist/types/marketplace.js.map +1 -0
  56. package/dist/types/match.d.ts +71 -0
  57. package/dist/types/match.d.ts.map +1 -0
  58. package/dist/types/match.js +8 -0
  59. package/dist/types/match.js.map +1 -0
  60. package/dist/types/payment.d.ts +176 -0
  61. package/dist/types/payment.d.ts.map +1 -0
  62. package/dist/types/payment.js +112 -0
  63. package/dist/types/payment.js.map +1 -0
  64. package/dist/types/policy.d.ts +347 -0
  65. package/dist/types/policy.d.ts.map +1 -0
  66. package/dist/types/policy.js +52 -0
  67. package/dist/types/policy.js.map +1 -0
  68. package/dist/types/profile.d.ts +196 -0
  69. package/dist/types/profile.d.ts.map +1 -0
  70. package/dist/types/profile.js +3 -0
  71. package/dist/types/profile.js.map +1 -0
  72. package/dist/types/verification.d.ts +57 -0
  73. package/dist/types/verification.d.ts.map +1 -0
  74. package/dist/types/verification.js +3 -0
  75. package/dist/types/verification.js.map +1 -0
  76. 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,5 @@
1
+ // API Response Types
2
+ // Extended response types for specific endpoints
3
+ // Uses existing types from common.ts, payment.ts, profile.ts
4
+ export {};
5
+ //# sourceMappingURL=api.js.map
@@ -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,3 @@
1
+ // Common types and enums
2
+ export {};
3
+ //# sourceMappingURL=common.js.map
@@ -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,3 @@
1
+ // Company types - for marriage consultancies and professionals
2
+ export {};
3
+ //# sourceMappingURL=company.js.map
@@ -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,3 @@
1
+ // Flag types - for reporting and moderation
2
+ export {};
3
+ //# sourceMappingURL=flag.js.map
@@ -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"}