spotcharge-types 1.0.323 → 1.0.324

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 (45) hide show
  1. package/dist/models/admin-session.model.d.ts +20 -0
  2. package/dist/models/admin-session.model.d.ts.map +1 -0
  3. package/dist/models/admin-session.model.js +3 -0
  4. package/dist/models/admin-session.model.js.map +1 -0
  5. package/dist/models/api/master-user-role.api.model.d.ts +1 -1
  6. package/dist/models/api/master-user-role.api.model.d.ts.map +1 -1
  7. package/dist/models/api/users/admin-role.api.model.d.ts +0 -1
  8. package/dist/models/api/users/admin-role.api.model.d.ts.map +1 -1
  9. package/dist/models/api/users/admin-user.api.model.d.ts +15 -3
  10. package/dist/models/api/users/admin-user.api.model.d.ts.map +1 -1
  11. package/dist/models/api/users/index.d.ts +2 -0
  12. package/dist/models/api/users/index.d.ts.map +1 -1
  13. package/dist/models/api/users/index.js +2 -0
  14. package/dist/models/api/users/index.js.map +1 -1
  15. package/dist/models/api/users/permission-group.api.model.d.ts +3 -1
  16. package/dist/models/api/users/permission-group.api.model.d.ts.map +1 -1
  17. package/dist/models/api/users/permission.api.model.d.ts +38 -0
  18. package/dist/models/api/users/permission.api.model.d.ts.map +1 -0
  19. package/dist/models/api/users/permission.api.model.js +3 -0
  20. package/dist/models/api/users/permission.api.model.js.map +1 -0
  21. package/dist/models/api/users/profile.api.model.d.ts +12 -0
  22. package/dist/models/api/users/profile.api.model.d.ts.map +1 -0
  23. package/dist/models/api/users/profile.api.model.js +3 -0
  24. package/dist/models/api/users/profile.api.model.js.map +1 -0
  25. package/dist/models/api/users/shared.api.model.d.ts +0 -2
  26. package/dist/models/api/users/shared.api.model.d.ts.map +1 -1
  27. package/dist/models/index.d.ts +1 -0
  28. package/dist/models/index.d.ts.map +1 -1
  29. package/dist/models/role-descriptor.model.d.ts +2 -3
  30. package/dist/models/role-descriptor.model.d.ts.map +1 -1
  31. package/dist/models/user.model.d.ts +1 -1
  32. package/dist/models/user.model.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/models/admin-session.model.ts +20 -0
  35. package/src/models/api/master-user-role.api.model.ts +1 -1
  36. package/src/models/api/users/admin-role.api.model.ts +0 -1
  37. package/src/models/api/users/admin-user.api.model.ts +19 -3
  38. package/src/models/api/users/index.ts +2 -0
  39. package/src/models/api/users/permission-group.api.model.ts +3 -1
  40. package/src/models/api/users/permission.api.model.ts +41 -0
  41. package/src/models/api/users/profile.api.model.ts +12 -0
  42. package/src/models/api/users/shared.api.model.ts +0 -2
  43. package/src/models/index.ts +1 -0
  44. package/src/models/role-descriptor.model.ts +3 -5
  45. package/src/models/user.model.ts +2 -1
