@vindentech/api-client 0.3.0-next.12 → 0.3.0-next.14

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 (29) hide show
  1. package/dist/generated/_all.d.ts +3 -0
  2. package/dist/generated/_all.d.ts.map +1 -1
  3. package/dist/generated/_all.js +3 -0
  4. package/dist/generated/_all.js.map +1 -1
  5. package/dist/generated/_permissions.d.ts +60 -1
  6. package/dist/generated/_permissions.d.ts.map +1 -1
  7. package/dist/generated/_permissions.js +15 -0
  8. package/dist/generated/_permissions.js.map +1 -1
  9. package/dist/generated/employee-assignments/employee-assignments.d.ts +127 -0
  10. package/dist/generated/employee-assignments/employee-assignments.d.ts.map +1 -0
  11. package/dist/generated/employee-assignments/employee-assignments.js +61 -0
  12. package/dist/generated/employee-assignments/employee-assignments.js.map +1 -0
  13. package/dist/generated/index.schemas.d.ts +424 -1
  14. package/dist/generated/index.schemas.d.ts.map +1 -1
  15. package/dist/generated/index.schemas.js +82 -0
  16. package/dist/generated/index.schemas.js.map +1 -1
  17. package/dist/generated/me/me.d.ts +30 -1
  18. package/dist/generated/me/me.d.ts.map +1 -1
  19. package/dist/generated/me/me.js +11 -0
  20. package/dist/generated/me/me.js.map +1 -1
  21. package/dist/generated/organization-members/organization-members.d.ts +134 -0
  22. package/dist/generated/organization-members/organization-members.d.ts.map +1 -0
  23. package/dist/generated/organization-members/organization-members.js +51 -0
  24. package/dist/generated/organization-members/organization-members.js.map +1 -0
  25. package/dist/generated/users/users.d.ts +94 -0
  26. package/dist/generated/users/users.d.ts.map +1 -0
  27. package/dist/generated/users/users.js +52 -0
  28. package/dist/generated/users/users.js.map +1 -0
  29. package/package.json +1 -1
@@ -987,6 +987,83 @@ export interface UpdateOrganizationDto {
987
987
  preferredWarehouseId?: string;
988
988
  metadata?: UpdateOrganizationDtoMetadata;
989
989
  }
