@propxchain/core-client 0.2.1 → 0.3.0-canary.24

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 (63) hide show
  1. package/README.md +2 -3
  2. package/dist/auth.d.ts +7 -7
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +5 -5
  5. package/dist/auth.js.map +1 -1
  6. package/dist/canisters/document_storage/document_storage.did.d.ts.map +1 -1
  7. package/dist/canisters/document_storage/document_storage.did.js +90 -21
  8. package/dist/canisters/document_storage/document_storage.did.js.map +1 -1
  9. package/dist/canisters/document_verification/document_verification.did.d.ts.map +1 -1
  10. package/dist/canisters/document_verification/document_verification.did.js +132 -0
  11. package/dist/canisters/document_verification/document_verification.did.js.map +1 -1
  12. package/dist/canisters/email_service/email_service.did.d.ts.map +1 -1
  13. package/dist/canisters/email_service/email_service.did.js +40 -0
  14. package/dist/canisters/email_service/email_service.did.js.map +1 -1
  15. package/dist/canisters/land_registry_integration/land_registry_integration.did.d.ts.map +1 -1
  16. package/dist/canisters/land_registry_integration/land_registry_integration.did.js +186 -12
  17. package/dist/canisters/land_registry_integration/land_registry_integration.did.js.map +1 -1
  18. package/dist/canisters/ledger_manager/ledger_manager.did.d.ts.map +1 -1
  19. package/dist/canisters/ledger_manager/ledger_manager.did.js +55 -0
  20. package/dist/canisters/ledger_manager/ledger_manager.did.js.map +1 -1
  21. package/dist/canisters/transaction_manager/transaction_manager.did.d.ts.map +1 -1
  22. package/dist/canisters/transaction_manager/transaction_manager.did.js +338 -40
  23. package/dist/canisters/transaction_manager/transaction_manager.did.js.map +1 -1
  24. package/dist/canisters/user_management/user_management.did.d.ts.map +1 -1
  25. package/dist/canisters/user_management/user_management.did.js +122 -2
  26. package/dist/canisters/user_management/user_management.did.js.map +1 -1
  27. package/dist/client.js +1 -1
  28. package/dist/client.js.map +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/mock.js +1 -1
  34. package/dist/mock.js.map +1 -1
  35. package/dist/types.d.ts +1 -1
  36. package/dist/types.d.ts.map +1 -1
  37. package/package.json +3 -6
  38. package/src/auth.ts +8 -9
  39. package/src/canisters/document_storage/document_storage.did +82 -12
  40. package/src/canisters/document_storage/document_storage.did.d.ts +86 -9
  41. package/src/canisters/document_storage/document_storage.did.js +128 -19
  42. package/src/canisters/document_verification/document_verification.did +150 -0
  43. package/src/canisters/document_verification/document_verification.did.d.ts +125 -1
  44. package/src/canisters/document_verification/document_verification.did.js +160 -0
  45. package/src/canisters/email_service/email_service.did +49 -0
  46. package/src/canisters/email_service/email_service.did.d.ts +49 -2
  47. package/src/canisters/email_service/email_service.did.js +68 -0
  48. package/src/canisters/land_registry_integration/land_registry_integration.did +118 -19
  49. package/src/canisters/land_registry_integration/land_registry_integration.did.d.ts +89 -19
  50. package/src/canisters/land_registry_integration/land_registry_integration.did.js +213 -11
  51. package/src/canisters/ledger_manager/ledger_manager.did +78 -0
  52. package/src/canisters/ledger_manager/ledger_manager.did.d.ts +66 -0
  53. package/src/canisters/ledger_manager/ledger_manager.did.js +75 -0
  54. package/src/canisters/transaction_manager/transaction_manager.did +438 -47
  55. package/src/canisters/transaction_manager/transaction_manager.did.d.ts +379 -36
  56. package/src/canisters/transaction_manager/transaction_manager.did.js +346 -40
  57. package/src/canisters/user_management/user_management.did +153 -3
  58. package/src/canisters/user_management/user_management.did.d.ts +121 -2
  59. package/src/canisters/user_management/user_management.did.js +166 -6
  60. package/src/client.ts +1 -1
  61. package/src/index.ts +2 -2
  62. package/src/mock.ts +1 -1
  63. package/src/types.ts +1 -1
@@ -2,15 +2,25 @@ import type { Principal } from '@dfinity/principal';
2
2
  import type { ActorMethod } from '@dfinity/agent';
3
3
  import type { IDL } from '@dfinity/candid';
4
4
 
5
+ export type ActorType = { 'agent' : null } |
6
+ { 'systemActor' : null } |
7
+ { 'user' : null };
5
8
  export interface AuditLog {
6
9
  'id' : bigint,
7
10
  'action' : string,
11
+ 'actorType' : ActorType,
12
+ 'delegatedBy' : [] | [Principal],
8
13
  'performedBy' : Principal,
9
14
  'timestamp' : Time,
10
15
  'details' : string,
11
16
  'success' : boolean,
12
17
  'documentId' : bigint,
13
18
  }
