@jsm-mit/sultana-core-motoko-package 0.0.21 → 0.0.23

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.
@@ -81,6 +81,11 @@ type UpdateProfileArgs =
81
81
  whatsAppNumber: opt text;
82
82
  };
83
83
  type TimeMask = vec nat64;
84
+ type StorageSettings =
85
+ record {
86
+ salonStorageLimitBytes: nat;
87
+ videoPendingHoldBytes: nat;
88
+ };
84
89
  type StatsRangeArgs =
85
90
  record {
86
91
  fromTimestampNs: nat64;
@@ -119,6 +124,12 @@ type SearchForSalonServicesArgs =
119
124
  targetCount: opt nat8;
120
125
  timeOffset: int;
121
126
  };
127
+ type SalonStorageUsage =
128
+ record {
129
+ limitBytes: nat;
130
+ pendingHeldBytes: nat;
131
+ usedBytes: nat;
132
+ };
122
133
  type SalonServiceId = text;
123
134
  type SalonService =
124
135
  record {
@@ -141,11 +152,17 @@ type SalonCandidatesEntry =
141
152
  candidateIds: vec principal;
142
153
  salonId: SalonId;
143
154
  };
155
+ type SalonAssetsEntry =
156
+ record {
157
+ assets: vec SalonAsset;
158
+ salonId: SalonId;
159
+ };
144
160
  type SalonAsset =
145
161
  record {
146
162
  assetId: AssetId;
147
163
  createdAt: int;
148
164
  kind: AssetKind;
165
+ sizeBytes: nat;
149
166
  status: AssetStatus;
150
167
  thumbId: AssetId;
151
168
  };
@@ -201,37 +218,37 @@ type Result_3 =
201
218
  err: Error;
202
219
  ok: nat;
203
220
  };
204
- type Result_26 =
221
+ type Result_28 =
205
222
  variant {
206
223
  err: Error;
207
224
  ok: SalonServiceId;
208
225
  };
209
- type Result_25 =
226
+ type Result_27 =
210
227
  variant {
211
228
  err: Error;
212
229
  ok: vec SalonServiceId;
213
230
  };
214
- type Result_24 =
231
+ type Result_26 =
215
232
  variant {
216
233
  err: Error;
217
234
  ok: vec SalonId;
218
235
  };
219
- type Result_23 =
236
+ type Result_25 =
220
237
  variant {
221
238
  err: Error;
222
239
  ok: AppointmentId;
223
240
  };
224
- type Result_22 =
241
+ type Result_24 =
225
242
  variant {
226
243
  err: Error;
227
244
  ok: SalonId;
228
245
  };
229
- type Result_21 =
246
+ type Result_23 =
230
247
  variant {
231
248
  err: Error;
232
249
  ok: ActionQuotaLimits;
233
250
  };
234
- type Result_20 =
251
+ type Result_22 =
235
252
  variant {
236
253
  err: Error;
237
254
  ok: record {
@@ -239,37 +256,37 @@ type Result_20 =
239
256
  trackingSinceNs: nat64;
240
257
  };
241
258
  };
242
- type Result_2 =
259
+ type Result_21 =
243
260
  variant {
244
261
  err: Error;
245
- ok: UserProfile;
262
+ ok: vec DailyScheduleEntry;
246
263
  };
247
- type Result_19 =
264
+ type Result_20 =
248
265
  variant {
249
266
  err: Error;
250
- ok: vec DailyScheduleEntry;
267
+ ok: vec nat64;
251
268
  };
252
- type Result_18 =
269
+ type Result_2 =
253
270
  variant {
254
271
  err: Error;
255
- ok: vec nat64;
272
+ ok: UserProfile;
256
273
  };
257
- type Result_17 =
274
+ type Result_19 =
258
275
  variant {
259
276
  err: Error;
260
277
  ok: TimeMask;
261
278
  };
262
- type Result_16 =
279
+ type Result_18 =
263
280
  variant {
264
281
  err: Error;
265
282
  ok: MigrationData;
266
283
  };
267
- type Result_15 =
284
+ type Result_17 =
268
285
  variant {
269
286
  err: Error;
270
287
  ok: vec Appointment;
271
288
  };