990
+ export interface OrganizationMemberDto {
991
+ /** Keycloak subject of the member. Within one organization this identifies the membership — it is the `memberId` path segment on the member routes. */
992
+ sub: string;
993
+ organizationId: string;
994
+ /** Role the user holds in this organization. New memberships carry one of the organization roles; rows bootstrapped by `/v1/me` can carry any client role the token held. */
995
+ role: string;
996
+ /** When the membership was created (organization_member.created_at). */
997
+ joinedAt: string;
998
+ /**
999
+ * From the member's user_profile row — null until their first `/v1/me` call creates it (an invited user has no profile yet).
1000
+ * @nullable
1001
+ */
1002
+ displayName: string | null;
1003
+ /**
1004
+ * From the member's user_profile row — null until their first `/v1/me` call creates it.
1005
+ * @nullable
1006
+ */
1007
+ email: string | null;
1008
+ }
1009
+ export type AddMemberDtoRole = typeof AddMemberDtoRole[keyof typeof AddMemberDtoRole];
1010
+ export declare const AddMemberDtoRole: {
1011
+ readonly 'org-admin': "org-admin";
1012
+ readonly 'org-orders': "org-orders";
1013
+ readonly 'org-billing': "org-billing";
1014
+ readonly 'org-viewer': "org-viewer";
1015
+ readonly owner: "owner";
1016
+ readonly member: "member";
1017
+ };
1018
+ export interface AddMemberDto {
1019
+ /** Keycloak subject of an EXISTING user to bind to this organization. Mutually exclusive with `email`. */
1020
+ userSub?: string;
1021
+ /** Email address to invite. An existing realm user with this address is bound; otherwise a disabled-until-activated user is created and emailed an invite link. Mutually exclusive with `userSub`. */
1022
+ email?: string;
1023
+ role: AddMemberDtoRole;
1024
+ }
1025
+ /**
1026
+ * Outcome of the best-effort Keycloak push made after the database commit. `synced` — the Keycloak side was updated by this call. `failed` — the push was attempted and failed; the database change stands, and re-running the command re-attempts the push. `not_configured` — no push was attempted because no Keycloak sync client is provisioned for the tenant.
1027
+ */
1028
+ export type OrganizationMemberSyncResultDtoKeycloakSyncStatus = typeof OrganizationMemberSyncResultDtoKeycloakSyncStatus[keyof typeof OrganizationMemberSyncResultDtoKeycloakSyncStatus];
1029
+ export declare const OrganizationMemberSyncResultDtoKeycloakSyncStatus: {
1030
+ readonly synced: "synced";
1031
+ readonly failed: "failed";
1032
+ readonly not_configured: "not_configured";
1033
+ };
1034
+ export interface OrganizationMemberSyncResultDto {
1035
+ /** Keycloak subject of the member. Within one organization this identifies the membership — it is the `memberId` path segment on the member routes. */
1036
+ sub: string;
1037
+ organizationId: string;
1038
+ /** Role the user holds in this organization. New memberships carry one of the organization roles; rows bootstrapped by `/v1/me` can carry any client role the token held. */
1039
+ role: string;
1040
+ /** When the membership was created (organization_member.created_at). */
1041
+ joinedAt: string;
1042
+ /**
1043
+ * From the member's user_profile row — null until their first `/v1/me` call creates it (an invited user has no profile yet).
1044
+ * @nullable
1045
+ */
1046
+ displayName: string | null;
1047
+ /**
1048
+ * From the member's user_profile row — null until their first `/v1/me` call creates it.
1049
+ * @nullable
1050
+ */
1051
+ email: string | null;
1052
+ /** Outcome of the best-effort Keycloak push made after the database commit. `synced` — the Keycloak side was updated by this call. `failed` — the push was attempted and failed; the database change stands, and re-running the command re-attempts the push. `not_configured` — no push was attempted because no Keycloak sync client is provisioned for the tenant. */
1053
+ keycloakSyncStatus: OrganizationMemberSyncResultDtoKeycloakSyncStatus;
1054
+ }
1055
+ export type UpdateMemberDtoRole = typeof UpdateMemberDtoRole[keyof typeof UpdateMemberDtoRole];
1056
+ export declare const UpdateMemberDtoRole: {
1057
+ readonly 'org-admin': "org-admin";
1058
+ readonly 'org-orders': "org-orders";
1059
+ readonly 'org-billing': "org-billing";
1060
+ readonly 'org-viewer': "org-viewer";
1061
+ readonly owner: "owner";
1062
+ readonly member: "member";
1063
+ };
1064
+ export interface UpdateMemberDto {
1065
+ role?: UpdateMemberDtoRole;
1066
+ }
990
1067
  export type OrganizationSettingDtoServiceType = typeof OrganizationSettingDtoServiceType[keyof typeof OrganizationSettingDtoServiceType];