@@ -0,0 +1,20 @@
1
+ import { PermissionKeys } from '../consts';
2
+ import { PhoneNumberModel } from './phone-number-model';
3
+ import { RoleDescriptor } from './role-descriptor.model';
4
+ import { UserRolePermission } from './user-role-permission';
5
+ /** Logged-in superadmin operator session (from GET /api/users/me/admin). */
6
+ export interface AdminSessionModel {
7
+ profileId: string;
8
+ firebaseUid: string;
9
+ assignmentId: string;
10
+ email: string;
11
+ firstName: string;
12
+ lastName?: string;
13
+ displayName?: string;
14
+ photoURL: string | null;
15
+ color: string;
16
+ phoneNumber: PhoneNumberModel | null;
17
+ roles: RoleDescriptor;
18
+ permissions: Record<PermissionKeys, UserRolePermission> | null;
19
+ }
20
+ //# sourceMappingURL=admin-session.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-session.model.d.ts","sourceRoot":"","sources":["../../src/models/admin-session.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAE1D,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;CAChE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=admin-session.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-session.model.js","sourceRoot":"","sources":["../../src/models/admin-session.model.ts"],"names":[],"mappings":""}
@@ -6,7 +6,7 @@ import { UserRolePermission } from "../user-role-permission";
6
6
  export interface MasterUserRoleApiModel {
7
7
  id: string;
8
8
  title: string;
9
- value: string;
9
+ isFullAccess: boolean;
10
10
  permissions: Record<PermissionKeys, UserRolePermission> | null;
11
11
  isDefault?: boolean;
12
12
  createdBy: CreatedByModel;
@@ -1 +1 @@
1
- {"version":3,"file":"master-user-role.api.model.d.ts","sourceRoot":"","sources":["../../../src/models/api/master-user-role.api.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AACtC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"master-user-role.api.model.d.ts","sourceRoot":"","sources":["../../../src/models/api/master-user-role.api.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AACtC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB"}
@@ -11,7 +11,6 @@ export interface AdminRoleListItemApiModel {
11
11
  isDefault: boolean;
12
12
  isFullAccess: boolean;
13
13
  createdAt: IsoDateTime;
14
- legacyFirestoreId?: string;
15
14
  }
16
15
  /** GET /api/users/admin-roles/:id */
17
16
  export interface AdminRoleDetailApiModel extends AdminRoleListItemApiModel, AuditTimestampsApiModel {
@@ -1 +1 @@
1
- {"version":3,"file":"admin-role.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/admin-role.api.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE1E,iCAAiC;AACjC,MAAM,WAAW,yBAAyB;IACxC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,WAAW,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qCAAqC;AACrC,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB,EAAE,uBAAuB;IACjG,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAC/D,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B;AAED,kCAAkC;AAClC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iGAAiG;IACjG,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B"}
1
+ {"version":3,"file":"admin-role.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/admin-role.api.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE1E,iCAAiC;AACjC,MAAM,WAAW,yBAAyB;IACxC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,qCAAqC;AACrC,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB,EAAE,uBAAuB;IACjG,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAC/D,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B;AAED,kCAAkC;AAClC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iGAAiG;IACjG,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B"}
@@ -1,7 +1,10 @@
1
1
  import { UserRoleStatus } from '../../../enum';
2
2
  import { AuditActor } from '../../audit-actor.model';
3
+ import { PhoneNumberModel } from '../../phone-number-model';
3
4
  import { AdminRoleRefApiModel, AuditTimestampsApiModel, IsoDateTime } from './shared.api.model';
4
5
  /** GET /api/users/admin-users */
6
+ export type AdminUserListOrderBy = 'firstName' | 'lastName' | 'email' | 'role' | 'status' | 'createdAt';
7
+ export type ApiSortDirection = 'asc' | 'desc';
5
8
  export interface AdminUserListItemApiModel {
6
9
  /** admin_assignments.id (uuid). */
7
10
  id: string;
@@ -16,11 +19,20 @@ export interface AdminUserListItemApiModel {
16
19
  status: UserRoleStatus;
17
20
  isOwner: boolean;
18
21
  createdAt: IsoDateTime;
19
- /** Optional Firestore adminUsers doc id during cutover. */
20
- legacyFirestoreId?: string;
22
+ }
23
+ /** GET /api/users/admin-users — paginated list response */
24
+ export interface AdminUserListApiModel {
25
+ rows: AdminUserListItemApiModel[];
26
+ totalCount: number;
27
+ pageIndex: number;
28
+ pageSize: number;
29
+ orderBy: AdminUserListOrderBy;
30
+ sortDirection: ApiSortDirection;
21
31
  }
22
32
  /** GET /api/users/admin-users/:id */
23
- export interface AdminUserDetailApiModel extends AdminUserListItemApiModel, AuditTimestampsApiModel {
33
+ export interface AdminUserDetailApiModel extends Omit<AdminUserListItemApiModel, 'phoneNumber'>, AuditTimestampsApiModel {
34
+ phoneNumber?: PhoneNumberModel | null;
35
+ phoneNumberDisplay?: string;
24
36
  displayName?: string;
25
37
  timezone?: string;
26
38
  isDeleted: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-user.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/admin-user.api.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEhG,iCAAiC;AACjC,MAAM,WAAW,yBAAyB;IACxC,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;IACvB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qCAAqC;AACrC,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB,EAAE,uBAAuB;IACjG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B;AAED,kFAAkF;AAClF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"admin-user.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/admin-user.api.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEhG,iCAAiC;AACjC,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AACxG,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,yBAAyB;IACxC,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,2DAA2D;AAC3D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,yBAAyB,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,aAAa,EAAE,gBAAgB,CAAC;CACjC;AAED,qCAAqC;AACrC,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,yBAAyB,EAAE,aAAa,CAAC,EACpD,uBAAuB;IACzB,WAAW,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B;AAED,kFAAkF;AAClF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -3,4 +3,6 @@ export * from './admin-me.api.model';
3
3
  export * from './admin-user.api.model';
4
4
  export * from './admin-role.api.model';
5
5
  export * from './permission-group.api.model';
6
+ export * from './permission.api.model';
7
+ export * from './profile.api.model';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
@@ -19,4 +19,6 @@ __exportStar(require("./admin-me.api.model"), exports);
19
19
  __exportStar(require("./admin-user.api.model"), exports);
20
20
  __exportStar(require("./admin-role.api.model"), exports);
21
21
  __exportStar(require("./permission-group.api.model"), exports);
22
+ __exportStar(require("./permission.api.model"), exports);
23
+ __exportStar(require("./profile.api.model"), exports);
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/models/api/users/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,uDAAqC;AACrC,yDAAuC;AACvC,yDAAuC;AACvC,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/models/api/users/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,uDAAqC;AACrC,yDAAuC;AACvC,yDAAuC;AACvC,+DAA6C;AAC7C,yDAAuC;AACvC,sDAAoC"}
@@ -6,7 +6,9 @@ export interface PermissionGroupListItemApiModel {
6
6
  id: string;
7
7
  name: string;
8
8
  order: number;
9
- legacyFirestoreId?: string;
9
+ permissionCount: number;
10
+ /** True for the system uncategorized catch-all group. */
11
+ isUncategorized?: boolean;
10
12
  }
11
13
  /** GET /api/users/permission-groups/:id */
12
14
  export interface PermissionGroupDetailApiModel extends PermissionGroupListItemApiModel, AuditTimestampsApiModel {
@@ -1 +1 @@
1
- {"version":3,"file":"permission-group.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/permission-group.api.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAE5F,uCAAuC;AACvC,MAAM,WAAW,+BAA+B;IAC9C,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,2CAA2C;AAC3C,MAAM,WAAW,6BACf,SAAQ,+BAA+B,EACrC,uBAAuB;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B;AAED,6CAA6C;AAC7C,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wCAAwC;AACxC,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B"}
1
+ {"version":3,"file":"permission-group.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/permission-group.api.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAE5F,uCAAuC;AACvC,MAAM,WAAW,+BAA+B;IAC9C,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,2CAA2C;AAC3C,MAAM,WAAW,6BACf,SAAQ,+BAA+B,EACrC,uBAAuB;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B;AAED,6CAA6C;AAC7C,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wCAAwC;AACxC,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B"}
@@ -0,0 +1,38 @@
1
+ /** Catalog sync status for GET /api/users/permissions */
2
+ export type PermissionCatalogStatus = 'missing' | 'uncategorized' | 'synced' | 'orphan';
3
+ /** GET /api/users/permissions */
4
+ export interface PermissionCatalogListItemApiModel {
5
+ key: string;
6
+ label: string;
7
+ /** Label from permissionConfig when status is missing. */
8
+ defaultLabel?: string;
9
+ /** permission_groups.id when row exists in Postgres. */
10
+ groupId?: string;
11
+ groupName?: string;
12
+ /** permission_groups.order — used for group-wise list sorting. */
13
+ groupOrder?: number;
14
+ /** permissions.order within the group. */
15
+ order?: number;
16
+ status: PermissionCatalogStatus;
17
+ }
18
+ /** GET /api/users/permissions/assignable */
19
+ export interface AssignablePermissionApiModel {
20
+ key: string;
21
+ label: string;
22
+ order: number;
23
+ }
24
+ /** POST /api/users/permissions */
25
+ export interface CreatePermissionRequest {
26
+ key: string;
27
+ label: string;
28
+ /** permission_groups.id (uuid). */
29
+ groupId: string;
30
+ }
31
+ /** POST /api/users/permissions response */
32
+ export interface PermissionDetailApiModel {
33
+ key: string;
34
+ label: string;
35
+ groupId: string;
36
+ order: number;
37
+ }
38
+ //# sourceMappingURL=permission.api.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/permission.api.model.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExF,iCAAiC;AACjC,MAAM,WAAW,iCAAiC;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED,4CAA4C;AAC5C,MAAM,WAAW,4BAA4B;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kCAAkC;AAClC,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,2CAA2C;AAC3C,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=permission.api.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.api.model.js","sourceRoot":"","sources":["../../../../src/models/api/users/permission.api.model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { PhoneNumberModel } from '../../phone-number-model';
2
+ /** GET /api/users/profiles/by-email */
3
+ export interface CheckProfileByEmailApiModel {
4
+ exists: boolean;
5
+ profileId?: string;
6
+ firebaseUid?: string;
7
+ email?: string;
8
+ firstName?: string;
9
+ lastName?: string;
10
+ phoneNumber?: PhoneNumberModel | null;
11
+ }
12
+ //# sourceMappingURL=profile.api.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/profile.api.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,uCAAuC;AACvC,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACvC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=profile.api.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.api.model.js","sourceRoot":"","sources":["../../../../src/models/api/users/profile.api.model.ts"],"names":[],"mappings":""}
@@ -5,8 +5,6 @@ export interface AdminRoleRefApiModel {
5
5
  id: string;
6
6
  title: string;
7
7
  isFullAccess: boolean;
8
- /** Optional Firestore doc id during frontend cutover. */
9
- legacyFirestoreId?: string;
10
8
  }
11
9
  export interface AuditTimestampsApiModel {
12
10
  createdAt: IsoDateTime;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/shared.api.model.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"shared.api.model.d.ts","sourceRoot":"","sources":["../../../../src/models/api/users/shared.api.model.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -25,6 +25,7 @@ export { ServiceChargeModel } from './service-charge.model';
25
25
  export { PublicUserVehicle, VehicleInfo } from './public-user-vehicle.model';
26
26
  export { UserRolePermission } from './user-role-permission';
27
27
  export { RoleDescriptor } from './role-descriptor.model';
28
+ export { AdminSessionModel } from './admin-session.model';
28
29
  export { ApiErrorResponse } from './api-error-response.model';
29
30
  export { TaxType, TaxConfigModel, InvoiceTaxModel } from './tax-config.model';
30
31
  export { ResolvedTariff } from './resolved-tariff.model';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AAEtB,OAAO,EAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAClE,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,mBAAmB,EAAE,0BAA0B,EAAC,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAC,uBAAuB,EAAE,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAE,WAAW,EAAC,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AAEtB,OAAO,EAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAClE,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,mBAAmB,EAAE,0BAA0B,EAAC,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAC,uBAAuB,EAAE,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAE,WAAW,EAAC,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC"}
@@ -1,7 +1,6 @@
1
- import { Roles } from "../enum";
2
1
  export interface RoleDescriptor {
3
- title: string;
4
- value: Roles;
5
2
  id: string;
3
+ title: string;
4
+ isFullAccess: boolean;
6
5
  }
7
6
  //# sourceMappingURL=role-descriptor.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"role-descriptor.model.d.ts","sourceRoot":"","sources":["../../src/models/role-descriptor.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ"}
1
+ {"version":3,"file":"role-descriptor.model.d.ts","sourceRoot":"","sources":["../../src/models/role-descriptor.model.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;CACvB"}
@@ -1,12 +1,12 @@
1
1
  import { FranchiseModel } from './franchise.model';
2
2
  import { CountryModel } from './country.model';
3
- import { UserRoleApiModel } from './api';
4
3
  import { FirebaseProviderType, VehicleType } from '../enum';
5
4
  import { PhoneNumberModel } from './phone-number-model';
6
5
  import { Timestamp } from "./timestamp";
7
6
  import { CreatedByModel } from "./created-by.model";
8
7
  import { PermissionKeys } from "../consts";
9
8
  import { UserRolePermission } from "./user-role-permission";
9
+ import { UserRoleApiModel } from './api';
10
10
  export interface UserModel {
11
11
  id: string;
12
12
  userId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,oBAAoB,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,YAAY,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,GAAE,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAC,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,GAAG,EAAC,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAC,oBAAoB,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,YAAY,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,GAAE,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAC,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,GAAG,EAAC,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spotcharge-types",
3
- "version": "1.0.323",
3
+ "version": "1.0.324",
4
4
  "description": "Spotcharge types",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -0,0 +1,20 @@
1
+ import {PermissionKeys} from '../consts';
2
+ import {PhoneNumberModel} from './phone-number-model';
3
+ import {RoleDescriptor} from './role-descriptor.model';
4
+ import {UserRolePermission} from './user-role-permission';
5
+
6
+ /** Logged-in superadmin operator session (from GET /api/users/me/admin). */
7
+ export interface AdminSessionModel {
8
+ profileId: string;
9
+ firebaseUid: string;
10
+ assignmentId: string;
11
+ email: string;
12
+ firstName: string;
13
+ lastName?: string;
14
+ displayName?: string;
15
+ photoURL: string | null;
16
+ color: string;
17
+ phoneNumber: PhoneNumberModel | null;
18
+ roles: RoleDescriptor;
19
+ permissions: Record<PermissionKeys, UserRolePermission> | null;
20
+ }
@@ -7,7 +7,7 @@ import {UserRolePermission} from "../user-role-permission";
7
7
  export interface MasterUserRoleApiModel {
8
8
  id: string;
9
9
  title: string;
10
- value: string;
10
+ isFullAccess: boolean;
11
11
  permissions: Record<PermissionKeys, UserRolePermission> | null;
12
12
  isDefault?: boolean;
13
13
  createdBy: CreatedByModel;
@@ -12,7 +12,6 @@ export interface AdminRoleListItemApiModel {
12
12
  isDefault: boolean;
13
13
  isFullAccess: boolean;
14
14
  createdAt: IsoDateTime;
15
- legacyFirestoreId?: string;
16
15
  }
17
16
 
18
17
  /** GET /api/users/admin-roles/:id */
@@ -1,8 +1,12 @@
1
1
  import { UserRoleStatus } from '../../../enum';
2
2
  import { AuditActor } from '../../audit-actor.model';
3
+ import { PhoneNumberModel } from '../../phone-number-model';
3
4
  import { AdminRoleRefApiModel, AuditTimestampsApiModel, IsoDateTime } from './shared.api.model';
4
5
 
5
6
  /** GET /api/users/admin-users */
7
+ export type AdminUserListOrderBy = 'firstName' | 'lastName' | 'email' | 'role' | 'status' | 'createdAt';
8
+ export type ApiSortDirection = 'asc' | 'desc';
9
+
6
10
  export interface AdminUserListItemApiModel {
7
11
  /** admin_assignments.id (uuid). */
8
12
  id: string;
@@ -17,12 +21,24 @@ export interface AdminUserListItemApiModel {
17
21
  status: UserRoleStatus;
18
22
  isOwner: boolean;
19
23
  createdAt: IsoDateTime;
20
- /** Optional Firestore adminUsers doc id during cutover. */
21
- legacyFirestoreId?: string;
24
+ }
25
+
26
+ /** GET /api/users/admin-users — paginated list response */
27
+ export interface AdminUserListApiModel {
28
+ rows: AdminUserListItemApiModel[];
29
+ totalCount: number;
30
+ pageIndex: number;
31
+ pageSize: number;
32
+ orderBy: AdminUserListOrderBy;
33
+ sortDirection: ApiSortDirection;
22
34
  }
23
35
 
24
36
  /** GET /api/users/admin-users/:id */
25
- export interface AdminUserDetailApiModel extends AdminUserListItemApiModel, AuditTimestampsApiModel {
37
+ export interface AdminUserDetailApiModel
38
+ extends Omit<AdminUserListItemApiModel, 'phoneNumber'>,
39
+ AuditTimestampsApiModel {
40
+ phoneNumber?: PhoneNumberModel | null;
41
+ phoneNumberDisplay?: string;
26
42
  displayName?: string;
27
43
  timezone?: string;
28
44
  isDeleted: boolean;
@@ -3,3 +3,5 @@ export * from './admin-me.api.model';
3
3
  export * from './admin-user.api.model';
4
4
  export * from './admin-role.api.model';
5
5
  export * from './permission-group.api.model';
6
+ export * from './permission.api.model';
7
+ export * from './profile.api.model';
@@ -7,7 +7,9 @@ export interface PermissionGroupListItemApiModel {
7
7
  id: string;
8
8
  name: string;
9
9
  order: number;
10
- legacyFirestoreId?: string;
10
+ permissionCount: number;
11
+ /** True for the system uncategorized catch-all group. */
12
+ isUncategorized?: boolean;
11
13
  }
12
14
 
13
15
  /** GET /api/users/permission-groups/:id */
@@ -0,0 +1,41 @@
1
+ /** Catalog sync status for GET /api/users/permissions */
2
+ export type PermissionCatalogStatus = 'missing' | 'uncategorized' | 'synced' | 'orphan';
3
+
4
+ /** GET /api/users/permissions */
5
+ export interface PermissionCatalogListItemApiModel {
6
+ key: string;
7
+ label: string;
8
+ /** Label from permissionConfig when status is missing. */
9
+ defaultLabel?: string;
10
+ /** permission_groups.id when row exists in Postgres. */
11
+ groupId?: string;
12
+ groupName?: string;
13
+ /** permission_groups.order — used for group-wise list sorting. */
14
+ groupOrder?: number;
15
+ /** permissions.order within the group. */
16
+ order?: number;
17
+ status: PermissionCatalogStatus;
18
+ }
19
+
20
+ /** GET /api/users/permissions/assignable */
21
+ export interface AssignablePermissionApiModel {
22
+ key: string;
23
+ label: string;
24
+ order: number;
25
+ }
26
+
27
+ /** POST /api/users/permissions */
28
+ export interface CreatePermissionRequest {
29
+ key: string;
30
+ label: string;
31
+ /** permission_groups.id (uuid). */
32
+ groupId: string;
33
+ }
34
+
35
+ /** POST /api/users/permissions response */
36
+ export interface PermissionDetailApiModel {
37
+ key: string;
38
+ label: string;
39
+ groupId: string;
40
+ order: number;
41
+ }
@@ -0,0 +1,12 @@
1
+ import { PhoneNumberModel } from '../../phone-number-model';
2
+
3
+ /** GET /api/users/profiles/by-email */
4
+ export interface CheckProfileByEmailApiModel {
5
+ exists: boolean;
6
+ profileId?: string;
7
+ firebaseUid?: string;
8
+ email?: string;
9
+ firstName?: string;
10
+ lastName?: string;
11
+ phoneNumber?: PhoneNumberModel | null;
12
+ }
@@ -6,8 +6,6 @@ export interface AdminRoleRefApiModel {
6
6
  id: string;
7
7
  title: string;
8
8
  isFullAccess: boolean;
9
- /** Optional Firestore doc id during frontend cutover. */
10
- legacyFirestoreId?: string;
11
9
  }
12
10
 
13
11
  export interface AuditTimestampsApiModel {
@@ -26,6 +26,7 @@ export {ServiceChargeModel} from './service-charge.model';
26
26
  export {PublicUserVehicle, VehicleInfo} from './public-user-vehicle.model';
27
27
  export {UserRolePermission} from './user-role-permission';
28
28
  export {RoleDescriptor} from './role-descriptor.model';
29
+ export {AdminSessionModel} from './admin-session.model';
29
30
  export {ApiErrorResponse} from './api-error-response.model';
30
31
  export {TaxType, TaxConfigModel, InvoiceTaxModel} from './tax-config.model';
31
32
  export {ResolvedTariff} from './resolved-tariff.model';
@@ -1,7 +1,5 @@
1
- import { Roles } from "../enum";
2
-
3
1
  export interface RoleDescriptor {
4
- title: string;
5
- value: Roles;
6
2
  id: string;
7
- }
3
+ title: string;
4
+ isFullAccess: boolean;
5
+ }
@@ -1,12 +1,13 @@
1
1
  import {FranchiseModel} from './franchise.model';
2
2
  import {CountryModel} from './country.model';
3
- import {UserRoleApiModel} from './api';
3
+ import {RoleDescriptor} from './role-descriptor.model';
4
4
  import {FirebaseProviderType, VehicleType} from '../enum';
5
5
  import {PhoneNumberModel} from './phone-number-model';
6
6
  import {Timestamp} from "./timestamp";
7
7
  import {CreatedByModel} from "./created-by.model";
8
8
  import {PermissionKeys} from "../consts";
9
9
  import {UserRolePermission} from "./user-role-permission";
10
+ import { UserRoleApiModel } from './api';
10
11
 
11
12
  export interface UserModel {
12
13
  id: string;