@fragus/sam-types 1.2.22 → 1.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.2.22",
2
+ "version": "1.2.23",
3
3
  "name": "@fragus/sam-types",
4
4
  "description": "Typescript interfaces for all types used to communicate between SAM client(s) and the SAM API",
5
5
  "author": "Fragus",
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The vehicles a warranty product is blacklisted for, matched like a vehicle blacklist entry: `*` in model or fuel type
3
+ * matches any, and the model year range is inclusive with null meaning no limit.
4
+ */
5
+ export interface IBlacklistedProductVehicle {
6
+ brand: string
7
+ model: string
8
+ fuelType: string
9
+ modelYearFrom: number | null
10
+ modelYearTo: number | null
11
+ }
12
+
13
+ /** A warranty product blacklisted by its exact name (case-insensitive) or its V4 product id; exactly one is set. */
14
+ export interface IBlacklistedProductRequest {
15
+ warrantyName: string | null
16
+ v4ProductId: number | null
17
+ /** Only for these vehicles; missing or null blacklists the product for every vehicle. */
18
+ vehicle?: IBlacklistedProductVehicle | null
19
+ providerIds: {
20
+ add: number[]
21
+ remove: number[]
22
+ }
23
+ contractProviderGroupIds?: {
24
+ add: number[]
25
+ remove: number[]
26
+ }
27
+ }
28
+
29
+ export interface IBlacklistedProductResponse {
30
+ id: number
31
+ warrantyName: string | null
32
+ v4ProductId: number | null
33
+ vehicle: IBlacklistedProductVehicle | null
34
+ parentRecord?: boolean
35
+ groupRecord?: boolean
36
+ }
37
+
38
+ export interface IBlacklistedProductListRecord extends IBlacklistedProductResponse {
39
+ // Null on a group-owned entry: the two owners are exclusive.
40
+ providerId: number | null
41
+ providerName: string | null
42
+ contractProviderGroupId: number | null
43
+ contractProviderGroupName: string | null
44
+ }
45
+
46
+ /** Which providers and groups a blacklisted product is registered for. */
47
+ export interface IBlacklistedProductScope {
48
+ providerIds: number[]
49
+ contractProviderGroupIds: number[]
50
+ }
51
+
52
+ export type BlacklistedProductOrderByType = 'id' | 'warrantyName' | 'v4ProductId'
@@ -2,6 +2,9 @@ export interface IBlacklistedVehicleRequest {
2
2
  brand: string
3
3
  model: string
4
4
  fuelType: string
5
+ /** Inclusive model year range; null on either end means no limit. */
6
+ modelYearFrom?: number | null
7
+ modelYearTo?: number | null
5
8
  providerIds: {
6
9
  add: number[]
7
10
  remove: number[]
@@ -17,6 +20,8 @@ export interface IBlacklistedVehicleResponse {
17
20
  brand: string
18
21
  model: string
19
22
  fuelType: string
23
+ modelYearFrom: number | null
24
+ modelYearTo: number | null
20
25
  parentRecord?: boolean
21
26
  groupRecord?: boolean
22
27
  }
@@ -1,3 +1,5 @@
1
1
  export type VehcileBlacklistErrors =
2
2
  | 'DUPLICATE_RECORD'
3
3
  | 'VEHICLE_BLACKLIST_NOT_FOUND'
4
+ | 'PRODUCT_BLACKLIST_NOT_FOUND'
5
+ | 'CONTRACT_PRODUCT_BLACKLISTED'