991
1068
  export declare const OrganizationSettingDtoServiceType: {
992
1069
  readonly STORAGE: "STORAGE";
@@ -1380,6 +1457,13 @@ export interface AssignmentDto {
1380
1457
  role: string;
1381
1458
  active: boolean;
1382
1459
  }
1460
+ /**
1461
+ * Opaque per-user preferences object (0079); null when unset.
1462
+ * @nullable
1463
+ */
1464
+ export type MeResponseDtoPreferences = {
1465
+ [key: string]: unknown;
1466
+ } | null;
1383
1467
  export interface MeResponseDto {
1384
1468
  /** Keycloak subject identifier */
1385
1469
  sub: string;
@@ -1397,6 +1481,16 @@ export interface MeResponseDto {
1397
1481
  email: string | null;
1398
1482
  /** @nullable */
1399
1483
  displayName: string | null;
1484
+ /**
1485
+ * Self-editable contact number (0079).
1486
+ * @nullable
1487
+ */
1488
+ phone: string | null;
1489
+ /**
1490
+ * Opaque per-user preferences object (0079); null when unset.
1491
+ * @nullable
1492
+ */
1493
+ preferences: MeResponseDtoPreferences;
1400
1494
  memberships: MembershipDto[];
1401
1495
  /** Cross-cutting permissions (resource:action) from platform/tenant-wide/warehouse/carrier roles for the active context — drives client-side component visibility. Org-scoped permissions are on each membership. */
1402
1496
  capabilities: string[];
@@ -1410,8 +1504,31 @@ export interface MeResponseDto {
1410
1504
  /** Long-form staff assignments (own rows only) from employee_assignment — the authoritative warehouse/carrier reach behind the warehouseIds/carrierId summary. */
1411
1505
  assignments: AssignmentDto[];
1412
1506
  }
1507
+ /**
1508
+ * Opaque per-user preferences object (JSON object, ≤ 16 KB serialized); null clears it.
1509
+ * @nullable
1510
+ */
1511
+ export type UpdateMeDtoPreferences = {
1512
+ [key: string]: unknown;
1513
+ } | null;
1413
1514
  export interface UpdateMeDto {
1414
- displayName?: string;
1515
+ /** @nullable */
1516
+ displayName?: string | null;
1517
+ /**
1518
+ * Self-editable contact number; null clears it.
1519
+ * @maxLength 50
1520
+ * @nullable
1521
+ */
1522
+ phone?: string | null;
1523
+ /**
1524
+ * Opaque per-user preferences object (JSON object, ≤ 16 KB serialized); null clears it.
1525
+ * @nullable
1526
+ */
1527
+ preferences?: UpdateMeDtoPreferences;
1528
+ }
1529
+ export interface UpdateIdentityNumberDto {
1530
+ /** Swedish personal identity number — YYMMDDNNNN, YYMMDD-NNNN, YYMMDD+NNNN, YYYYMMDDNNNN or YYYYMMDD-NNNN, with a valid Luhn check digit. Stored digits-only. Never returned by any endpoint. */
1531
+ personalIdentityNumber: string;
1415
1532
  }
1416
1533
  export interface AnonymousSessionDto {
1417
1534
  /** Opaque bearer token for the anonymous session. Send it as the X-Session-Token header on guest-capable endpoints. Shown once — it is stored only as a hash. */
@@ -6714,6 +6831,272 @@ export interface BillableEventsWebhookAckDto {
6714
6831
  /** Events rejected before enqueue, with a reason (e.g. unknown event_type). */
6715
6832
  skipped: BillableEventsWebhookAckDtoSkippedItem[];
6716
6833
  }
6834
+ export interface UserDirectoryEntryDto {
6835
+ /** The user's Keycloak subject — the id every staffing and membership command takes. */
6836
+ sub: string;
6837
+ /**
6838
+ * The user's display name; null until they set one on their profile.
6839
+ * @nullable
6840
+ */
6841
+ displayName: string | null;
6842
+ /** The user's email address. */
6843
+ email: string;
6844
+ }
6845
+ export interface DeactivateUserDto {
6846
+ /**
6847
+ * Optional free-text reason, recorded on the admin_action audit row.
6848
+ * @maxLength 2000
6849
+ */
6850
+ reason?: string;
6851
+ }
6852
+ /**
6853
+ * Outcome of the best-effort Keycloak push made after the database commit. `synced` — the Keycloak side was updated by this call. `failed` — the push was attempted and failed; the database change stands, and re-running the command re-attempts the push. `not_configured` — no push was attempted because no Keycloak sync client is provisioned for the tenant.
6854
+ */
6855
+ export type DeactivateUserResultDtoKeycloakSyncStatus = typeof DeactivateUserResultDtoKeycloakSyncStatus[keyof typeof DeactivateUserResultDtoKeycloakSyncStatus];
6856
+ export declare const DeactivateUserResultDtoKeycloakSyncStatus: {
6857
+ readonly synced: "synced";
6858
+ readonly failed: "failed";
6859
+ readonly not_configured: "not_configured";
6860
+ };
6861
+ export interface DeactivateUserResultDto {
6862
+ /** The deactivated user's Keycloak subject. */
6863
+ sub: string;
6864
+ /** When the account was tombstoned. */
6865
+ deactivatedAt: string;
6866
+ /** Outcome of the best-effort Keycloak push made after the database commit. `synced` — the Keycloak side was updated by this call. `failed` — the push was attempted and failed; the database change stands, and re-running the command re-attempts the push. `not_configured` — no push was attempted because no Keycloak sync client is provisioned for the tenant. */
6867
+ keycloakSyncStatus: DeactivateUserResultDtoKeycloakSyncStatus;
6868
+ /** True when this call replayed a prior deactivation (same Idempotency-Key, or an already-deactivated target) with no new mutation. */
6869
+ idempotent: boolean;
6870
+ }
6871
+ export interface ForgetUserDto {
6872
+ /**
6873
+ * Required free-text reason for the erasure, recorded on the admin_action audit row.
6874
+ * @maxLength 2000
6875
+ */
6876
+ reason: string;
6877
+ }
6878
+ /**
6879
+ * Outcome of the best-effort Keycloak push made after the database commit. `synced` — the Keycloak side was updated by this call. `failed` — the push was attempted and failed; the database change stands, and re-running the command re-attempts the push. `not_configured` — no push was attempted because no Keycloak sync client is provisioned for the tenant.
6880
+ */
6881
+ export type ForgetUserResultDtoKeycloakSyncStatus = typeof ForgetUserResultDtoKeycloakSyncStatus[keyof typeof ForgetUserResultDtoKeycloakSyncStatus];
6882
+ export declare const ForgetUserResultDtoKeycloakSyncStatus: {
6883
+ readonly synced: "synced";
6884
+ readonly failed: "failed";
6885
+ readonly not_configured: "not_configured";
6886
+ };
6887
+ export interface ForgetUserResultDto {
6888
+ /** The forgotten user's Keycloak subject. */
6889
+ sub: string;
6890
+ /** When the erasure scrub completed (user_profile.forgotten_at). */
6891
+ forgottenAt: string;
6892
+ /** Outcome of the best-effort Keycloak push made after the database commit. `synced` — the Keycloak side was updated by this call. `failed` — the push was attempted and failed; the database change stands, and re-running the command re-attempts the push. `not_configured` — no push was attempted because no Keycloak sync client is provisioned for the tenant. */
6893
+ keycloakSyncStatus: ForgetUserResultDtoKeycloakSyncStatus;
6894
+ /** True when this call replayed a prior forget (same Idempotency-Key, or an already-forgotten target) with no new mutation. */
6895
+ idempotent: boolean;
6896
+ }
6897
+ export interface ExportUserDataDto {
6898
+ /**
6899
+ * Required free-text reason for the disclosure, recorded on the admin_action audit row.
6900
+ * @maxLength 2000
6901
+ */
6902
+ reason: string;
6903
+ }
6904
+ /**
6905
+ * @nullable
6906
+ */
6907
+ export type ExportedProfileDtoPreferences = {
6908
+ [key: string]: unknown;
6909
+ } | null;
6910
+ export interface ExportedProfileDto {
6911
+ sub: string;
6912
+ email: string;
6913
+ /** @nullable */
6914
+ displayName: string | null;
6915
+ /** @nullable */
6916
+ phone: string | null;
6917
+ /** @nullable */
6918
+ preferences: ExportedProfileDtoPreferences;
6919
+ createdAt: string;
6920
+ lastSeenAt: string;
6921
+ /** @nullable */
6922
+ deletedAt: string | null;
6923
+ /** @nullable */
6924
+ forgottenAt: string | null;
6925
+ }
6926
+ export interface ExportedMembershipDto {
6927
+ organizationId: string;
6928
+ role: string;
6929
+ createdAt: string;
6930
+ /** @nullable */
6931
+ deletedAt: string | null;
6932
+ }
6933
+ export interface ExportedAssignmentDto {
6934
+ employeeAssignmentId: string;
6935
+ kind: string;
6936
+ /** @nullable */
6937
+ warehouseId: string | null;
6938
+ /** @nullable */
6939
+ tenantCarrierId: string | null;
6940
+ role: string;
6941
+ active: boolean;
6942
+ /** @nullable */
6943
+ startedAt: string | null;
6944
+ /** @nullable */
6945
+ endedAt: string | null;
6946
+ createdAt: string;
6947
+ /** @nullable */
6948
+ deletedAt: string | null;
6949
+ }
6950
+ export interface ExportUserDataResultDto {
6951
+ /** The exported user's Keycloak subject. */
6952
+ sub: string;
6953
+ /** When this export was generated. */
6954
+ exportedAt: string;
6955
+ profile: ExportedProfileDto;
6956
+ organizationMemberships: ExportedMembershipDto[];
6957
+ employeeAssignments: ExportedAssignmentDto[];
6958
+ /** Personal data categories this export deliberately does NOT include (e.g. the sensitive personnummer column, billing/invoice records, order history, audit history) — this is Core API's identity-domain slice of a GDPR Article 15 fulfilment, not the complete record. */
6959
+ notIncluded: string[];
6960
+ }
6961
+ export type EmployeeAssignmentDtoKind = typeof EmployeeAssignmentDtoKind[keyof typeof EmployeeAssignmentDtoKind];
6962
+ export declare const EmployeeAssignmentDtoKind: {
6963
+ readonly warehouse: "warehouse";
6964
+ readonly carrier: "carrier";
6965
+ readonly tenant_wide: "tenant_wide";
6966
+ };
6967
+ export interface EmployeeAssignmentDto {
6968
+ employeeAssignmentId: string;
6969
+ /** Keycloak subject of the assigned staff member. */
6970
+ userSub: string;
6971
+ kind: EmployeeAssignmentDtoKind;
6972
+ /**
6973
+ * Set for `kind=warehouse`, null otherwise.
6974
+ * @nullable
6975
+ */
6976
+ warehouseId: string | null;
6977
+ /**
6978
+ * The `tenant_carrier` this assignment scopes to. Set for `kind=carrier`, null otherwise.
6979
+ * @nullable
6980
+ */
6981
+ tenantCarrierId: string | null;
6982
+ /** Staff role the assignment grants. Rows created here carry one of the assignment roles; rows imported or seeded elsewhere can carry any client role. */
6983
+ role: string;
6984
+ /** False once the assignment has been offboarded. Only active assignments contribute to the Keycloak claims. */
6985
+ active: boolean;
6986
+ /** @nullable */
6987
+ startedAt: string | null;
6988
+ /** @nullable */
6989
+ endedAt: string | null;
6990
+ /**
6991
+ * Display name of the assigned staff member, from their `user_profile`. Null when the user has no profile row yet (it is created by their first `/v1/me` call) or has not set a name.
6992
+ * @nullable
6993
+ */
6994
+ displayName: string | null;
6995
+ /**
6996
+ * Email of the assigned staff member, from their `user_profile`. Null when the user has no profile row yet (it is created by their first `/v1/me` call).
6997
+ * @nullable
6998
+ */
6999
+ email: string | null;
7000
+ }
7001
+ export type CreateEmployeeAssignmentDtoKind = typeof CreateEmployeeAssignmentDtoKind[keyof typeof CreateEmployeeAssignmentDtoKind];
7002
+ export declare const CreateEmployeeAssignmentDtoKind: {
7003
+ readonly warehouse: "warehouse";
7004
+ readonly carrier: "carrier";
7005
+ readonly tenant_wide: "tenant_wide";
7006
+ };
7007
+ export type CreateEmployeeAssignmentDtoRole = typeof CreateEmployeeAssignmentDtoRole[keyof typeof CreateEmployeeAssignmentDtoRole];
7008
+ export declare const CreateEmployeeAssignmentDtoRole: {
7009
+ readonly 'operations-manager': "operations-manager";
7010
+ readonly 'warehouse-admin': "warehouse-admin";
7011
+ readonly 'warehouse-operator': "warehouse-operator";
7012
+ readonly 'carrier-admin': "carrier-admin";
7013
+ readonly 'carrier-driver': "carrier-driver";
7014
+ };
7015
+ export interface CreateEmployeeAssignmentDto {
7016
+ /** Keycloak subject of the staff member to hire. They must already exist as a user (their `user_profile` row is created by their first `/v1/me` call). */
7017
+ userSub: string;
7018
+ kind: CreateEmployeeAssignmentDtoKind;
7019
+ role: CreateEmployeeAssignmentDtoRole;
7020
+ /** Required for `kind=warehouse`, rejected for any other kind. */
7021
+ warehouseId?: string;
7022
+ /** Required for `kind=carrier` (drivers are `kind=carrier`), rejected for any other kind. */
7023
+ tenantCarrierId?: string;
7024
+ /** First day of the assignment; defaults to today. */
7025
+ startedAt?: string;
7026
+ }
7027
+ export type EmployeeAssignmentSyncResultDtoKind = typeof EmployeeAssignmentSyncResultDtoKind[keyof typeof EmployeeAssignmentSyncResultDtoKind];
7028
+ export declare const EmployeeAssignmentSyncResultDtoKind: {
7029
+ readonly warehouse: "warehouse";
7030
+ readonly carrier: "carrier";
7031
+ readonly tenant_wide: "tenant_wide";
7032
+ };
7033
+ /**
7034
+ * Outcome of the best-effort Keycloak push made after the database commit. `synced` — the Keycloak side was updated by this call. `failed` — the push was attempted and failed; the database change stands, and re-running the command re-attempts the push. `not_configured` — no push was attempted because no Keycloak sync client is provisioned for the tenant.
7035
+ */
7036
+ export type EmployeeAssignmentSyncResultDtoKeycloakSyncStatus = typeof EmployeeAssignmentSyncResultDtoKeycloakSyncStatus[keyof typeof EmployeeAssignmentSyncResultDtoKeycloakSyncStatus];
7037
+ export declare const EmployeeAssignmentSyncResultDtoKeycloakSyncStatus: {
7038
+ readonly synced: "synced";
7039
+ readonly failed: "failed";
7040
+ readonly not_configured: "not_configured";
7041
+ };
7042
+ export interface EmployeeAssignmentSyncResultDto {
7043
+ employeeAssignmentId: string;
7044
+ /** Keycloak subject of the assigned staff member. */
7045
+ userSub: string;
7046
+ kind: EmployeeAssignmentSyncResultDtoKind;
7047
+ /**
7048
+ * Set for `kind=warehouse`, null otherwise.
7049
+ * @nullable
7050
+ */
7051
+ warehouseId: string | null;
7052
+ /**
7053
+ * The `tenant_carrier` this assignment scopes to. Set for `kind=carrier`, null otherwise.
7054
+ * @nullable
7055
+ */
7056
+ tenantCarrierId: string | null;
7057
+ /** Staff role the assignment grants. Rows created here carry one of the assignment roles; rows imported or seeded elsewhere can carry any client role. */
7058
+ role: string;
7059
+ /** False once the assignment has been offboarded. Only active assignments contribute to the Keycloak claims. */
7060
+ active: boolean;
7061
+ /** @nullable */
7062
+ startedAt: string | null;
7063
+ /** @nullable */
7064
+ endedAt: string | null;
7065
+ /**
7066
+ * Display name of the assigned staff member, from their `user_profile`. Null when the user has no profile row yet (it is created by their first `/v1/me` call) or has not set a name.
7067
+ * @nullable
7068
+ */
7069
+ displayName: string | null;
7070
+ /**
7071
+ * Email of the assigned staff member, from their `user_profile`. Null when the user has no profile row yet (it is created by their first `/v1/me` call).
7072
+ * @nullable
7073
+ */
7074
+ email: string | null;
7075
+ /** Outcome of the best-effort Keycloak push made after the database commit. `synced` — the Keycloak side was updated by this call. `failed` — the push was attempted and failed; the database change stands, and re-running the command re-attempts the push. `not_configured` — no push was attempted because no Keycloak sync client is provisioned for the tenant. */
7076
+ keycloakSyncStatus: EmployeeAssignmentSyncResultDtoKeycloakSyncStatus;
7077
+ }
7078
+ export type UpdateEmployeeAssignmentDtoRole = typeof UpdateEmployeeAssignmentDtoRole[keyof typeof UpdateEmployeeAssignmentDtoRole];
7079
+ export declare const UpdateEmployeeAssignmentDtoRole: {
7080
+ readonly 'operations-manager': "operations-manager";
7081
+ readonly 'warehouse-admin': "warehouse-admin";
7082
+ readonly 'warehouse-operator': "warehouse-operator";
7083
+ readonly 'carrier-admin': "carrier-admin";
7084
+ readonly 'carrier-driver': "carrier-driver";
7085
+ };
7086
+ export interface UpdateEmployeeAssignmentDto {
7087
+ role?: UpdateEmployeeAssignmentDtoRole;
7088
+ /** Move a `kind=warehouse` assignment to another warehouse. */
7089
+ warehouseId?: string;
7090
+ /** Move a `kind=carrier` assignment to another carrier. */
7091
+ tenantCarrierId?: string;
7092
+ startedAt?: string;
7093
+ }
7094
+ export interface OffboardEmployeeDto {
7095
+ /** Last day of the assignment; defaults to today. */
7096
+ endedAt?: string;
7097
+ /** Free-text reason, recorded in the service log for ops follow-up. `employee_assignment` has no column for it, so it is not stored on the row or echoed back. */
7098
+ reason?: string;
7099
+ }
6717
7100
  export type OrdersControllerListV1Params = {
6718
7101
  /**
6719
7102
  * Max rows to return (1–100).
@@ -7665,4 +8048,44 @@ export type PricingRulesControllerListPricingRulesV1Params = {
7665
8048
  */
7666
8049
  offset?: number;
7667
8050
  };
8051
+ export type UsersControllerListV1Params = {
8052
+ /**
8053
+ * Case-insensitive substring match over display name OR email. Omit to list the first page of the directory.
8054
+ * @maxLength 200
8055
+ */
8056
+ search?: string;
8057
+ /**
8058
+ * Max rows to return. Values above 50 are clamped to 50; a non-integer is a 400.
8059
+ * @minimum 1
8060
+ */
8061
+ limit?: number;
8062
+ };
8063
+ export type EmployeeAssignmentsControllerListV1Params = {
8064
+ /**
8065
+ * Filter by scope family.
8066
+ */
8067
+ kind?: EmployeeAssignmentsControllerListV1Kind;
8068
+ /**
8069
+ * Filter to one warehouse's staff.
8070
+ */
8071
+ warehouseId?: string;
8072
+ /**
8073
+ * Filter to one carrier's staff (matches `tenantCarrierId`).
8074
+ */
8075
+ carrierId?: string;
8076
+ /**
8077
+ * Filter by active state; omit for both.
8078
+ */
8079
+ active?: boolean;
8080
+ /**
8081
+ * Filter to one staff member's assignments.
8082
+ */
8083
+ userSub?: string;
8084
+ };
8085
+ export type EmployeeAssignmentsControllerListV1Kind = typeof EmployeeAssignmentsControllerListV1Kind[keyof typeof EmployeeAssignmentsControllerListV1Kind];
8086
+ export declare const EmployeeAssignmentsControllerListV1Kind: {
8087
+ readonly warehouse: "warehouse";
8088
+ readonly carrier: "carrier";
8089
+ readonly tenant_wide: "tenant_wide";
8090
+ };
7668
8091
  //# sourceMappingURL=index.schemas.d.ts.map