272
- type Result_14 =
289
+ type Result_16 =
273
290
  variant {
274
291
  err: Error;
275
292
  ok: record {
@@ -278,26 +295,36 @@ type Result_14 =
278
295
  updateThresholdMs: nat;
279
296
  };
280
297
  };
281
- type Result_13 =
298
+ type Result_15 =
282
299
  variant {
283
300
  err: Error;
284
301
  ok: vec SalonAsset;
285
302
  };
286
- type Result_12 =
303
+ type Result_14 =
304
+ variant {
305
+ err: Error;
306
+ ok: SalonStorageUsage;
307
+ };
308
+ type Result_13 =
287
309
  variant {
288
310
  err: Error;
289
311
  ok: vec Salon;
290
312
  };
291
- type Result_11 =
313
+ type Result_12 =
292
314
  variant {
293
315
  err: Error;
294
316
  ok: vec ServiceTypeId;
295
317
  };
296
- type Result_10 =
318
+ type Result_11 =
297
319
  variant {
298
320
  err: Error;
299
321
  ok: vec OperationStat;
300
322
  };
323
+ type Result_10 =
324
+ variant {
325
+ err: Error;
326
+ ok: StorageSettings;
327
+ };
301
328
  type Result_1 =
302
329
  variant {
303
330
  err: Error;
@@ -335,6 +362,7 @@ type RegisterAssetArgs =
335
362
  assetId: AssetId;
336
363
  kind: AssetKind;
337
364
  salonId: SalonId;
365
+ sizeBytes: nat;
338
366
  targetSalonServiceId: opt SalonServiceId;
339
367
  thumbId: AssetId;
340
368
  user: principal;
@@ -377,6 +405,7 @@ type MigrationQueryArgs =
377
405
  type MigrationEntity =
378
406
  variant {
379
407
  Appointments;
408
+ SalonAssets;
380
409
  SalonCandidates;
381
410
  SalonServices;
382
411
  Salons;
@@ -388,6 +417,7 @@ type MigrationEntity =
388
417
  type MigrationData =
389
418
  variant {
390
419
  Appointments: vec Appointment;
420
+ SalonAssets: vec SalonAssetsEntry;
391
421
  SalonCandidates: vec SalonCandidatesEntry;
392
422
  SalonServices: vec SalonService;
393
423
  Salons: vec Salon;
@@ -509,6 +539,7 @@ type Coordinate =
509
539
  };
510
540
  type CanUploadAssetArgs =
511
541
  record {
542
+ declaredSizeBytes: opt nat;
512
543
  salonId: SalonId;
513
544
  targetSalonServiceId: opt SalonServiceId;
514
545
  user: principal;
@@ -633,26 +664,26 @@ service : {
633
664
  /// Owner accepts a candidate into the team
634
665
  acceptWorker: (args: AcceptWorkerArgs) -> (Result_1);
635
666
  /// Adds a new service to a specific salon
636
- addSalonService: (args: AddSalonServiceArgs) -> (Result_26);
667
+ addSalonService: (args: AddSalonServiceArgs) -> (Result_28);
637
668
  addServiceType: (id: ServiceTypeId) -> (Result_1);
638
669
  addServiceTypeToSalonService: (args: AddOrRemoveServiceTypeInSalonArgs) ->
639
670
  (Result_1);
640
671
  addWorkerToSalonService: (args: AddOrRemoveWorkerInSalonArgs) -> (Result_1);
641
672
  /// Owner attaches an image from the salon's library to one of that salon's services
642
673
  attachImageToSalonService: (args: AttachOrDetachImageArgs) -> (Result_1);
643
- bookAppointment: (args: BookAppointmentArgs) -> (Result_23);
674
+ bookAppointment: (args: BookAppointmentArgs) -> (Result_25);
644
675
  bulkAcceptWorkers: (args: BulkAcceptWorkersArgs) -> (Result_1);
645
- bulkAddSalonServices: (args: BulkAddSalonServicesArgs) -> (Result_25);
646
- bulkAddServiceTypes: (ids: vec ServiceTypeId) -> (Result_11);
647
- bulkCreateSalons: (args: BulkCreateSalonsArgs) -> (Result_24);
676
+ bulkAddSalonServices: (args: BulkAddSalonServicesArgs) -> (Result_27);
677
+ bulkAddServiceTypes: (ids: vec ServiceTypeId) -> (Result_12);
678
+ bulkCreateSalons: (args: BulkCreateSalonsArgs) -> (Result_26);
648
679
  bulkRequestToJoinSalons: (args: BulkRequestToJoinSalonsArgs) -> (Result_1);
649
680
  bulkSetWeeklyTemplates: (args: BulkSetWeeklyTemplatesArgs) -> (Result_1);
650
681
  /// Asset canister only: pre-upload authorization, asked before any bytes are stored
651
682
  canUploadAsset: (args: CanUploadAssetArgs) -> (Result_1);
652
- cancelAppointment: (appointmentId: AppointmentId) -> (Result_23);
683
+ cancelAppointment: (appointmentId: AppointmentId) -> (Result_25);
653
684
  clearLogs: () -> ();
654
685
  /// Creates a new salon and links it to the caller
655
- createSalon: (args: CreateSalonArgs) -> (Result_22);
686
+ createSalon: (args: CreateSalonArgs) -> (Result_24);
656
687
  createVisit: (args: CreateVisitArgs) -> (Result);
657
688
  /// Superadmin only: raw byte removal on sultana-assets-rust (orphaned-bytes cleanup)
658
689
  deleteAssetRaw: (assetId: text) -> (Result_1);
@@ -663,48 +694,51 @@ service : {
663
694
  deregisterAsset: (args: DeregisterAssetArgs) -> (Result_1);
664
695
  /// Owner detaches an image from a service (the asset stays in the salon's library)
665
696
  detachImageFromSalonService: (args: AttachOrDetachImageArgs) -> (Result_1);
666
- getActionQuotaLimits: () -> (Result_21) query;
697
+ getActionQuotaLimits: () -> (Result_23) query;
667
698
  getAllProfiles: () -> (Result_7) query;
668
699
  getAppointmentsForSalon: (args: GetSalonAppointmentsArgs) ->
669
- (Result_15) query;
700
+ (Result_17) query;
670
701
  getAssetCanisterPrincipal: () -> (Result_4) query;
671
702
  /// Superadmin-only: returns every principal's lifetime (total, productive) call counters plus the tracking window start
672
- getCallActivityStats: () -> (Result_20) query;
703
+ getCallActivityStats: () -> (Result_22) query;
673
704
  /// Returns the list of profiles waiting for approval (Owner only)
674
705
  getCandidatesBySalonId: (salonId: SalonId) -> (Result_7) query;
675
706
  /// Returns a specific daily override if it exists
676
- getDailySchedule: (args: GetDailyScheduleArgs) -> (Result_17) query;
707
+ getDailySchedule: (args: GetDailyScheduleArgs) -> (Result_19) query;
677
708
  /// Returns daily schedules with midnight timestamp in [fromDate, toDate] - for data migration to another canister
678
709
  getDailySchedulesForMigration: (args: DailyScheduleRangeArgs) ->
679
- (Result_19) query;
710
+ (Result_21) query;
680
711
  getDayFromWeeklyTemplate: (args: GetDayFromWeeklyTemplateArgs) ->
681
- (Result_18) query;
712
+ (Result_20) query;
682
713
  /// Returns the effective availability mask (daily override or weekly template fallback)
683
714
  getEffectiveMaskForSalon: (args: GetEffectiveMaskForSalonArgs) ->
684
- (Result_17) query;
715
+ (Result_19) query;
685
716
  /// Returns the highest migrationId for the given entity (= total number of records ever created)
686
717
  getLastMigrationId: (entity: MigrationEntity) -> (Result_3) query;
687
718
  getLoggingEnabled: () -> (Result_1) query;
688
719
  getLogs: () -> (text) query;
689
720
  /// Returns a page of migration data for the given entity and id range [from, to]
690
- getMigrationData: (args: MigrationQueryArgs) -> (Result_16) query;
691
- getMyAppointments: () -> (Result_15) query;
721
+ getMigrationData: (args: MigrationQueryArgs) -> (Result_18) query;
722
+ getMyAppointments: () -> (Result_17) query;
692
723
  getMyProfile: () -> (Result_2) query;
693
724
  /// Returns the list of salons owned by the currently logged-in owner (uses the index)
694
- getMySalons: () -> (Result_12) query;
725
+ getMySalons: () -> (Result_13) query;
695
726
  getMyWorkerAppointments: (args: GetMyWorkerAppointmentsArgs) ->
696
- (Result_15) query;
727
+ (Result_17) query;
697
728
  /// Whether the one-way production switch has been flipped
698
729
  getProdMode: () -> (bool) query;
699
- getReportSettings: () -> (Result_14) query;
730
+ getReportSettings: () -> (Result_16) query;
700
731
  /// Returns the salon's asset library (readable only by the salon's current owner)
701
- getSalonAssets: (salonId: SalonId) -> (Result_13) query;
732
+ getSalonAssets: (salonId: SalonId) -> (Result_15) query;
702
733
  /// Returns the list of salon services by salon ID (owner view)
703
734
  getSalonServicesBySalonId: (salonId: SalonId) -> (Result_5) query;
704
- getSalonsForWorker: () -> (Result_12) query;
705
- getServiceTypes: () -> (Result_11) query;
735
+ /// Returns the salon's storage-quota snapshot (readable only by the salon's current owner)
736
+ getSalonStorageUsage: (salonId: SalonId) -> (Result_14) query;
737
+ getSalonsForWorker: () -> (Result_13) query;
738
+ getServiceTypes: () -> (Result_12) query;
706
739
  /// Superadmin-only: returns every recorded operation stat whose timestamp falls in [fromTimestampNs, toTimestampNs]
707
- getStatsForDateRange: (args: StatsRangeArgs) -> (Result_10) query;
740
+ getStatsForDateRange: (args: StatsRangeArgs) -> (Result_11) query;
741
+ getStorageSettings: () -> (Result_10) query;
708
742
  getSystemAdmin: () -> (Result_4) query;
709
743
  getVisit: (visitId: VisitId) -> (Result_9) query;
710
744
  getVisitHistory: (visitId: VisitId) -> (Result_8) query;
@@ -754,7 +788,9 @@ service : {
754
788
  setProdMode: () -> (Result_1);
755
789
  setReportBatchSize: (size: nat) -> (Result_3);
756
790
  setReportThreshold: (args: SetReportThresholdArgs) -> (Result_3);
791
+ setSalonStorageLimit: (newLimitBytes: nat) -> (Result_3);
757
792
  setSystemAdmin: (newAdmin: opt principal) -> (Result_4);
793
+ setVideoPendingHold: (newHoldBytes: nat) -> (Result_3);
758
794
  setWeeklyTemplate: (args: SetWeeklyTemplateArgs) -> (Result_1);
759
795
  /// Superadmin only, TEST TOOL (traps once isProd): runs assets-rust's stale-reservation
760
796
  /// sweep now, with a TTL override — same code path its hourly timer drives
@@ -98,6 +98,7 @@ export interface CallActivityEntry {
98
98
  export interface CanUploadAssetArgs {
99
99
  'user' : Principal,
100
100
  'targetSalonServiceId' : [] | [SalonServiceId],
101
+ 'declaredSizeBytes' : [] | [bigint],
101
102
  'salonId' : SalonId,
102
103
  }
103
104
  export interface Coordinate { 'lat' : number, 'lng' : number }
@@ -190,7 +191,8 @@ export type MigrationData = { 'Visits' : Array<Visit> } |
190
191
  { 'Appointments' : Array<Appointment> } |
191
192
  { 'WeeklyTemplates' : Array<WeeklyTemplate> } |
192
193
  { 'SalonServices' : Array<SalonService> } |
193
- { 'WorkerRelationships' : Array<WorkerRelationship> };
194
+ { 'WorkerRelationships' : Array<WorkerRelationship> } |
195
+ { 'SalonAssets' : Array<SalonAssetsEntry> };
194
196
  export type MigrationEntity = { 'Visits' : null } |
195
197
  { 'SalonCandidates' : null } |
196
198
  { 'UserProfiles' : null } |
@@ -198,7 +200,8 @@ export type MigrationEntity = { 'Visits' : null } |
198
200
  { 'Appointments' : null } |
199
201
  { 'WeeklyTemplates' : null } |
200
202
  { 'SalonServices' : null } |
201
- { 'WorkerRelationships' : null };
203
+ { 'WorkerRelationships' : null } |
204
+ { 'SalonAssets' : null };
202
205
  export interface MigrationQueryArgs {
203
206
  'to' : bigint,
204
207
  'entity' : MigrationEntity,
@@ -231,6 +234,7 @@ export interface RegisterAssetArgs {
231
234
  'kind' : AssetKind,
232
235
  'user' : Principal,
233
236
  'targetSalonServiceId' : [] | [SalonServiceId],
237
+ 'sizeBytes' : bigint,
234
238
  'salonId' : SalonId,
235
239
  }
236
240
  export interface RegisterPendingAssetArgs {
@@ -255,15 +259,19 @@ export type Result = { 'ok' : VisitId } |
255
259
  { 'err' : Error };
256
260
  export type Result_1 = { 'ok' : boolean } |
257
261
  { 'err' : Error };
258
- export type Result_10 = { 'ok' : Array<OperationStat> } |
262
+ export type Result_10 = { 'ok' : StorageSettings } |
259
263
  { 'err' : Error };
260
- export type Result_11 = { 'ok' : Array<ServiceTypeId> } |
264
+ export type Result_11 = { 'ok' : Array<OperationStat> } |
261
265
  { 'err' : Error };
262
- export type Result_12 = { 'ok' : Array<Salon> } |
266
+ export type Result_12 = { 'ok' : Array<ServiceTypeId> } |
263
267
  { 'err' : Error };
264
- export type Result_13 = { 'ok' : Array<SalonAsset> } |
268
+ export type Result_13 = { 'ok' : Array<Salon> } |
265
269
  { 'err' : Error };
266
- export type Result_14 = {
270
+ export type Result_14 = { 'ok' : SalonStorageUsage } |
271
+ { 'err' : Error };
272
+ export type Result_15 = { 'ok' : Array<SalonAsset> } |
273
+ { 'err' : Error };
274
+ export type Result_16 = {
267
275
  'ok' : {
268
276
  'queryThresholdMs' : bigint,
269
277
  'updateThresholdMs' : bigint,
@@ -271,33 +279,33 @@ export type Result_14 = {
271
279
  }
272
280
  } |
273
281
  { 'err' : Error };
274
- export type Result_15 = { 'ok' : Array<Appointment> } |
282
+ export type Result_17 = { 'ok' : Array<Appointment> } |
275
283
  { 'err' : Error };
276
- export type Result_16 = { 'ok' : MigrationData } |
284
+ export type Result_18 = { 'ok' : MigrationData } |
277
285
  { 'err' : Error };
278
- export type Result_17 = { 'ok' : TimeMask } |
286
+ export type Result_19 = { 'ok' : TimeMask } |
279
287
  { 'err' : Error };
280
- export type Result_18 = { 'ok' : BigUint64Array | bigint[] } |
288
+ export type Result_2 = { 'ok' : UserProfile } |
281
289
  { 'err' : Error };
282
- export type Result_19 = { 'ok' : Array<DailyScheduleEntry> } |
290
+ export type Result_20 = { 'ok' : BigUint64Array | bigint[] } |
283
291
  { 'err' : Error };
284
- export type Result_2 = { 'ok' : UserProfile } |
292
+ export type Result_21 = { 'ok' : Array<DailyScheduleEntry> } |
285
293
  { 'err' : Error };
286
- export type Result_20 = {
294
+ export type Result_22 = {
287
295
  'ok' : { 'entries' : Array<CallActivityEntry>, 'trackingSinceNs' : bigint }
288
296
  } |
289
297
  { 'err' : Error };
290
- export type Result_21 = { 'ok' : ActionQuotaLimits } |
298
+ export type Result_23 = { 'ok' : ActionQuotaLimits } |
291
299
  { 'err' : Error };
292
- export type Result_22 = { 'ok' : SalonId } |
300
+ export type Result_24 = { 'ok' : SalonId } |
293
301
  { 'err' : Error };
294
- export type Result_23 = { 'ok' : AppointmentId } |
302
+ export type Result_25 = { 'ok' : AppointmentId } |
295
303
  { 'err' : Error };
296
- export type Result_24 = { 'ok' : Array<SalonId> } |
304
+ export type Result_26 = { 'ok' : Array<SalonId> } |
297
305
  { 'err' : Error };
298
- export type Result_25 = { 'ok' : Array<SalonServiceId> } |
306
+ export type Result_27 = { 'ok' : Array<SalonServiceId> } |
299
307
  { 'err' : Error };
300
- export type Result_26 = { 'ok' : SalonServiceId } |
308
+ export type Result_28 = { 'ok' : SalonServiceId } |
301
309
  { 'err' : Error };
302
310
  export type Result_3 = { 'ok' : bigint } |
303
311
  { 'err' : Error };
@@ -332,6 +340,11 @@ export interface SalonAsset {
332
340
  'assetId' : AssetId,
333
341
  'kind' : AssetKind,
334
342
  'createdAt' : bigint,
343
+ 'sizeBytes' : bigint,
344
+ }
345
+ export interface SalonAssetsEntry {
346
+ 'assets' : Array<SalonAsset>,
347
+ 'salonId' : SalonId,
335
348
  }
336
349
  export interface SalonCandidatesEntry {
337
350
  'candidateIds' : Array<Principal>,
@@ -353,6 +366,11 @@ export interface SalonService {
353
366
  'images' : Array<ImageRef>,
354
367
  }
355
368
  export type SalonServiceId = string;
369
+ export interface SalonStorageUsage {
370
+ 'pendingHeldBytes' : bigint,
371
+ 'limitBytes' : bigint,
372
+ 'usedBytes' : bigint,
373
+ }
356
374
  export interface SearchForSalonServicesArgs {
357
375
  'startTimeUTC' : bigint,
358
376
  'geohashes6' : Array<Geohash>,
@@ -382,6 +400,10 @@ export interface StatsRangeArgs {
382
400
  'fromTimestampNs' : bigint,
383
401
  'toTimestampNs' : bigint,
384
402
  }
403
+ export interface StorageSettings {
404
+ 'salonStorageLimitBytes' : bigint,
405
+ 'videoPendingHoldBytes' : bigint,
406
+ }
385
407
  export type TimeMask = BigUint64Array | bigint[];
386
408
  export interface UpdateProfileArgs {
387
409
  'whatsAppNumber' : [] | [string],
@@ -460,7 +482,7 @@ export interface _SERVICE {
460
482
  /**
461
483
  * / Adds a new service to a specific salon
462
484
  */
463
- 'addSalonService' : ActorMethod<[AddSalonServiceArgs], Result_26>,
485
+ 'addSalonService' : ActorMethod<[AddSalonServiceArgs], Result_28>,
464
486
  'addServiceType' : ActorMethod<[ServiceTypeId], Result_1>,
465
487
  'addServiceTypeToSalonService' : ActorMethod<
466
488
  [AddOrRemoveServiceTypeInSalonArgs],
@@ -477,11 +499,11 @@ export interface _SERVICE {
477
499
  [AttachOrDetachImageArgs],
478
500
  Result_1
479
501
  >,
480
- 'bookAppointment' : ActorMethod<[BookAppointmentArgs], Result_23>,
502
+ 'bookAppointment' : ActorMethod<[BookAppointmentArgs], Result_25>,
481
503
  'bulkAcceptWorkers' : ActorMethod<[BulkAcceptWorkersArgs], Result_1>,
482
- 'bulkAddSalonServices' : ActorMethod<[BulkAddSalonServicesArgs], Result_25>,
483
- 'bulkAddServiceTypes' : ActorMethod<[Array<ServiceTypeId>], Result_11>,
484
- 'bulkCreateSalons' : ActorMethod<[BulkCreateSalonsArgs], Result_24>,
504
+ 'bulkAddSalonServices' : ActorMethod<[BulkAddSalonServicesArgs], Result_27>,
505
+ 'bulkAddServiceTypes' : ActorMethod<[Array<ServiceTypeId>], Result_12>,
506
+ 'bulkCreateSalons' : ActorMethod<[BulkCreateSalonsArgs], Result_26>,
485
507
  'bulkRequestToJoinSalons' : ActorMethod<
486
508
  [BulkRequestToJoinSalonsArgs],
487
509
  Result_1
@@ -494,12 +516,12 @@ export interface _SERVICE {
494
516
  * / Asset canister only: pre-upload authorization, asked before any bytes are stored
495
517
  */
496
518
  'canUploadAsset' : ActorMethod<[CanUploadAssetArgs], Result_1>,
497
- 'cancelAppointment' : ActorMethod<[AppointmentId], Result_23>,
519
+ 'cancelAppointment' : ActorMethod<[AppointmentId], Result_25>,
498
520
  'clearLogs' : ActorMethod<[], undefined>,
499
521
  /**
500
522
  * / Creates a new salon and links it to the caller
501
523
  */
502
- 'createSalon' : ActorMethod<[CreateSalonArgs], Result_22>,
524
+ 'createSalon' : ActorMethod<[CreateSalonArgs], Result_24>,
503
525
  'createVisit' : ActorMethod<[CreateVisitArgs], Result>,
504
526
  /**
505
527
  * / Superadmin only: raw byte removal on sultana-assets-rust (orphaned-bytes cleanup)
@@ -521,17 +543,17 @@ export interface _SERVICE {
521
543
  [AttachOrDetachImageArgs],
522
544
  Result_1
523
545
  >,
524
- 'getActionQuotaLimits' : ActorMethod<[], Result_21>,
546
+ 'getActionQuotaLimits' : ActorMethod<[], Result_23>,
525
547
  'getAllProfiles' : ActorMethod<[], Result_7>,
526
548
  'getAppointmentsForSalon' : ActorMethod<
527
549
  [GetSalonAppointmentsArgs],
528
- Result_15
550
+ Result_17
529
551
  >,
530
552
  'getAssetCanisterPrincipal' : ActorMethod<[], Result_4>,
531
553
  /**
532
554
  * / Superadmin-only: returns every principal's lifetime (total, productive) call counters plus the tracking window start
533
555
  */
534
- 'getCallActivityStats' : ActorMethod<[], Result_20>,
556
+ 'getCallActivityStats' : ActorMethod<[], Result_22>,
535
557
  /**
536
558
  * / Returns the list of profiles waiting for approval (Owner only)
537
559
  */
@@ -539,24 +561,24 @@ export interface _SERVICE {
539
561
  /**
540
562
  * / Returns a specific daily override if it exists
541
563
  */
542
- 'getDailySchedule' : ActorMethod<[GetDailyScheduleArgs], Result_17>,
564
+ 'getDailySchedule' : ActorMethod<[GetDailyScheduleArgs], Result_19>,
543
565
  /**
544
566
  * / Returns daily schedules with midnight timestamp in [fromDate, toDate] - for data migration to another canister
545
567
  */
546
568
  'getDailySchedulesForMigration' : ActorMethod<
547
569
  [DailyScheduleRangeArgs],
548
- Result_19
570
+ Result_21
549
571
  >,
550
572
  'getDayFromWeeklyTemplate' : ActorMethod<
551
573
  [GetDayFromWeeklyTemplateArgs],
552
- Result_18
574
+ Result_20
553
575
  >,
554
576
  /**
555
577
  * / Returns the effective availability mask (daily override or weekly template fallback)
556
578
  */
557
579
  'getEffectiveMaskForSalon' : ActorMethod<
558
580
  [GetEffectiveMaskForSalonArgs],
559
- Result_17
581
+ Result_19
560
582
  >,
561
583
  /**
562
584
  * / Returns the highest migrationId for the given entity (= total number of records ever created)
@@ -567,36 +589,41 @@ export interface _SERVICE {
567
589
  /**
568
590
  * / Returns a page of migration data for the given entity and id range [from, to]
569
591
  */
570
- 'getMigrationData' : ActorMethod<[MigrationQueryArgs], Result_16>,
571
- 'getMyAppointments' : ActorMethod<[], Result_15>,
592
+ 'getMigrationData' : ActorMethod<[MigrationQueryArgs], Result_18>,
593
+ 'getMyAppointments' : ActorMethod<[], Result_17>,
572
594
  'getMyProfile' : ActorMethod<[], Result_2>,
573
595
  /**
574
596
  * / Returns the list of salons owned by the currently logged-in owner (uses the index)
575
597
  */
576
- 'getMySalons' : ActorMethod<[], Result_12>,
598
+ 'getMySalons' : ActorMethod<[], Result_13>,
577
599
  'getMyWorkerAppointments' : ActorMethod<
578
600
  [GetMyWorkerAppointmentsArgs],
579
- Result_15
601
+ Result_17
580
602
  >,
581
603
  /**
582
604
  * / Whether the one-way production switch has been flipped
583
605
  */
584
606
  'getProdMode' : ActorMethod<[], boolean>,
585
- 'getReportSettings' : ActorMethod<[], Result_14>,
607
+ 'getReportSettings' : ActorMethod<[], Result_16>,
586
608
  /**
587
609
  * / Returns the salon's asset library (readable only by the salon's current owner)
588
610
  */
589
- 'getSalonAssets' : ActorMethod<[SalonId], Result_13>,
611
+ 'getSalonAssets' : ActorMethod<[SalonId], Result_15>,
590
612
  /**
591
613
  * / Returns the list of salon services by salon ID (owner view)
592
614
  */
593
615
  'getSalonServicesBySalonId' : ActorMethod<[SalonId], Result_5>,
594
- 'getSalonsForWorker' : ActorMethod<[], Result_12>,
595
- 'getServiceTypes' : ActorMethod<[], Result_11>,
616
+ /**
617
+ * / Returns the salon's storage-quota snapshot (readable only by the salon's current owner)
618
+ */
619
+ 'getSalonStorageUsage' : ActorMethod<[SalonId], Result_14>,
620
+ 'getSalonsForWorker' : ActorMethod<[], Result_13>,
621
+ 'getServiceTypes' : ActorMethod<[], Result_12>,
596
622
  /**
597
623
  * / Superadmin-only: returns every recorded operation stat whose timestamp falls in [fromTimestampNs, toTimestampNs]
598
624
  */
599
- 'getStatsForDateRange' : ActorMethod<[StatsRangeArgs], Result_10>,
625
+ 'getStatsForDateRange' : ActorMethod<[StatsRangeArgs], Result_11>,
626
+ 'getStorageSettings' : ActorMethod<[], Result_10>,
600
627
  'getSystemAdmin' : ActorMethod<[], Result_4>,
601
628
  'getVisit' : ActorMethod<[VisitId], Result_9>,
602
629
  'getVisitHistory' : ActorMethod<[VisitId], Result_8>,
@@ -683,7 +710,9 @@ export interface _SERVICE {
683
710
  'setProdMode' : ActorMethod<[], Result_1>,
684
711
  'setReportBatchSize' : ActorMethod<[bigint], Result_3>,
685
712
  'setReportThreshold' : ActorMethod<[SetReportThresholdArgs], Result_3>,
713
+ 'setSalonStorageLimit' : ActorMethod<[bigint], Result_3>,
686
714
  'setSystemAdmin' : ActorMethod<[[] | [Principal]], Result_4>,
715
+ 'setVideoPendingHold' : ActorMethod<[bigint], Result_3>,
687
716
  'setWeeklyTemplate' : ActorMethod<[SetWeeklyTemplateArgs], Result_1>,
688
717
  /**
689
718
  * / Superadmin only, TEST TOOL (traps once isProd): runs assets-rust's stale-reservation