@workbuddy/cli-vnext 1.0.57 → 1.0.58

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 (2) hide show
  1. package/dist/index.js +1273 -290
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -11307,8 +11307,8 @@ var operations = [
11307
11307
  },
11308
11308
  {
11309
11309
  operationId: "PublicCrmCustomerController_listContacts",
11310
- displayName: "List contacts for customer",
11311
- description: "List contacts for customer",
11310
+ displayName: "List contacts for customer (contacts + external users)",
11311
+ description: "List contacts for customer (contacts + external users)",
11312
11312
  method: "GET",
11313
11313
  path: "/customers/{customerId}/contacts",
11314
11314
  commandPath: ["crm", "customers", "contacts", "list"],
@@ -11355,12 +11355,304 @@ var operations = [
11355
11355
  ]
11356
11356
  },
11357
11357
  {
11358
- operationId: "PublicCrmCustomerController_listSites",
11359
- displayName: "List sites for customer",
11360
- description: "List sites for customer",
11358
+ operationId: "PublicCrmCustomerController_createContact",
11359
+ displayName: "Create customer contact. login=false creates a contact; login=true invites an external user (email required and must be free via ID validate).",
11360
+ description: "Create customer contact. login=false creates a contact; login=true invites an external user (email required and must be free via ID validate).",
11361
+ method: "POST",
11362
+ path: "/customers/{customerId}/contacts",
11363
+ commandPath: ["crm", "customers", "create-contact"],
11364
+ options: [
11365
+ {
11366
+ name: "customerId",
11367
+ cliName: "customer-id",
11368
+ optionKey: "customerId",
11369
+ source: "path",
11370
+ type: "string",
11371
+ required: true,
11372
+ description: "Customer ID",
11373
+ lookupEndpoint: "/crm/customers"
11374
+ },
11375
+ {
11376
+ name: "firstName",
11377
+ cliName: "first-name",
11378
+ optionKey: "firstName",
11379
+ source: "body",
11380
+ type: "string",
11381
+ required: true,
11382
+ description: ""
11383
+ },
11384
+ {
11385
+ name: "lastName",
11386
+ cliName: "last-name",
11387
+ optionKey: "lastName",
11388
+ source: "body",
11389
+ type: "string",
11390
+ required: true,
11391
+ description: ""
11392
+ },
11393
+ {
11394
+ name: "email",
11395
+ cliName: "email",
11396
+ optionKey: "email",
11397
+ source: "body",
11398
+ type: "string",
11399
+ required: false,
11400
+ description: "Email address",
11401
+ format: "email"
11402
+ },
11403
+ {
11404
+ name: "phone",
11405
+ cliName: "phone",
11406
+ optionKey: "phone",
11407
+ source: "body",
11408
+ type: "string",
11409
+ required: false,
11410
+ description: "Phone number"
11411
+ },
11412
+ {
11413
+ name: "mobile",
11414
+ cliName: "mobile",
11415
+ optionKey: "mobile",
11416
+ source: "body",
11417
+ type: "string",
11418
+ required: false,
11419
+ description: "Mobile phone number"
11420
+ },
11421
+ {
11422
+ name: "title",
11423
+ cliName: "title",
11424
+ optionKey: "title",
11425
+ source: "body",
11426
+ type: "string",
11427
+ required: false,
11428
+ description: ""
11429
+ },
11430
+ {
11431
+ name: "note",
11432
+ cliName: "note",
11433
+ optionKey: "note",
11434
+ source: "body",
11435
+ type: "string",
11436
+ required: false,
11437
+ description: ""
11438
+ },
11439
+ {
11440
+ name: "integrationId",
11441
+ cliName: "integration-id",
11442
+ optionKey: "integrationId",
11443
+ source: "body",
11444
+ type: "string",
11445
+ required: false,
11446
+ description: "integration ID"
11447
+ },
11448
+ {
11449
+ name: "login",
11450
+ cliName: "login",
11451
+ optionKey: "login",
11452
+ source: "body",
11453
+ type: "boolean",
11454
+ required: true,
11455
+ description: ""
11456
+ },
11457
+ {
11458
+ name: "roleId",
11459
+ cliName: "role-id",
11460
+ optionKey: "roleId",
11461
+ source: "body",
11462
+ type: "string",
11463
+ required: false,
11464
+ description: "role ID"
11465
+ },
11466
+ {
11467
+ name: "sendEmail",
11468
+ cliName: "send-email",
11469
+ optionKey: "sendEmail",
11470
+ source: "body",
11471
+ type: "boolean",
11472
+ required: false,
11473
+ description: ""
11474
+ },
11475
+ {
11476
+ name: "raw-body",
11477
+ cliName: "raw-body",
11478
+ optionKey: "rawBody",
11479
+ source: "body",
11480
+ type: "object",
11481
+ required: false,
11482
+ description: "Raw request body JSON (overrides individual fields)"
11483
+ }
11484
+ ],
11485
+ hasRequestBody: true,
11486
+ responseFields: [
11487
+ {
11488
+ name: "item",
11489
+ type: "object"
11490
+ }
11491
+ ]
11492
+ },
11493
+ {
11494
+ operationId: "PublicCrmCustomerController_getContact",
11495
+ displayName: "Get customer contact by ID",
11496
+ description: "Get customer contact by ID",
11361
11497
  method: "GET",
11362
- path: "/customers/{customerId}/sites",
11363
- commandPath: ["crm", "customers", "sites", "list"],
11498
+ path: "/customers/{customerId}/contacts/{contactId}",
11499
+ commandPath: ["crm", "customers", "contacts", "get"],
11500
+ options: [
11501
+ {
11502
+ name: "customerId",
11503
+ cliName: "customer-id",
11504
+ optionKey: "customerId",
11505
+ source: "path",
11506
+ type: "string",
11507
+ required: true,
11508
+ description: "Customer ID",
11509
+ lookupEndpoint: "/crm/customers"
11510
+ },
11511
+ {
11512
+ name: "contactId",
11513
+ cliName: "contact-id",
11514
+ optionKey: "contactId",
11515
+ source: "path",
11516
+ type: "string",
11517
+ required: true,
11518
+ description: "Contact ID",
11519
+ lookupEndpoint: "/crm/contacts"
11520
+ }
11521
+ ],
11522
+ hasRequestBody: false,
11523
+ responseFields: [
11524
+ {
11525
+ name: "item",
11526
+ type: "object"
11527
+ }
11528
+ ]
11529
+ },
11530
+ {
11531
+ operationId: "PublicCrmCustomerController_updateContact",
11532
+ displayName: "Update customer contact",
11533
+ description: "Update customer contact",
11534
+ method: "PATCH",
11535
+ path: "/customers/{customerId}/contacts/{contactId}",
11536
+ commandPath: ["crm", "customers", "contacts", "update-contact"],
11537
+ options: [
11538
+ {
11539
+ name: "customerId",
11540
+ cliName: "customer-id",
11541
+ optionKey: "customerId",
11542
+ source: "path",
11543
+ type: "string",
11544
+ required: true,
11545
+ description: "Customer ID",
11546
+ lookupEndpoint: "/crm/customers"
11547
+ },
11548
+ {
11549
+ name: "contactId",
11550
+ cliName: "contact-id",
11551
+ optionKey: "contactId",
11552
+ source: "path",
11553
+ type: "string",
11554
+ required: true,
11555
+ description: "Contact ID",
11556
+ lookupEndpoint: "/crm/contacts"
11557
+ },
11558
+ {
11559
+ name: "firstName",
11560
+ cliName: "first-name",
11561
+ optionKey: "firstName",
11562
+ source: "body",
11563
+ type: "string",
11564
+ required: false,
11565
+ description: ""
11566
+ },
11567
+ {
11568
+ name: "lastName",
11569
+ cliName: "last-name",
11570
+ optionKey: "lastName",
11571
+ source: "body",
11572
+ type: "string",
11573
+ required: false,
11574
+ description: ""
11575
+ },
11576
+ {
11577
+ name: "email",
11578
+ cliName: "email",
11579
+ optionKey: "email",
11580
+ source: "body",
11581
+ type: "string",
11582
+ required: false,
11583
+ description: "Email address",
11584
+ format: "email"
11585
+ },
11586
+ {
11587
+ name: "phone",
11588
+ cliName: "phone",
11589
+ optionKey: "phone",
11590
+ source: "body",
11591
+ type: "string",
11592
+ required: false,
11593
+ description: "Phone number"
11594
+ },
11595
+ {
11596
+ name: "mobile",
11597
+ cliName: "mobile",
11598
+ optionKey: "mobile",
11599
+ source: "body",
11600
+ type: "string",
11601
+ required: false,
11602
+ description: "Mobile phone number"
11603
+ },
11604
+ {
11605
+ name: "title",
11606
+ cliName: "title",
11607
+ optionKey: "title",
11608
+ source: "body",
11609
+ type: "string",
11610
+ required: false,
11611
+ description: ""
11612
+ },
11613
+ {
11614
+ name: "note",
11615
+ cliName: "note",
11616
+ optionKey: "note",
11617
+ source: "body",
11618
+ type: "string",
11619
+ required: false,
11620
+ description: ""
11621
+ },
11622
+ {
11623
+ name: "integrationId",
11624
+ cliName: "integration-id",
11625
+ optionKey: "integrationId",
11626
+ source: "body",
11627
+ type: "string",
11628
+ required: false,
11629
+ description: "integration ID"
11630
+ },
11631
+ {
11632
+ name: "raw-body",
11633
+ cliName: "raw-body",
11634
+ optionKey: "rawBody",
11635
+ source: "body",
11636
+ type: "object",
11637
+ required: false,
11638
+ description: "Raw request body JSON (overrides individual fields)"
11639
+ }
11640
+ ],
11641
+ hasRequestBody: true,
11642
+ responseFields: [
11643
+ {
11644
+ name: "item",
11645
+ type: "object"
11646
+ }
11647
+ ]
11648
+ },
11649
+ {
11650
+ operationId: "PublicCrmCustomerController_deleteContact",
11651
+ displayName: "Delete customer contact",
11652
+ description: "Delete customer contact",
11653
+ method: "DELETE",
11654
+ path: "/customers/{customerId}/contacts/{contactId}",
11655
+ commandPath: ["crm", "customers", "contacts", "delete-contact"],
11364
11656
  options: [
11365
11657
  {
11366
11658
  name: "customerId",
@@ -11373,82 +11665,721 @@ var operations = [
11373
11665
  lookupEndpoint: "/crm/customers"
11374
11666
  },
11375
11667
  {
11376
- name: "cursor",
11377
- cliName: "cursor",
11378
- optionKey: "cursor",
11379
- source: "query",
11380
- type: "string",
11668
+ name: "contactId",
11669
+ cliName: "contact-id",
11670
+ optionKey: "contactId",
11671
+ source: "path",
11672
+ type: "string",
11673
+ required: true,
11674
+ description: "Contact ID",
11675
+ lookupEndpoint: "/crm/contacts"
11676
+ }
11677
+ ],
11678
+ hasRequestBody: false
11679
+ },
11680
+ {
11681
+ operationId: "PublicCrmCustomerController_inviteContact",
11682
+ displayName: "Promote an existing contact to external user and send invite (CRM)",
11683
+ description: "Promote an existing contact to external user and send invite (CRM)",
11684
+ method: "POST",
11685
+ path: "/customers/{customerId}/contacts/{contactId}/invite",
11686
+ commandPath: ["crm", "customers", "invite-contact"],
11687
+ options: [
11688
+ {
11689
+ name: "customerId",
11690
+ cliName: "customer-id",
11691
+ optionKey: "customerId",
11692
+ source: "path",
11693
+ type: "string",
11694
+ required: true,
11695
+ description: "Customer ID",
11696
+ lookupEndpoint: "/crm/customers"
11697
+ },
11698
+ {
11699
+ name: "contactId",
11700
+ cliName: "contact-id",
11701
+ optionKey: "contactId",
11702
+ source: "path",
11703
+ type: "string",
11704
+ required: true,
11705
+ description: "Contact ID",
11706
+ lookupEndpoint: "/crm/contacts"
11707
+ },
11708
+ {
11709
+ name: "email",
11710
+ cliName: "email",
11711
+ optionKey: "email",
11712
+ source: "body",
11713
+ type: "string",
11714
+ required: false,
11715
+ description: "Email address",
11716
+ format: "email"
11717
+ },
11718
+ {
11719
+ name: "roleId",
11720
+ cliName: "role-id",
11721
+ optionKey: "roleId",
11722
+ source: "body",
11723
+ type: "string",
11724
+ required: false,
11725
+ description: "role ID"
11726
+ },
11727
+ {
11728
+ name: "sendEmail",
11729
+ cliName: "send-email",
11730
+ optionKey: "sendEmail",
11731
+ source: "body",
11732
+ type: "boolean",
11733
+ required: false,
11734
+ description: ""
11735
+ },
11736
+ {
11737
+ name: "raw-body",
11738
+ cliName: "raw-body",
11739
+ optionKey: "rawBody",
11740
+ source: "body",
11741
+ type: "object",
11742
+ required: false,
11743
+ description: "Raw request body JSON (overrides individual fields)"
11744
+ }
11745
+ ],
11746
+ hasRequestBody: true,
11747
+ responseFields: [
11748
+ {
11749
+ name: "item",
11750
+ type: "object"
11751
+ }
11752
+ ]
11753
+ },
11754
+ {
11755
+ operationId: "PublicCrmCustomerController_activateContact",
11756
+ displayName: "Unlock portal login for an external user (CRM)",
11757
+ description: "Unlock portal login for an external user (CRM)",
11758
+ method: "POST",
11759
+ path: "/customers/{customerId}/contacts/{contactId}/activate",
11760
+ commandPath: ["crm", "customers", "activate-contact"],
11761
+ options: [
11762
+ {
11763
+ name: "customerId",
11764
+ cliName: "customer-id",
11765
+ optionKey: "customerId",
11766
+ source: "path",
11767
+ type: "string",
11768
+ required: true,
11769
+ description: "Customer ID",
11770
+ lookupEndpoint: "/crm/customers"
11771
+ },
11772
+ {
11773
+ name: "contactId",
11774
+ cliName: "contact-id",
11775
+ optionKey: "contactId",
11776
+ source: "path",
11777
+ type: "string",
11778
+ required: true,
11779
+ description: "Contact ID",
11780
+ lookupEndpoint: "/crm/contacts"
11781
+ }
11782
+ ],
11783
+ hasRequestBody: false,
11784
+ responseFields: [
11785
+ {
11786
+ name: "item",
11787
+ type: "object"
11788
+ }
11789
+ ]
11790
+ },
11791
+ {
11792
+ operationId: "PublicCrmCustomerController_deactivateContact",
11793
+ displayName: "Lock portal login for an external user (CRM)",
11794
+ description: "Lock portal login for an external user (CRM)",
11795
+ method: "POST",
11796
+ path: "/customers/{customerId}/contacts/{contactId}/deactivate",
11797
+ commandPath: ["crm", "customers", "deactivate-contact"],
11798
+ options: [
11799
+ {
11800
+ name: "customerId",
11801
+ cliName: "customer-id",
11802
+ optionKey: "customerId",
11803
+ source: "path",
11804
+ type: "string",
11805
+ required: true,
11806
+ description: "Customer ID",
11807
+ lookupEndpoint: "/crm/customers"
11808
+ },
11809
+ {
11810
+ name: "contactId",
11811
+ cliName: "contact-id",
11812
+ optionKey: "contactId",
11813
+ source: "path",
11814
+ type: "string",
11815
+ required: true,
11816
+ description: "Contact ID",
11817
+ lookupEndpoint: "/crm/contacts"
11818
+ }
11819
+ ],
11820
+ hasRequestBody: false,
11821
+ responseFields: [
11822
+ {
11823
+ name: "item",
11824
+ type: "object"
11825
+ }
11826
+ ]
11827
+ },
11828
+ {
11829
+ operationId: "PublicCrmCustomerController_listSites",
11830
+ displayName: "List sites for customer",
11831
+ description: "List sites for customer",
11832
+ method: "GET",
11833
+ path: "/customers/{customerId}/sites",
11834
+ commandPath: ["crm", "customers", "sites", "list"],
11835
+ options: [
11836
+ {
11837
+ name: "customerId",
11838
+ cliName: "customer-id",
11839
+ optionKey: "customerId",
11840
+ source: "path",
11841
+ type: "string",
11842
+ required: true,
11843
+ description: "Customer ID",
11844
+ lookupEndpoint: "/crm/customers"
11845
+ },
11846
+ {
11847
+ name: "cursor",
11848
+ cliName: "cursor",
11849
+ optionKey: "cursor",
11850
+ source: "query",
11851
+ type: "string",
11852
+ required: false,
11853
+ description: ""
11854
+ },
11855
+ {
11856
+ name: "limit",
11857
+ cliName: "limit",
11858
+ optionKey: "limit",
11859
+ source: "query",
11860
+ type: "number",
11861
+ required: false,
11862
+ description: ""
11863
+ }
11864
+ ],
11865
+ hasRequestBody: false,
11866
+ responseFields: [
11867
+ {
11868
+ name: "items",
11869
+ type: "array"
11870
+ },
11871
+ {
11872
+ name: "pagination",
11873
+ type: "object"
11874
+ }
11875
+ ]
11876
+ },
11877
+ {
11878
+ operationId: "PublicCrmEmployeeController_list",
11879
+ displayName: "List employees",
11880
+ description: "List employees",
11881
+ method: "GET",
11882
+ path: "/employees",
11883
+ commandPath: ["crm", "employees", "list"],
11884
+ options: [
11885
+ {
11886
+ name: "cursor",
11887
+ cliName: "cursor",
11888
+ optionKey: "cursor",
11889
+ source: "query",
11890
+ type: "string",
11891
+ required: false,
11892
+ description: ""
11893
+ },
11894
+ {
11895
+ name: "limit",
11896
+ cliName: "limit",
11897
+ optionKey: "limit",
11898
+ source: "query",
11899
+ type: "number",
11900
+ required: false,
11901
+ description: ""
11902
+ }
11903
+ ],
11904
+ hasRequestBody: false,
11905
+ responseFields: [
11906
+ {
11907
+ name: "items",
11908
+ type: "array"
11909
+ },
11910
+ {
11911
+ name: "pagination",
11912
+ type: "object"
11913
+ }
11914
+ ]
11915
+ },
11916
+ {
11917
+ operationId: "PublicCrmEmployeeController_getById",
11918
+ displayName: "Get employee by ID",
11919
+ description: "Get employee by ID",
11920
+ method: "GET",
11921
+ path: "/employees/{id}",
11922
+ commandPath: ["crm", "employees", "get"],
11923
+ options: [
11924
+ {
11925
+ name: "id",
11926
+ cliName: "id",
11927
+ optionKey: "id",
11928
+ source: "path",
11929
+ type: "string",
11930
+ required: true,
11931
+ description: "Employee ID"
11932
+ }
11933
+ ],
11934
+ hasRequestBody: false,
11935
+ responseFields: [
11936
+ {
11937
+ name: "item",
11938
+ type: "object"
11939
+ }
11940
+ ]
11941
+ },
11942
+ {
11943
+ operationId: "PublicCrmContractorController_list",
11944
+ displayName: "List contractors",
11945
+ description: "List contractors",
11946
+ method: "GET",
11947
+ path: "/contractors",
11948
+ commandPath: ["crm", "contractors", "list"],
11949
+ options: [
11950
+ {
11951
+ name: "search",
11952
+ cliName: "search",
11953
+ optionKey: "search",
11954
+ source: "query",
11955
+ type: "string",
11956
+ required: false,
11957
+ description: "Search by name, phone, email or legal name"
11958
+ },
11959
+ {
11960
+ name: "cursor",
11961
+ cliName: "cursor",
11962
+ optionKey: "cursor",
11963
+ source: "query",
11964
+ type: "string",
11965
+ required: false,
11966
+ description: ""
11967
+ },
11968
+ {
11969
+ name: "limit",
11970
+ cliName: "limit",
11971
+ optionKey: "limit",
11972
+ source: "query",
11973
+ type: "number",
11974
+ required: false,
11975
+ description: ""
11976
+ }
11977
+ ],
11978
+ hasRequestBody: false,
11979
+ responseFields: [
11980
+ {
11981
+ name: "items",
11982
+ type: "array"
11983
+ },
11984
+ {
11985
+ name: "pagination",
11986
+ type: "object"
11987
+ }
11988
+ ]
11989
+ },
11990
+ {
11991
+ operationId: "PublicCrmContractorController_create",
11992
+ displayName: "Create contractor",
11993
+ description: "Create contractor",
11994
+ method: "POST",
11995
+ path: "/contractors",
11996
+ commandPath: ["crm", "contractors", "create"],
11997
+ options: [
11998
+ {
11999
+ name: "name",
12000
+ cliName: "name",
12001
+ optionKey: "name",
12002
+ source: "body",
12003
+ type: "string",
12004
+ required: true,
12005
+ description: "Display name"
12006
+ },
12007
+ {
12008
+ name: "legalName",
12009
+ cliName: "legal-name",
12010
+ optionKey: "legalName",
12011
+ source: "body",
12012
+ type: "string",
12013
+ required: false,
12014
+ description: ""
12015
+ },
12016
+ {
12017
+ name: "phone",
12018
+ cliName: "phone",
12019
+ optionKey: "phone",
12020
+ source: "body",
12021
+ type: "string",
12022
+ required: false,
12023
+ description: "Phone number"
12024
+ },
12025
+ {
12026
+ name: "email",
12027
+ cliName: "email",
12028
+ optionKey: "email",
12029
+ source: "body",
12030
+ type: "string",
12031
+ required: false,
12032
+ description: "Email address",
12033
+ format: "email"
12034
+ },
12035
+ {
12036
+ name: "website",
12037
+ cliName: "website",
12038
+ optionKey: "website",
12039
+ source: "body",
12040
+ type: "string",
12041
+ required: false,
12042
+ description: ""
12043
+ },
12044
+ {
12045
+ name: "integrationId",
12046
+ cliName: "integration-id",
12047
+ optionKey: "integrationId",
12048
+ source: "body",
12049
+ type: "string",
12050
+ required: false,
12051
+ description: "integration ID"
12052
+ },
12053
+ {
12054
+ name: "address",
12055
+ cliName: "address",
12056
+ optionKey: "address",
12057
+ source: "body",
12058
+ type: "object",
12059
+ required: true,
12060
+ description: ""
12061
+ },
12062
+ {
12063
+ name: "contact",
12064
+ cliName: "contact",
12065
+ optionKey: "contact",
12066
+ source: "body",
12067
+ type: "object",
12068
+ required: true,
12069
+ description: "Inline contact object — alternative to contactId"
12070
+ },
12071
+ {
12072
+ name: "notes",
12073
+ cliName: "notes",
12074
+ optionKey: "notes",
12075
+ source: "body",
12076
+ type: "string",
12077
+ required: false,
12078
+ description: "Additional notes or comments"
12079
+ },
12080
+ {
12081
+ name: "customFields",
12082
+ cliName: "custom-fields",
12083
+ optionKey: "customFields",
12084
+ source: "body",
12085
+ type: "object",
12086
+ required: false,
12087
+ description: "Custom fields as key-value pairs — validated against tenant field definitions"
12088
+ },
12089
+ {
12090
+ name: "socialNetwork",
12091
+ cliName: "social-network",
12092
+ optionKey: "socialNetwork",
12093
+ source: "body",
12094
+ type: "object",
12095
+ required: false,
12096
+ description: ""
12097
+ },
12098
+ {
12099
+ name: "hidePrices",
12100
+ cliName: "hide-prices",
12101
+ optionKey: "hidePrices",
12102
+ source: "body",
12103
+ type: "boolean",
12104
+ required: false,
12105
+ description: ""
12106
+ },
12107
+ {
12108
+ name: "raw-body",
12109
+ cliName: "raw-body",
12110
+ optionKey: "rawBody",
12111
+ source: "body",
12112
+ type: "object",
12113
+ required: false,
12114
+ description: "Raw request body JSON (overrides individual fields)"
12115
+ }
12116
+ ],
12117
+ hasRequestBody: true,
12118
+ responseFields: [
12119
+ {
12120
+ name: "item",
12121
+ type: "object"
12122
+ }
12123
+ ]
12124
+ },
12125
+ {
12126
+ operationId: "PublicCrmContractorController_getById",
12127
+ displayName: "Get contractor by ID",
12128
+ description: "Get contractor by ID",
12129
+ method: "GET",
12130
+ path: "/contractors/{id}",
12131
+ commandPath: ["crm", "contractors", "get"],
12132
+ options: [
12133
+ {
12134
+ name: "id",
12135
+ cliName: "id",
12136
+ optionKey: "id",
12137
+ source: "path",
12138
+ type: "string",
12139
+ required: true,
12140
+ description: "Contractor ID or integration ID"
12141
+ }
12142
+ ],
12143
+ hasRequestBody: false,
12144
+ responseFields: [
12145
+ {
12146
+ name: "item",
12147
+ type: "object"
12148
+ }
12149
+ ]
12150
+ },
12151
+ {
12152
+ operationId: "PublicCrmContractorController_update",
12153
+ displayName: "Update contractor",
12154
+ description: "Update contractor",
12155
+ method: "PATCH",
12156
+ path: "/contractors/{id}",
12157
+ commandPath: ["crm", "contractors", "update"],
12158
+ options: [
12159
+ {
12160
+ name: "id",
12161
+ cliName: "id",
12162
+ optionKey: "id",
12163
+ source: "path",
12164
+ type: "string",
12165
+ required: true,
12166
+ description: "Contractor ID or integration ID"
12167
+ },
12168
+ {
12169
+ name: "name",
12170
+ cliName: "name",
12171
+ optionKey: "name",
12172
+ source: "body",
12173
+ type: "string",
12174
+ required: false,
12175
+ description: "Display name"
12176
+ },
12177
+ {
12178
+ name: "legalName",
12179
+ cliName: "legal-name",
12180
+ optionKey: "legalName",
12181
+ source: "body",
12182
+ type: "string",
12183
+ required: false,
12184
+ description: ""
12185
+ },
12186
+ {
12187
+ name: "phone",
12188
+ cliName: "phone",
12189
+ optionKey: "phone",
12190
+ source: "body",
12191
+ type: "string",
12192
+ required: false,
12193
+ description: "Phone number"
12194
+ },
12195
+ {
12196
+ name: "email",
12197
+ cliName: "email",
12198
+ optionKey: "email",
12199
+ source: "body",
12200
+ type: "string",
12201
+ required: false,
12202
+ description: "Email address",
12203
+ format: "email"
12204
+ },
12205
+ {
12206
+ name: "website",
12207
+ cliName: "website",
12208
+ optionKey: "website",
12209
+ source: "body",
12210
+ type: "string",
12211
+ required: false,
12212
+ description: ""
12213
+ },
12214
+ {
12215
+ name: "integrationId",
12216
+ cliName: "integration-id",
12217
+ optionKey: "integrationId",
12218
+ source: "body",
12219
+ type: "string",
12220
+ required: false,
12221
+ description: "integration ID"
12222
+ },
12223
+ {
12224
+ name: "address",
12225
+ cliName: "address",
12226
+ optionKey: "address",
12227
+ source: "body",
12228
+ type: "object",
12229
+ required: false,
12230
+ description: ""
12231
+ },
12232
+ {
12233
+ name: "primarySite",
12234
+ cliName: "primary-site",
12235
+ optionKey: "primarySite",
12236
+ source: "body",
12237
+ type: "object",
12238
+ required: false,
12239
+ description: ""
12240
+ },
12241
+ {
12242
+ name: "owner",
12243
+ cliName: "owner",
12244
+ optionKey: "owner",
12245
+ source: "body",
12246
+ type: "object",
12247
+ required: false,
12248
+ description: ""
12249
+ },
12250
+ {
12251
+ name: "labels",
12252
+ cliName: "labels",
12253
+ optionKey: "labels",
12254
+ source: "body",
12255
+ type: "array",
12256
+ required: false,
12257
+ description: ""
12258
+ },
12259
+ {
12260
+ name: "notes",
12261
+ cliName: "notes",
12262
+ optionKey: "notes",
12263
+ source: "body",
12264
+ type: "string",
12265
+ required: false,
12266
+ description: "Additional notes or comments"
12267
+ },
12268
+ {
12269
+ name: "customFields",
12270
+ cliName: "custom-fields",
12271
+ optionKey: "customFields",
12272
+ source: "body",
12273
+ type: "object",
12274
+ required: false,
12275
+ description: "Custom fields as key-value pairs — validated against tenant field definitions"
12276
+ },
12277
+ {
12278
+ name: "socialNetwork",
12279
+ cliName: "social-network",
12280
+ optionKey: "socialNetwork",
12281
+ source: "body",
12282
+ type: "object",
12283
+ required: false,
12284
+ description: ""
12285
+ },
12286
+ {
12287
+ name: "zones",
12288
+ cliName: "zones",
12289
+ optionKey: "zones",
12290
+ source: "body",
12291
+ type: "array",
12292
+ required: false,
12293
+ description: ""
12294
+ },
12295
+ {
12296
+ name: "companies",
12297
+ cliName: "companies",
12298
+ optionKey: "companies",
12299
+ source: "body",
12300
+ type: "array",
12301
+ required: false,
12302
+ description: ""
12303
+ },
12304
+ {
12305
+ name: "workCategories",
12306
+ cliName: "work-categories",
12307
+ optionKey: "workCategories",
12308
+ source: "body",
12309
+ type: "array",
11381
12310
  required: false,
11382
12311
  description: ""
11383
12312
  },
11384
12313
  {
11385
- name: "limit",
11386
- cliName: "limit",
11387
- optionKey: "limit",
11388
- source: "query",
11389
- type: "number",
12314
+ name: "scheduling",
12315
+ cliName: "scheduling",
12316
+ optionKey: "scheduling",
12317
+ source: "body",
12318
+ type: "object",
11390
12319
  required: false,
11391
12320
  description: ""
11392
- }
11393
- ],
11394
- hasRequestBody: false,
11395
- responseFields: [
12321
+ },
11396
12322
  {
11397
- name: "items",
11398
- type: "array"
12323
+ name: "dispatching",
12324
+ cliName: "dispatching",
12325
+ optionKey: "dispatching",
12326
+ source: "body",
12327
+ type: "object",
12328
+ required: false,
12329
+ description: ""
11399
12330
  },
11400
12331
  {
11401
- name: "pagination",
11402
- type: "object"
11403
- }
11404
- ]
11405
- },
11406
- {
11407
- operationId: "PublicCrmEmployeeController_list",
11408
- displayName: "List employees",
11409
- description: "List employees",
11410
- method: "GET",
11411
- path: "/employees",
11412
- commandPath: ["crm", "employees", "list"],
11413
- options: [
12332
+ name: "timesheet",
12333
+ cliName: "timesheet",
12334
+ optionKey: "timesheet",
12335
+ source: "body",
12336
+ type: "object",
12337
+ required: false,
12338
+ description: ""
12339
+ },
11414
12340
  {
11415
- name: "cursor",
11416
- cliName: "cursor",
11417
- optionKey: "cursor",
11418
- source: "query",
11419
- type: "string",
12341
+ name: "hidePrices",
12342
+ cliName: "hide-prices",
12343
+ optionKey: "hidePrices",
12344
+ source: "body",
12345
+ type: "boolean",
11420
12346
  required: false,
11421
12347
  description: ""
11422
12348
  },
11423
12349
  {
11424
- name: "limit",
11425
- cliName: "limit",
11426
- optionKey: "limit",
11427
- source: "query",
11428
- type: "number",
12350
+ name: "pricebook",
12351
+ cliName: "pricebook",
12352
+ optionKey: "pricebook",
12353
+ source: "body",
12354
+ type: "object",
11429
12355
  required: false,
11430
12356
  description: ""
12357
+ },
12358
+ {
12359
+ name: "raw-body",
12360
+ cliName: "raw-body",
12361
+ optionKey: "rawBody",
12362
+ source: "body",
12363
+ type: "object",
12364
+ required: false,
12365
+ description: "Raw request body JSON (overrides individual fields)"
11431
12366
  }
11432
12367
  ],