19
+ export interface DataMismatch {
20
+ 'field' : string,
21
+ 'found' : string,
22
+ 'expected' : string,
23
+ }
14
24
  export interface DocumentMetadata {
15
25
  'id' : bigint,
16
26
  'documentHash' : string,
@@ -42,10 +52,105 @@ export interface DocumentVerification {
42
52
  'verifiedBy' : Principal,
43
53
  'verificationMethod' : VerificationMethod,
44
54
  }
55
+ export interface LRDocumentSummary {
56
+ 'documentType' : LRDocumentType,
57
+ 'isVerified' : boolean,
58
+ 'isCurrent' : boolean,
59
+ 'landRegistryReference' : [] | [string],
60
+ 'validUntil' : [] | [bigint],
61
+ }
62
+ export type LRDocumentType = { 'LandChargesSearchK16' : null } |
63
+ { 'OfficialSearchCertificate' : null } |
64
+ { 'SearchOfPartCertificate' : null } |
65
+ { 'RegisterExtract' : null } |
66
+ { 'OfficialCopyRegister' : null } |
67
+ { 'LocalAuthoritySearch' : null } |
68
+ { 'OfficialCopyTitlePlan' : null } |
69
+ { 'CompletionConfirmation' : null } |
70
+ { 'AP1Acknowledgement' : null } |
71
+ { 'RequisitionNotice' : null };
72
+ export interface OSCertificateVerification {
73
+ 'priorityStatus' : PriorityStatus,
74
+ 'registerChangedFlag' : [] | [boolean],
75
+ 'advisoryEntries' : Array<string>,
76
+ 'hashVerified' : boolean,
77
+ 'priorityExpiry' : [] | [bigint],
78
+ 'titleNumberMatches' : boolean,
79
+ 'daysRemaining' : [] | [bigint],
80
+ 'verifiedAt' : bigint,
81
+ 'verifiedBy' : Principal,
82
+ }
83
+ export interface OfficialCopyVerification {
84
+ 'documentAge' : bigint,
85
+ 'hashVerified' : boolean,
86
+ 'issuedAt' : bigint,
87
+ 'titleNumberMatches' : boolean,
88
+ 'isCurrent' : boolean,
89
+ 'copyType' : LRDocumentType,
90
+ 'verifiedAt' : bigint,
91
+ 'verifiedBy' : Principal,
92
+ }
93
+ export interface OscarIssue {
94
+ 'field' : [] | [string],
95
+ 'code' : string,
96
+ 'message' : string,
97
+ 'severity' : { 'warning' : null } |
98
+ { 'info' : null } |
99
+ { 'error' : null },
100
+ }
101
+ export interface OscarVerificationDetails {
102
+ 'documentType' : string,
103
+ 'requiresSolicitorReview' : boolean,
104
+ 'extractedData' : string,
105
+ 'issues' : Array<OscarIssue>,
106
+ 'mismatches' : Array<DataMismatch>,
107
+ 'confidence' : bigint,
108
+ 'analysisTimestamp' : Time,
109
+ }
110
+ export interface OscarVerificationInput {
111
+ 'documentType' : string,
112
+ 'requiresSolicitorReview' : boolean,
113
+ 'extractedData' : string,
114
+ 'issues' : Array<OscarIssue>,
115
+ 'mismatches' : Array<DataMismatch>,
116
+ 'confidence' : bigint,
117
+ }
118
+ export type PriorityStatus = { 'Active' : null } |
119
+ { 'ExpiringImminently' : null } |
120
+ { 'Unknown' : null } |
121
+ { 'Expired' : null };
45
122
  export type Result = { 'ok' : DocumentVerification } |
46
123
  { 'err' : string };
124
+ export type Result_1 = { 'ok' : OSCertificateVerification } |
125
+ { 'err' : string };
126
+ export type Result_2 = { 'ok' : OfficialCopyVerification } |
127
+ { 'err' : string };
128
+ export type Result_3 = { 'ok' : bigint } |
129
+ { 'err' : string };
130
+ export type Result_4 = { 'ok' : TransactionVerificationSummary } |
131
+ { 'err' : string };
47
132
  export type Time = bigint;
48
- export type VerificationMethod = { 'passport_dcs' : null } |
133
+ export interface TransactionVerificationSummary {
134
+ 'missingDocuments' : Array<string>,
135
+ 'expiredDocuments' : bigint,
136
+ 'hasOfficialSearch' : boolean,
137
+ 'titleNumber' : string,
138
+ 'allDocumentsVerified' : boolean,
139
+ 'readyForSubmission' : boolean,
140
+ 'readyForCompletion' : boolean,
141
+ 'officialSearchValid' : boolean,
142
+ 'allLRDocumentsCurrent' : boolean,
143
+ 'verifiedDocuments' : bigint,
144
+ 'daysUntilSearchExpiry' : [] | [bigint],
145
+ 'lrDocuments' : Array<LRDocumentSummary>,
146
+ 'officialSearchExpiry' : [] | [bigint],
147
+ 'readyForExchange' : boolean,
148
+ 'unverifiedDocuments' : bigint,
149
+ 'totalDocuments' : bigint,
150
+ 'transactionId' : string,
151
+ }
152
+ export type VerificationMethod = { 'oscar_ai' : OscarVerificationDetails } |
153
+ { 'passport_dcs' : null } |
49
154
  { 'commercial_api' : string } |
50
155
  { 'system_hash_only' : null } |
51
156
  { 'manual_solicitor' : null } |
@@ -70,6 +175,10 @@ export interface _SERVICE {
70
175
  [bigint],
71
176
  Array<DocumentVerification>
72
177
  >,
178
+ 'getOscarVerificationDetails' : ActorMethod<
179
+ [bigint],
180
+ [] | [OscarVerificationDetails]
181
+ >,
73
182
  'getPropertyDocuments' : ActorMethod<[bigint], Array<DocumentMetadata>>,
74
183
  'getRecentAuditLogs' : ActorMethod<[bigint], Array<AuditLog>>,
75
184
  'getStats' : ActorMethod<
@@ -81,12 +190,21 @@ export interface _SERVICE {
81
190
  'totalDocuments' : bigint,
82
191
  }
83
192
  >,
193
+ 'getTransactionVerificationSummary' : ActorMethod<[string, string], Result_4>,
84
194
  'getUnverifiedDocuments' : ActorMethod<[bigint], Array<DocumentMetadata>>,
85
195
  'getVerification' : ActorMethod<[bigint], [] | [DocumentVerification]>,
196
+ 'getVerificationsByTransaction' : ActorMethod<
197
+ [bigint],
198
+ Array<DocumentVerification>
199
+ >,
86
200
  'getVerificationsByVerifier' : ActorMethod<
87
201
  [Principal],
88
202
  Array<DocumentVerification>
89
203
  >,
204
+ 'recordAuditEntry' : ActorMethod<
205
+ [ActorType, [] | [Principal], string, bigint, string, boolean],
206
+ Result_3
207
+ >,
90
208
  'registerDocument' : ActorMethod<
91
209
  [
92
210
  bigint,
@@ -104,8 +222,14 @@ export interface _SERVICE {
104
222
  'setUserManagementCanister' : ActorMethod<[Principal], undefined>,
105
223
  'verifyDocument' : ActorMethod<[bigint], boolean>,
106
224
  'verifyDocumentWithHash' : ActorMethod<[bigint, [] | [string]], Result>,
225
+ 'verifyOfficialCopy' : ActorMethod<[bigint, string, bigint], Result_2>,
226
+ 'verifyOfficialSearchCertificate' : ActorMethod<
227
+ [bigint, string, [] | [string]],
228
+ Result_1
229
+ >,
107
230
  'verifyWithCommercialAPI' : ActorMethod<[bigint, string, string], Result>,
108
231
  'verifyWithDVLA' : ActorMethod<[bigint, string], Result>,
232
+ 'verifyWithOscar' : ActorMethod<[bigint, OscarVerificationInput], Result>,
109
233
  'verifyWithPassportDCS' : ActorMethod<[bigint, string], Result>,
110
234
  }
111
235
  export declare const idlFactory: IDL.InterfaceFactory;
@@ -1,8 +1,15 @@
1
1
  export const idlFactory = ({ IDL }) => {
2
+ const ActorType = IDL.Variant({
3
+ 'agent' : IDL.Null,
4
+ 'systemActor' : IDL.Null,
5
+ 'user' : IDL.Null,
6
+ });
2
7
  const Time = IDL.Int;
3
8
  const AuditLog = IDL.Record({
4
9
  'id' : IDL.Nat,
5
10
  'action' : IDL.Text,
11
+ 'actorType' : ActorType,
12
+ 'delegatedBy' : IDL.Opt(IDL.Principal),
6
13
  'performedBy' : IDL.Principal,
7
14
  'timestamp' : Time,
8
15
  'details' : IDL.Text,
@@ -24,7 +31,32 @@ export const idlFactory = ({ IDL }) => {
24
31
  'uploadedBy' : IDL.Principal,
25
32
  'transactionId' : IDL.Opt(IDL.Nat),
26
33
  });
34
+ const OscarIssue = IDL.Record({
35
+ 'field' : IDL.Opt(IDL.Text),
36
+ 'code' : IDL.Text,
37
+ 'message' : IDL.Text,
38
+ 'severity' : IDL.Variant({
39
+ 'warning' : IDL.Null,
40
+ 'info' : IDL.Null,
41
+ 'error' : IDL.Null,
42
+ }),
43
+ });
44
+ const DataMismatch = IDL.Record({
45
+ 'field' : IDL.Text,
46
+ 'found' : IDL.Text,
47
+ 'expected' : IDL.Text,
48
+ });
49
+ const OscarVerificationDetails = IDL.Record({
50
+ 'documentType' : IDL.Text,
51
+ 'requiresSolicitorReview' : IDL.Bool,
52
+ 'extractedData' : IDL.Text,
53
+ 'issues' : IDL.Vec(OscarIssue),
54
+ 'mismatches' : IDL.Vec(DataMismatch),
55
+ 'confidence' : IDL.Nat,
56
+ 'analysisTimestamp' : Time,
57
+ });
27
58
  const VerificationMethod = IDL.Variant({
59
+ 'oscar_ai' : OscarVerificationDetails,
28
60
  'passport_dcs' : IDL.Null,
29
61
  'commercial_api' : IDL.Text,
30
62
  'system_hash_only' : IDL.Null,
@@ -47,7 +79,93 @@ export const idlFactory = ({ IDL }) => {
47
79
  'verifiedBy' : IDL.Principal,
48
80
  'verificationMethod' : VerificationMethod,
49
81
  });
82
+ const LRDocumentType = IDL.Variant({
83
+ 'LandChargesSearchK16' : IDL.Null,
84
+ 'OfficialSearchCertificate' : IDL.Null,
85
+ 'SearchOfPartCertificate' : IDL.Null,
86
+ 'RegisterExtract' : IDL.Null,
87
+ 'OfficialCopyRegister' : IDL.Null,
88
+ 'LocalAuthoritySearch' : IDL.Null,
89
+ 'OfficialCopyTitlePlan' : IDL.Null,
90
+ 'CompletionConfirmation' : IDL.Null,
91
+ 'AP1Acknowledgement' : IDL.Null,
92
+ 'RequisitionNotice' : IDL.Null,
93
+ });
94
+ const LRDocumentSummary = IDL.Record({
95
+ 'documentType' : LRDocumentType,
96
+ 'isVerified' : IDL.Bool,
97
+ 'isCurrent' : IDL.Bool,
98
+ 'landRegistryReference' : IDL.Opt(IDL.Text),
99
+ 'validUntil' : IDL.Opt(IDL.Int),
100
+ });
101
+ const TransactionVerificationSummary = IDL.Record({
102
+ 'missingDocuments' : IDL.Vec(IDL.Text),
103
+ 'expiredDocuments' : IDL.Nat,
104
+ 'hasOfficialSearch' : IDL.Bool,
105
+ 'titleNumber' : IDL.Text,
106
+ 'allDocumentsVerified' : IDL.Bool,
107
+ 'readyForSubmission' : IDL.Bool,
108
+ 'readyForCompletion' : IDL.Bool,
109
+ 'officialSearchValid' : IDL.Bool,
110
+ 'allLRDocumentsCurrent' : IDL.Bool,
111
+ 'verifiedDocuments' : IDL.Nat,
112
+ 'daysUntilSearchExpiry' : IDL.Opt(IDL.Int),
113
+ 'lrDocuments' : IDL.Vec(LRDocumentSummary),
114
+ 'officialSearchExpiry' : IDL.Opt(IDL.Int),
115
+ 'readyForExchange' : IDL.Bool,
116
+ 'unverifiedDocuments' : IDL.Nat,
117
+ 'totalDocuments' : IDL.Nat,
118
+ 'transactionId' : IDL.Text,
119
+ });
120
+ const Result_4 = IDL.Variant({
121
+ 'ok' : TransactionVerificationSummary,
122
+ 'err' : IDL.Text,
123
+ });
124
+ const Result_3 = IDL.Variant({ 'ok' : IDL.Nat, 'err' : IDL.Text });
50
125
  const Result = IDL.Variant({ 'ok' : DocumentVerification, 'err' : IDL.Text });
126
+ const OfficialCopyVerification = IDL.Record({
127
+ 'documentAge' : IDL.Nat,
128
+ 'hashVerified' : IDL.Bool,
129
+ 'issuedAt' : IDL.Int,
130
+ 'titleNumberMatches' : IDL.Bool,
131
+ 'isCurrent' : IDL.Bool,
132
+ 'copyType' : LRDocumentType,
133
+ 'verifiedAt' : IDL.Int,
134
+ 'verifiedBy' : IDL.Principal,
135
+ });
136
+ const Result_2 = IDL.Variant({
137
+ 'ok' : OfficialCopyVerification,
138
+ 'err' : IDL.Text,
139
+ });
140
+ const PriorityStatus = IDL.Variant({
141
+ 'Active' : IDL.Null,
142
+ 'ExpiringImminently' : IDL.Null,
143
+ 'Unknown' : IDL.Null,
144
+ 'Expired' : IDL.Null,
145
+ });
146
+ const OSCertificateVerification = IDL.Record({
147
+ 'priorityStatus' : PriorityStatus,
148
+ 'registerChangedFlag' : IDL.Opt(IDL.Bool),
149
+ 'advisoryEntries' : IDL.Vec(IDL.Text),
150
+ 'hashVerified' : IDL.Bool,
151
+ 'priorityExpiry' : IDL.Opt(IDL.Int),
152
+ 'titleNumberMatches' : IDL.Bool,
153
+ 'daysRemaining' : IDL.Opt(IDL.Int),
154
+ 'verifiedAt' : IDL.Int,
155
+ 'verifiedBy' : IDL.Principal,
156
+ });
157
+ const Result_1 = IDL.Variant({
158
+ 'ok' : OSCertificateVerification,
159
+ 'err' : IDL.Text,
160
+ });
161
+ const OscarVerificationInput = IDL.Record({
162
+ 'documentType' : IDL.Text,
163
+ 'requiresSolicitorReview' : IDL.Bool,
164
+ 'extractedData' : IDL.Text,
165
+ 'issues' : IDL.Vec(OscarIssue),
166
+ 'mismatches' : IDL.Vec(DataMismatch),
167
+ 'confidence' : IDL.Nat,
168
+ });
51
169
  return IDL.Service({
52
170
  'deleteDocument' : IDL.Func(
53
171
  [IDL.Nat],
@@ -72,6 +190,11 @@ export const idlFactory = ({ IDL }) => {
72
190
  [IDL.Vec(DocumentVerification)],
73
191
  ['query'],
74
192
  ),
193
+ 'getOscarVerificationDetails' : IDL.Func(
194
+ [IDL.Nat],
195
+ [IDL.Opt(OscarVerificationDetails)],
196
+ ['query'],
197
+ ),
75
198
  'getPropertyDocuments' : IDL.Func(
76
199
  [IDL.Nat],
77
200
  [IDL.Vec(DocumentMetadata)],
@@ -90,6 +213,11 @@ export const idlFactory = ({ IDL }) => {
90
213
  ],
91
214
  ['query'],
92
215
  ),
216
+ 'getTransactionVerificationSummary' : IDL.Func(
217
+ [IDL.Text, IDL.Text],
218
+ [Result_4],
219
+ [],
220
+ ),
93
221
  'getUnverifiedDocuments' : IDL.Func(
94
222
  [IDL.Nat],
95
223
  [IDL.Vec(DocumentMetadata)],
@@ -100,11 +228,28 @@ export const idlFactory = ({ IDL }) => {
100
228
  [IDL.Opt(DocumentVerification)],
101
229
  ['query'],
102
230
  ),
231
+ 'getVerificationsByTransaction' : IDL.Func(
232
+ [IDL.Nat],
233
+ [IDL.Vec(DocumentVerification)],
234
+ ['query'],
235
+ ),
103
236
  'getVerificationsByVerifier' : IDL.Func(
104
237
  [IDL.Principal],
105
238
  [IDL.Vec(DocumentVerification)],
106
239
  ['query'],
107
240
  ),
241
+ 'recordAuditEntry' : IDL.Func(
242
+ [
243
+ ActorType,
244
+ IDL.Opt(IDL.Principal),
245
+ IDL.Text,
246
+ IDL.Nat,
247
+ IDL.Text,
248
+ IDL.Bool,
249
+ ],
250
+ [Result_3],
251
+ [],
252
+ ),
108
253
  'registerDocument' : IDL.Func(
109
254
  [
110
255
  IDL.Nat,
@@ -127,12 +272,27 @@ export const idlFactory = ({ IDL }) => {
127
272
  [Result],
128
273
  [],
129
274
  ),
275
+ 'verifyOfficialCopy' : IDL.Func(
276
+ [IDL.Nat, IDL.Text, IDL.Nat],
277
+ [Result_2],
278
+ [],
279
+ ),
280
+ 'verifyOfficialSearchCertificate' : IDL.Func(
281
+ [IDL.Nat, IDL.Text, IDL.Opt(IDL.Text)],
282
+ [Result_1],
283
+ [],
284
+ ),
130
285
  'verifyWithCommercialAPI' : IDL.Func(
131
286
  [IDL.Nat, IDL.Text, IDL.Text],
132
287
  [Result],
133
288
  [],
134
289
  ),
135
290
  'verifyWithDVLA' : IDL.Func([IDL.Nat, IDL.Text], [Result], []),
291
+ 'verifyWithOscar' : IDL.Func(
292
+ [IDL.Nat, OscarVerificationInput],
293
+ [Result],
294
+ [],
295
+ ),
136
296
  'verifyWithPassportDCS' : IDL.Func([IDL.Nat, IDL.Text], [Result], []),
137
297
  });
138
298
  };
@@ -1,33 +1,82 @@
1
+ type Result_1 =
2
+ variant {
3
+ err: text;
4
+ ok: nat;
5
+ };
6
+ type Result =
7
+ variant {
8
+ err: text;
9
+ ok: text;
10
+ };
1
11
  type EmailNotification =
2
12
  record {
3
13
  company: opt text;
4
14
  contactType: ContactType;
5
15
  email: text;
6
16
  id: nat;
17
+ lrNotificationType: opt text;
7
18
  message: text;
8
19
  name: text;
9
20
  partnerType: opt text;
10
21
  phone: opt text;
11
22
  processed: bool;
23
+ propertyAddress: opt text;
12
24
  subject: text;
13
25
  timestamp: int;
26
+ titleNumber: opt text;
27
+ transactionId: opt text;
14
28
  userType: opt text;
15
29
  volume: opt text;
16
30
  website: opt text;
17
31
  };
18
32
  type ContactType =
19
33
  variant {
34
+ email_verification;
35
+ lr_application_registered;
36
+ lr_application_submitted;
37
+ lr_budget_alert;
38
+ lr_official_search_complete;
39
+ lr_requisition_raised;
40
+ lr_search_expiry_warning;
41
+ lr_status_change;
42
+ message_notification;
20
43
  partners;
21
44
  sales;
22
45
  support;
23
46
  };
24
47
  service : {
48
+ checkAndSendExpiryWarnings: (daysThreshold: nat) -> (Result_1);
49
+ disableExpiryWarningTimer: () -> (Result);
50
+ enableExpiryWarningTimer: () -> (Result);
25
51
  formatNotificationAsEmail: (id: nat) -> (opt text) query;
26
52
  getAllNotifications: () -> (vec EmailNotification) query;
53
+ getCycles: () -> (nat) query;
54
+ getExpiryWarningStatus: () ->
55
+ (record {
56
+ lastCheckTime: int;
57
+ timerActive: bool;
58
+ }) query;
59
+ getLandRegistryNotifications: (txnId: text) ->
60
+ (vec EmailNotification) query;
27
61
  getNotification: (id: nat) -> (opt EmailNotification) query;
62
+ getTransactionManagerCanister: () -> (text) query;
28
63
  getUnprocessedCount: () -> (nat) query;
64
+ getUnprocessedLRNotifications: () -> (vec EmailNotification) query;
29
65
  getUnprocessedNotifications: () -> (vec EmailNotification) query;
66
+ getUserManagementCanister: () -> (text) query;
30
67
  markAsProcessed: (id: nat) -> (bool);
68
+ sendBudgetAlert: (recipientEmail: text, recipientName: text, currentSpend:
69
+ nat, budgetLimit: nat, percentUsed: nat) -> (nat);
70
+ sendLandRegistryNotification: (recipientEmail: text, recipientName:
71
+ text, notificationType: text, txnId: text, title: text, propAddress:
72
+ text, details: text) -> (nat);
73
+ setTransactionManagerCanister: (canisterId: text) -> (Result);
74
+ setUserManagementCanister: (canisterId: text) -> (Result);
75
+ submitEmailVerification: (name: text, email: text, verificationToken:
76
+ text) -> (nat);
77
+ submitMessageNotification: (recipientEmail: text, recipientName: text,
78
+ senderName: text, subject: text, messagePreview: text, threadId: text,
79
+ transactionId: text, propertyAddress: text, priority: text) -> (nat);
31
80
  submitPartnerInquiry: (name: text, email: text, company: text, website:
32
81
  text, partnerType: text, message: text) -> (nat);
33
82
  submitSalesInquiry: (name: text, email: text, company: text, phone:
@@ -2,17 +2,29 @@ import type { Principal } from '@dfinity/principal';
2
2
  import type { ActorMethod } from '@dfinity/agent';
3
3
  import type { IDL } from '@dfinity/candid';
4
4
 
5
- export type ContactType = { 'support' : null } |
5
+ export type ContactType = { 'lr_budget_alert' : null } |
6
+ { 'lr_application_submitted' : null } |
7
+ { 'message_notification' : null } |
8
+ { 'support' : null } |
6
9
  { 'partners' : null } |
7
- { 'sales' : null };
10
+ { 'sales' : null } |
11
+ { 'lr_search_expiry_warning' : null } |
12
+ { 'email_verification' : null } |
13
+ { 'lr_official_search_complete' : null } |
14
+ { 'lr_requisition_raised' : null } |
15
+ { 'lr_application_registered' : null } |
16
+ { 'lr_status_change' : null };
8
17
  export interface EmailNotification {
9
18
  'id' : bigint,
10
19
  'userType' : [] | [string],
11
20
  'contactType' : ContactType,
12
21
  'subject' : string,
13
22
  'partnerType' : [] | [string],
23
+ 'titleNumber' : [] | [string],
14
24
  'name' : string,
15
25
  'volume' : [] | [string],
26
+ 'propertyAddress' : [] | [string],
27
+ 'lrNotificationType' : [] | [string],
16
28
  'email' : string,
17
29
  'website' : [] | [string],
18
30
  'company' : [] | [string],
@@ -20,14 +32,49 @@ export interface EmailNotification {
20
32
  'timestamp' : bigint,
21
33
  'phone' : [] | [string],
22
34
  'processed' : boolean,
35
+ 'transactionId' : [] | [string],
23
36
  }
37
+ export type Result = { 'ok' : string } |
38
+ { 'err' : string };
39
+ export type Result_1 = { 'ok' : bigint } |
40
+ { 'err' : string };
24
41
  export interface _SERVICE {
42
+ 'checkAndSendExpiryWarnings' : ActorMethod<[bigint], Result_1>,
43
+ 'disableExpiryWarningTimer' : ActorMethod<[], Result>,
44
+ 'enableExpiryWarningTimer' : ActorMethod<[], Result>,
25
45
  'formatNotificationAsEmail' : ActorMethod<[bigint], [] | [string]>,
26
46
  'getAllNotifications' : ActorMethod<[], Array<EmailNotification>>,
47
+ 'getCycles' : ActorMethod<[], bigint>,
48
+ 'getExpiryWarningStatus' : ActorMethod<
49
+ [],
50
+ { 'timerActive' : boolean, 'lastCheckTime' : bigint }
51
+ >,
52
+ 'getLandRegistryNotifications' : ActorMethod<
53
+ [string],
54
+ Array<EmailNotification>
55
+ >,
27
56
  'getNotification' : ActorMethod<[bigint], [] | [EmailNotification]>,
57
+ 'getTransactionManagerCanister' : ActorMethod<[], string>,
28
58
  'getUnprocessedCount' : ActorMethod<[], bigint>,
59
+ 'getUnprocessedLRNotifications' : ActorMethod<[], Array<EmailNotification>>,
29
60
  'getUnprocessedNotifications' : ActorMethod<[], Array<EmailNotification>>,
61
+ 'getUserManagementCanister' : ActorMethod<[], string>,
30
62
  'markAsProcessed' : ActorMethod<[bigint], boolean>,
63
+ 'sendBudgetAlert' : ActorMethod<
64
+ [string, string, bigint, bigint, bigint],
65
+ bigint
66
+ >,
67
+ 'sendLandRegistryNotification' : ActorMethod<
68
+ [string, string, string, string, string, string, string],
69
+ bigint
70
+ >,
71
+ 'setTransactionManagerCanister' : ActorMethod<[string], Result>,
72
+ 'setUserManagementCanister' : ActorMethod<[string], Result>,
73
+ 'submitEmailVerification' : ActorMethod<[string, string, string], bigint>,
74
+ 'submitMessageNotification' : ActorMethod<
75
+ [string, string, string, string, string, string, string, string, string],
76
+ bigint
77
+ >,
31
78
  'submitPartnerInquiry' : ActorMethod<
32
79
  [string, string, string, string, string, string],
33
80
  bigint
@@ -1,8 +1,19 @@
1
1
  export const idlFactory = ({ IDL }) => {
2
+ const Result_1 = IDL.Variant({ 'ok' : IDL.Nat, 'err' : IDL.Text });
3
+ const Result = IDL.Variant({ 'ok' : IDL.Text, 'err' : IDL.Text });
2
4
  const ContactType = IDL.Variant({
5
+ 'lr_budget_alert' : IDL.Null,
6
+ 'lr_application_submitted' : IDL.Null,
7
+ 'message_notification' : IDL.Null,
3
8
  'support' : IDL.Null,
4
9
  'partners' : IDL.Null,
5
10
  'sales' : IDL.Null,
11
+ 'lr_search_expiry_warning' : IDL.Null,
12
+ 'email_verification' : IDL.Null,
13
+ 'lr_official_search_complete' : IDL.Null,
14
+ 'lr_requisition_raised' : IDL.Null,
15
+ 'lr_application_registered' : IDL.Null,
16
+ 'lr_status_change' : IDL.Null,
6
17
  });
7
18
  const EmailNotification = IDL.Record({
8
19
  'id' : IDL.Nat,
@@ -10,8 +21,11 @@ export const idlFactory = ({ IDL }) => {
10
21
  'contactType' : ContactType,
11
22
  'subject' : IDL.Text,
12
23
  'partnerType' : IDL.Opt(IDL.Text),
24
+ 'titleNumber' : IDL.Opt(IDL.Text),
13
25
  'name' : IDL.Text,
14
26
  'volume' : IDL.Opt(IDL.Text),
27
+ 'propertyAddress' : IDL.Opt(IDL.Text),
28
+ 'lrNotificationType' : IDL.Opt(IDL.Text),
15
29
  'email' : IDL.Text,
16
30
  'website' : IDL.Opt(IDL.Text),
17
31
  'company' : IDL.Opt(IDL.Text),
@@ -19,8 +33,12 @@ export const idlFactory = ({ IDL }) => {
19
33
  'timestamp' : IDL.Int,
20
34
  'phone' : IDL.Opt(IDL.Text),
21
35
  'processed' : IDL.Bool,
36
+ 'transactionId' : IDL.Opt(IDL.Text),
22
37
  });
23
38
  return IDL.Service({
39
+ 'checkAndSendExpiryWarnings' : IDL.Func([IDL.Nat], [Result_1], []),
40
+ 'disableExpiryWarningTimer' : IDL.Func([], [Result], []),
41
+ 'enableExpiryWarningTimer' : IDL.Func([], [Result], []),
24
42
  'formatNotificationAsEmail' : IDL.Func(
25
43
  [IDL.Nat],
26
44
  [IDL.Opt(IDL.Text)],
@@ -31,18 +49,68 @@ export const idlFactory = ({ IDL }) => {
31
49
  [IDL.Vec(EmailNotification)],
32
50
  ['query'],
33
51
  ),
52
+ 'getCycles' : IDL.Func([], [IDL.Nat], ['query']),
53
+ 'getExpiryWarningStatus' : IDL.Func(
54
+ [],
55
+ [IDL.Record({ 'timerActive' : IDL.Bool, 'lastCheckTime' : IDL.Int })],
56
+ ['query'],
57
+ ),
58
+ 'getLandRegistryNotifications' : IDL.Func(
59
+ [IDL.Text],
60
+ [IDL.Vec(EmailNotification)],
61
+ ['query'],
62
+ ),
34
63
  'getNotification' : IDL.Func(
35
64
  [IDL.Nat],
36
65
  [IDL.Opt(EmailNotification)],
37
66
  ['query'],
38
67
  ),
68
+ 'getTransactionManagerCanister' : IDL.Func([], [IDL.Text], ['query']),
39
69
  'getUnprocessedCount' : IDL.Func([], [IDL.Nat], ['query']),
70
+ 'getUnprocessedLRNotifications' : IDL.Func(
71
+ [],
72
+ [IDL.Vec(EmailNotification)],
73
+ ['query'],
74
+ ),
40
75
  'getUnprocessedNotifications' : IDL.Func(
41
76
  [],
42
77
  [IDL.Vec(EmailNotification)],
43
78
  ['query'],
44
79
  ),
80
+ 'getUserManagementCanister' : IDL.Func([], [IDL.Text], ['query']),
45
81
  'markAsProcessed' : IDL.Func([IDL.Nat], [IDL.Bool], []),
82
+ 'sendBudgetAlert' : IDL.Func(
83
+ [IDL.Text, IDL.Text, IDL.Nat, IDL.Nat, IDL.Nat],
84
+ [IDL.Nat],
85
+ [],
86
+ ),
87
+ 'sendLandRegistryNotification' : IDL.Func(
88
+ [IDL.Text, IDL.Text, IDL.Text, IDL.Text, IDL.Text, IDL.Text, IDL.Text],
89
+ [IDL.Nat],
90
+ [],
91
+ ),
92
+ 'setTransactionManagerCanister' : IDL.Func([IDL.Text], [Result], []),
93
+ 'setUserManagementCanister' : IDL.Func([IDL.Text], [Result], []),
94
+ 'submitEmailVerification' : IDL.Func(
95
+ [IDL.Text, IDL.Text, IDL.Text],
96
+ [IDL.Nat],
97
+ [],
98
+ ),
99
+ 'submitMessageNotification' : IDL.Func(
100
+ [
101
+ IDL.Text,
102
+ IDL.Text,
103
+ IDL.Text,
104
+ IDL.Text,
105
+ IDL.Text,
106
+ IDL.Text,
107
+ IDL.Text,
108
+ IDL.Text,
109
+ IDL.Text,
110
+ ],
111
+ [IDL.Nat],
112
+ [],
113
+ ),
46
114
  'submitPartnerInquiry' : IDL.Func(
47
115
  [IDL.Text, IDL.Text, IDL.Text, IDL.Text, IDL.Text, IDL.Text],
48
116
  [IDL.Nat],