11433
- hasRequestBody: false,
12368
+ hasRequestBody: true,
11434
12369
  responseFields: [
11435
12370
  {
11436
- name: "items",
11437
- type: "array"
11438
- },
11439
- {
11440
- name: "pagination",
12371
+ name: "item",
11441
12372
  type: "object"
11442
12373
  }
11443
12374
  ]
11444
12375
  },
11445
12376
  {
11446
- operationId: "PublicCrmEmployeeController_getById",
11447
- displayName: "Get employee by ID",
11448
- description: "Get employee by ID",
11449
- method: "GET",
11450
- path: "/employees/{id}",
11451
- commandPath: ["crm", "employees", "get"],
12377
+ operationId: "PublicCrmContractorController_updateStatus",
12378
+ displayName: "Update contractor status",
12379
+ description: "Update contractor status",
12380
+ method: "PATCH",
12381
+ path: "/contractors/{id}/status",
12382
+ commandPath: ["crm", "contractors", "status", "update-status"],
11452
12383
  options: [
11453
12384
  {
11454
12385
  name: "id",
@@ -11457,10 +12388,37 @@ var operations = [
11457
12388
  source: "path",
11458
12389
  type: "string",
11459
12390
  required: true,
11460
- description: "Employee ID"
12391
+ description: "Contractor ID or integration ID"
12392
+ },
12393
+ {
12394
+ name: "statusId",
12395
+ cliName: "status-id",
12396
+ optionKey: "statusId",
12397
+ source: "body",
12398
+ type: "string",
12399
+ required: true,
12400
+ description: "status ID"
12401
+ },
12402
+ {
12403
+ name: "note",
12404
+ cliName: "note",
12405
+ optionKey: "note",
12406
+ source: "body",
12407
+ type: "string",
12408
+ required: false,
12409
+ description: ""
12410
+ },
12411
+ {
12412
+ name: "raw-body",
12413
+ cliName: "raw-body",
12414
+ optionKey: "rawBody",
12415
+ source: "body",
12416
+ type: "object",
12417
+ required: false,
12418
+ description: "Raw request body JSON (overrides individual fields)"
11461
12419
  }
11462
12420
  ],
11463
- hasRequestBody: false,
12421
+ hasRequestBody: true,
11464
12422
  responseFields: [
11465
12423
  {
11466
12424
  name: "item",
@@ -11469,21 +12427,21 @@ var operations = [
11469
12427
  ]
11470
12428
  },
11471
12429
  {
11472
- operationId: "PublicCrmContractorController_list",
11473
- displayName: "List contractors",
11474
- description: "List contractors",
12430
+ operationId: "PublicCrmContractorController_listContacts",
12431
+ displayName: "List contacts for contractor (contacts + external users)",
12432
+ description: "List contacts for contractor (contacts + external users)",
11475
12433
  method: "GET",
11476
- path: "/contractors",
11477
- commandPath: ["crm", "contractors", "list"],
12434
+ path: "/contractors/{contractorId}/contacts",
12435
+ commandPath: ["crm", "contractors", "contacts", "list"],
11478
12436
  options: [
11479
12437
  {
11480
- name: "search",
11481
- cliName: "search",
11482
- optionKey: "search",
11483
- source: "query",
12438
+ name: "contractorId",
12439
+ cliName: "contractor-id",
12440
+ optionKey: "contractorId",
12441
+ source: "path",
11484
12442
  type: "string",
11485
- required: false,
11486
- description: "Search by name, phone, email or legal name"
12443
+ required: true,
12444
+ description: "Contractor ID"
11487
12445
  },
11488
12446
  {
11489
12447
  name: "cursor",
@@ -11517,39 +12475,39 @@ var operations = [
11517
12475
  ]
11518
12476
  },
11519
12477
  {
11520
- operationId: "PublicCrmContractorController_create",
11521
- displayName: "Create contractor",
11522
- description: "Create contractor",
12478
+ operationId: "PublicCrmContractorController_createContact",
12479
+ displayName: "Create contractor contact. login=false creates a contact; login=true invites an external user (email required and must be free via ID validate).",
12480
+ description: "Create contractor contact. login=false creates a contact; login=true invites an external user (email required and must be free via ID validate).",
11523
12481
  method: "POST",
11524
- path: "/contractors",
11525
- commandPath: ["crm", "contractors", "create"],
12482
+ path: "/contractors/{contractorId}/contacts",
12483
+ commandPath: ["crm", "contractors", "create-contact"],
11526
12484
  options: [
11527
12485
  {
11528
- name: "name",
11529
- cliName: "name",
11530
- optionKey: "name",
11531
- source: "body",
12486
+ name: "contractorId",
12487
+ cliName: "contractor-id",
12488
+ optionKey: "contractorId",
12489
+ source: "path",
11532
12490
  type: "string",
11533
12491
  required: true,
11534
- description: "Display name"
12492
+ description: "Contractor ID"
11535
12493
  },
11536
12494
  {
11537
- name: "legalName",
11538
- cliName: "legal-name",
11539
- optionKey: "legalName",
12495
+ name: "firstName",
12496
+ cliName: "first-name",
12497
+ optionKey: "firstName",
11540
12498
  source: "body",
11541
12499
  type: "string",
11542
- required: false,
12500
+ required: true,
11543
12501
  description: ""
11544
12502
  },
11545
12503
  {
11546
- name: "phone",
11547
- cliName: "phone",
11548
- optionKey: "phone",
12504
+ name: "lastName",
12505
+ cliName: "last-name",
12506
+ optionKey: "lastName",
11549
12507
  source: "body",
11550
12508
  type: "string",
11551
- required: false,
11552
- description: "Phone number"
12509
+ required: true,
12510
+ description: ""
11553
12511
  },
11554
12512
  {
11555
12513
  name: "email",
@@ -11562,72 +12520,72 @@ var operations = [
11562
12520
  format: "email"
11563
12521
  },
11564
12522
  {
11565
- name: "website",
11566
- cliName: "website",
11567
- optionKey: "website",
12523
+ name: "phone",
12524
+ cliName: "phone",
12525
+ optionKey: "phone",
11568
12526
  source: "body",
11569
12527
  type: "string",
11570
12528
  required: false,
11571
- description: ""
12529
+ description: "Phone number"
11572
12530
  },
11573
12531
  {
11574
- name: "integrationId",
11575
- cliName: "integration-id",
11576
- optionKey: "integrationId",
12532
+ name: "mobile",
12533
+ cliName: "mobile",
12534
+ optionKey: "mobile",
11577
12535
  source: "body",
11578
12536
  type: "string",
11579
12537
  required: false,
11580
- description: "integration ID"
12538
+ description: "Mobile phone number"
11581
12539
  },
11582
12540
  {
11583
- name: "address",
11584
- cliName: "address",
11585
- optionKey: "address",
12541
+ name: "title",
12542
+ cliName: "title",
12543
+ optionKey: "title",
11586
12544
  source: "body",
11587
- type: "object",
11588
- required: true,
12545
+ type: "string",
12546
+ required: false,
11589
12547
  description: ""
11590
12548
  },
11591
12549
  {
11592
- name: "contact",
11593
- cliName: "contact",
11594
- optionKey: "contact",
12550
+ name: "note",
12551
+ cliName: "note",
12552
+ optionKey: "note",
11595
12553
  source: "body",
11596
- type: "object",
11597
- required: true,
11598
- description: "Inline contact object — alternative to contactId"
12554
+ type: "string",
12555
+ required: false,
12556
+ description: ""
11599
12557
  },
11600
12558
  {
11601
- name: "notes",
11602
- cliName: "notes",
11603
- optionKey: "notes",
12559
+ name: "integrationId",
12560
+ cliName: "integration-id",
12561
+ optionKey: "integrationId",
11604
12562
  source: "body",
11605
12563
  type: "string",
11606
12564
  required: false,
11607
- description: "Additional notes or comments"
12565
+ description: "integration ID"
11608
12566
  },
11609
12567
  {
11610
- name: "customFields",
11611
- cliName: "custom-fields",
11612
- optionKey: "customFields",
12568
+ name: "login",
12569
+ cliName: "login",
12570
+ optionKey: "login",
11613
12571
  source: "body",
11614
- type: "object",
11615
- required: false,
11616
- description: "Custom fields as key-value pairs — validated against tenant field definitions"
12572
+ type: "boolean",
12573
+ required: true,
12574
+ description: ""
11617
12575
  },
11618
12576
  {
11619
- name: "socialNetwork",
11620
- cliName: "social-network",
11621
- optionKey: "socialNetwork",
12577
+ name: "roleId",
12578
+ cliName: "role-id",
12579
+ optionKey: "roleId",
11622
12580
  source: "body",
11623
- type: "object",
12581
+ type: "string",
11624
12582
  required: false,
11625
- description: ""
12583
+ description: "role ID"
11626
12584
  },
11627
12585
  {
11628
- name: "hidePrices",
11629
- cliName: "hide-prices",
11630
- optionKey: "hidePrices",
12586
+ name: "sendEmail",
12587
+ cliName: "send-email",
12588
+ optionKey: "sendEmail",
11631
12589
  source: "body",
11632
12590
  type: "boolean",
11633
12591
  required: false,
@@ -11652,21 +12610,31 @@ var operations = [
11652
12610
  ]
11653
12611
  },
11654
12612
  {
11655
- operationId: "PublicCrmContractorController_getById",
11656
- displayName: "Get contractor by ID",
11657
- description: "Get contractor by ID",
12613
+ operationId: "PublicCrmContractorController_getContact",
12614
+ displayName: "Get contractor contact by ID",
12615
+ description: "Get contractor contact by ID",
11658
12616
  method: "GET",
11659
- path: "/contractors/{id}",
11660
- commandPath: ["crm", "contractors", "get"],
12617
+ path: "/contractors/{contractorId}/contacts/{contactId}",
12618
+ commandPath: ["crm", "contractors", "contacts", "get"],
11661
12619
  options: [
11662
12620
  {
11663
- name: "id",
11664
- cliName: "id",
11665
- optionKey: "id",
12621
+ name: "contractorId",
12622
+ cliName: "contractor-id",
12623
+ optionKey: "contractorId",
11666
12624
  source: "path",
11667
12625
  type: "string",
11668
12626
  required: true,
11669
- description: "Contractor ID or integration ID"
12627
+ description: "Contractor ID"
12628
+ },
12629
+ {
12630
+ name: "contactId",
12631
+ cliName: "contact-id",
12632
+ optionKey: "contactId",
12633
+ source: "path",
12634
+ type: "string",
12635
+ required: true,
12636
+ description: "Contact ID",
12637
+ lookupEndpoint: "/crm/contacts"
11670
12638
  }
11671
12639
  ],
11672
12640
  hasRequestBody: false,
@@ -11678,48 +12646,49 @@ var operations = [
11678
12646
  ]
11679
12647
  },
11680
12648
  {
11681
- operationId: "PublicCrmContractorController_update",
11682
- displayName: "Update contractor",
11683
- description: "Update contractor",
12649
+ operationId: "PublicCrmContractorController_updateContact",
12650
+ displayName: "Update contractor contact",
12651
+ description: "Update contractor contact",
11684
12652
  method: "PATCH",
11685
- path: "/contractors/{id}",
11686
- commandPath: ["crm", "contractors", "update"],
12653
+ path: "/contractors/{contractorId}/contacts/{contactId}",
12654
+ commandPath: ["crm", "contractors", "contacts", "update-contact"],
11687
12655
  options: [
11688
12656
  {
11689
- name: "id",
11690
- cliName: "id",
11691
- optionKey: "id",
12657
+ name: "contractorId",
12658
+ cliName: "contractor-id",
12659
+ optionKey: "contractorId",
11692
12660
  source: "path",
11693
12661
  type: "string",
11694
12662
  required: true,
11695
- description: "Contractor ID or integration ID"
12663
+ description: "Contractor ID"
11696
12664
  },
11697
12665
  {
11698
- name: "name",
11699
- cliName: "name",
11700
- optionKey: "name",
11701
- source: "body",
12666
+ name: "contactId",
12667
+ cliName: "contact-id",
12668
+ optionKey: "contactId",
12669
+ source: "path",
11702
12670
  type: "string",
11703
- required: false,
11704
- description: "Display name"
12671
+ required: true,
12672
+ description: "Contact ID",
12673
+ lookupEndpoint: "/crm/contacts"
11705
12674
  },
11706
12675
  {
11707
- name: "legalName",
11708
- cliName: "legal-name",
11709
- optionKey: "legalName",
12676
+ name: "firstName",
12677
+ cliName: "first-name",
12678
+ optionKey: "firstName",
11710
12679
  source: "body",
11711
12680
  type: "string",
11712
12681
  required: false,
11713
12682
  description: ""
11714
12683
  },
11715
12684
  {
11716
- name: "phone",
11717
- cliName: "phone",
11718
- optionKey: "phone",
12685
+ name: "lastName",
12686
+ cliName: "last-name",
12687
+ optionKey: "lastName",
11719
12688
  source: "body",
11720
12689
  type: "string",
11721
12690
  required: false,
11722
- description: "Phone number"
12691
+ description: ""
11723
12692
  },
11724
12693
  {
11725
12694
  name: "email",
@@ -11732,158 +12701,153 @@ var operations = [
11732
12701
  format: "email"
11733
12702
  },
11734
12703
  {
11735
- name: "website",
11736
- cliName: "website",
11737
- optionKey: "website",
12704
+ name: "phone",
12705
+ cliName: "phone",
12706
+ optionKey: "phone",
11738
12707
  source: "body",
11739
12708
  type: "string",
11740
12709
  required: false,
11741
- description: ""
12710
+ description: "Phone number"
11742
12711
  },
11743
12712
  {
11744
- name: "integrationId",
11745
- cliName: "integration-id",
11746
- optionKey: "integrationId",
12713
+ name: "mobile",
12714
+ cliName: "mobile",
12715
+ optionKey: "mobile",
11747
12716
  source: "body",
11748
12717
  type: "string",
11749
12718
  required: false,
11750
- description: "integration ID"
11751
- },
11752
- {
11753
- name: "address",
11754
- cliName: "address",
11755
- optionKey: "address",
11756
- source: "body",
11757
- type: "object",
11758
- required: false,
11759
- description: ""
11760
- },
11761
- {
11762
- name: "primarySite",
11763
- cliName: "primary-site",
11764
- optionKey: "primarySite",
11765
- source: "body",
11766
- type: "object",
11767
- required: false,
11768
- description: ""
12719
+ description: "Mobile phone number"
11769
12720
  },
11770
12721
  {
11771
- name: "owner",
11772
- cliName: "owner",
11773
- optionKey: "owner",
12722
+ name: "title",
12723
+ cliName: "title",
12724
+ optionKey: "title",
11774
12725
  source: "body",
11775
- type: "object",
12726
+ type: "string",
11776
12727
  required: false,
11777
12728
  description: ""
11778
12729
  },
11779
12730
  {
11780
- name: "labels",
11781
- cliName: "labels",
11782
- optionKey: "labels",
12731
+ name: "note",
12732
+ cliName: "note",
12733
+ optionKey: "note",
11783
12734
  source: "body",
11784
- type: "array",
12735
+ type: "string",
11785
12736
  required: false,
11786
12737
  description: ""
11787
12738
  },
11788
12739
  {
11789
- name: "notes",
11790
- cliName: "notes",
11791
- optionKey: "notes",
12740
+ name: "integrationId",
12741
+ cliName: "integration-id",
12742
+ optionKey: "integrationId",
11792
12743
  source: "body",
11793
12744
  type: "string",
11794
12745
  required: false,
11795
- description: "Additional notes or comments"
12746
+ description: "integration ID"
11796
12747
  },
11797
12748
  {
11798
- name: "customFields",
11799
- cliName: "custom-fields",
11800
- optionKey: "customFields",
12749
+ name: "raw-body",
12750
+ cliName: "raw-body",
12751
+ optionKey: "rawBody",
11801
12752
  source: "body",
11802
12753
  type: "object",
11803
12754
  required: false,
11804
- description: "Custom fields as key-value pairs validated against tenant field definitions"
11805
- },
12755
+ description: "Raw request body JSON (overrides individual fields)"
12756
+ }
12757
+ ],
12758
+ hasRequestBody: true,
12759
+ responseFields: [
11806
12760
  {
11807
- name: "socialNetwork",
11808
- cliName: "social-network",
11809
- optionKey: "socialNetwork",
11810
- source: "body",
11811
- type: "object",
11812
- required: false,
11813
- description: ""
11814
- },
12761
+ name: "item",
12762
+ type: "object"
12763
+ }
12764
+ ]
12765
+ },
12766
+ {
12767
+ operationId: "PublicCrmContractorController_deleteContact",
12768
+ displayName: "Delete contractor contact",
12769
+ description: "Delete contractor contact",
12770
+ method: "DELETE",
12771
+ path: "/contractors/{contractorId}/contacts/{contactId}",
12772
+ commandPath: ["crm", "contractors", "contacts", "delete-contact"],
12773
+ options: [
11815
12774
  {
11816
- name: "zones",
11817
- cliName: "zones",
11818
- optionKey: "zones",
11819
- source: "body",
11820
- type: "array",
11821
- required: false,
11822
- description: ""
12775
+ name: "contractorId",
12776
+ cliName: "contractor-id",
12777
+ optionKey: "contractorId",
12778
+ source: "path",
12779
+ type: "string",
12780
+ required: true,
12781
+ description: "Contractor ID"
11823
12782
  },
11824
12783
  {
11825
- name: "companies",
11826
- cliName: "companies",
11827
- optionKey: "companies",
11828
- source: "body",
11829
- type: "array",
11830
- required: false,
11831
- description: ""
11832
- },
12784
+ name: "contactId",
12785
+ cliName: "contact-id",
12786
+ optionKey: "contactId",
12787
+ source: "path",
12788
+ type: "string",
12789
+ required: true,
12790
+ description: "Contact ID",
12791
+ lookupEndpoint: "/crm/contacts"
12792
+ }
12793
+ ],
12794
+ hasRequestBody: false
12795
+ },
12796
+ {
12797
+ operationId: "PublicCrmContractorController_inviteContact",
12798
+ displayName: "Promote an existing contact to external user and send invite (CRM > Contractors)",
12799
+ description: "Promote an existing contact to external user and send invite (CRM > Contractors)",
12800
+ method: "POST",
12801
+ path: "/contractors/{contractorId}/contacts/{contactId}/invite",
12802
+ commandPath: ["crm", "contractors", "invite-contact"],
12803
+ options: [
11833
12804
  {
11834
- name: "workCategories",
11835
- cliName: "work-categories",
11836
- optionKey: "workCategories",
11837
- source: "body",
11838
- type: "array",
11839
- required: false,
11840
- description: ""
12805
+ name: "contractorId",
12806
+ cliName: "contractor-id",
12807
+ optionKey: "contractorId",
12808
+ source: "path",
12809
+ type: "string",
12810
+ required: true,
12811
+ description: "Contractor ID"
11841
12812
  },
11842
12813
  {
11843
- name: "scheduling",
11844
- cliName: "scheduling",
11845
- optionKey: "scheduling",
11846
- source: "body",
11847
- type: "object",
11848
- required: false,
11849
- description: ""
12814
+ name: "contactId",
12815
+ cliName: "contact-id",
12816
+ optionKey: "contactId",
12817
+ source: "path",
12818
+ type: "string",
12819
+ required: true,
12820
+ description: "Contact ID",
12821
+ lookupEndpoint: "/crm/contacts"
11850
12822
  },
11851
12823
  {
11852
- name: "dispatching",
11853
- cliName: "dispatching",
11854
- optionKey: "dispatching",
12824
+ name: "email",
12825
+ cliName: "email",
12826
+ optionKey: "email",
11855
12827
  source: "body",
11856
- type: "object",
12828
+ type: "string",
11857
12829
  required: false,
11858
- description: ""
12830
+ description: "Email address",
12831
+ format: "email"
11859
12832
  },
11860
12833
  {
11861
- name: "timesheet",
11862
- cliName: "timesheet",
11863
- optionKey: "timesheet",
12834
+ name: "roleId",
12835
+ cliName: "role-id",
12836
+ optionKey: "roleId",
11864
12837
  source: "body",
11865
- type: "object",
12838
+ type: "string",
11866
12839
  required: false,
11867
- description: ""
12840
+ description: "role ID"
11868
12841
  },
11869
12842
  {
11870
- name: "hidePrices",
11871
- cliName: "hide-prices",
11872
- optionKey: "hidePrices",
12843
+ name: "sendEmail",
12844
+ cliName: "send-email",
12845
+ optionKey: "sendEmail",
11873
12846
  source: "body",
11874
12847
  type: "boolean",
11875
12848
  required: false,
11876
12849
  description: ""
11877
12850
  },
11878
- {
11879
- name: "pricebook",
11880
- cliName: "pricebook",
11881
- optionKey: "pricebook",
11882
- source: "body",
11883
- type: "object",
11884
- required: false,
11885
- description: ""
11886
- },
11887
12851
  {
11888
12852
  name: "raw-body",
11889
12853
  cliName: "raw-body",
@@ -11903,51 +12867,70 @@ var operations = [
11903
12867
  ]
11904
12868
  },
11905
12869
  {
11906
- operationId: "PublicCrmContractorController_updateStatus",
11907
- displayName: "Update contractor status",
11908
- description: "Update contractor status",
11909
- method: "PATCH",
11910
- path: "/contractors/{id}/status",
11911
- commandPath: ["crm", "contractors", "status", "update-status"],
12870
+ operationId: "PublicCrmContractorController_activateContact",
12871
+ displayName: "Unlock portal login for an external user (CRM > Contractors)",
12872
+ description: "Unlock portal login for an external user (CRM > Contractors)",
12873
+ method: "POST",
12874
+ path: "/contractors/{contractorId}/contacts/{contactId}/activate",
12875
+ commandPath: ["crm", "contractors", "activate-contact"],
11912
12876
  options: [
11913
12877
  {
11914
- name: "id",
11915
- cliName: "id",
11916
- optionKey: "id",
12878
+ name: "contractorId",
12879
+ cliName: "contractor-id",
12880
+ optionKey: "contractorId",
11917
12881
  source: "path",
11918
12882
  type: "string",
11919
12883
  required: true,
11920
- description: "Contractor ID or integration ID"
12884
+ description: "Contractor ID"
11921
12885
  },
11922
12886
  {
11923
- name: "statusId",
11924
- cliName: "status-id",
11925
- optionKey: "statusId",
11926
- source: "body",
12887
+ name: "contactId",
12888
+ cliName: "contact-id",
12889
+ optionKey: "contactId",
12890
+ source: "path",
11927
12891
  type: "string",
11928
12892
  required: true,
11929
- description: "status ID"
11930
- },
12893
+ description: "Contact ID",
12894
+ lookupEndpoint: "/crm/contacts"
12895
+ }
12896
+ ],
12897
+ hasRequestBody: false,
12898
+ responseFields: [
11931
12899
  {
11932
- name: "note",
11933
- cliName: "note",
11934
- optionKey: "note",
11935
- source: "body",
12900
+ name: "item",
12901
+ type: "object"
12902
+ }
12903
+ ]
12904
+ },
12905
+ {
12906
+ operationId: "PublicCrmContractorController_deactivateContact",
12907
+ displayName: "Lock portal login for an external user (CRM > Contractors)",
12908
+ description: "Lock portal login for an external user (CRM > Contractors)",
12909
+ method: "POST",
12910
+ path: "/contractors/{contractorId}/contacts/{contactId}/deactivate",
12911
+ commandPath: ["crm", "contractors", "deactivate-contact"],
12912
+ options: [
12913
+ {
12914
+ name: "contractorId",
12915
+ cliName: "contractor-id",
12916
+ optionKey: "contractorId",
12917
+ source: "path",
11936
12918
  type: "string",
11937
- required: false,
11938
- description: ""
12919
+ required: true,
12920
+ description: "Contractor ID"
11939
12921
  },
11940
12922
  {
11941
- name: "raw-body",
11942
- cliName: "raw-body",
11943
- optionKey: "rawBody",
11944
- source: "body",
11945
- type: "object",
11946
- required: false,
11947
- description: "Raw request body JSON (overrides individual fields)"
12923
+ name: "contactId",
12924
+ cliName: "contact-id",
12925
+ optionKey: "contactId",
12926
+ source: "path",
12927
+ type: "string",
12928
+ required: true,
12929
+ description: "Contact ID",
12930
+ lookupEndpoint: "/crm/contacts"
11948
12931
  }
11949
12932
  ],
11950
- hasRequestBody: true,
12933
+ hasRequestBody: false,
11951
12934
  responseFields: [
11952
12935
  {
11953
12936
  name: "item",