@fragus/sam-types 1.2.9 → 1.2.11

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.9",
2
+ "version": "1.2.11",
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",
@@ -72,6 +72,8 @@ export interface IContractDetailsBasic {
72
72
  mileage: number
73
73
  maxEndMileage?: number
74
74
  warrantyReference?: string
75
+ /** The customer is a provider's internal-use fixed customer: no PDF, no owner change. */
76
+ isFixedCustomer?: boolean
75
77
  }
76
78
 
77
79
  /**
@@ -32,6 +32,8 @@ export interface IContractProviderInfo extends IEssentialContractProviderInfo {
32
32
  inactive: boolean
33
33
  isUsingV4PricingTool: boolean
34
34
  isUseV4PTOnlyForSigning: boolean
35
+ fragusInvoicing?: boolean
36
+ isInternalUse?: boolean
35
37
  }
36
38
 
37
39
  export interface ICreateTestContractProvider {
@@ -7,6 +7,15 @@ export interface IAdminUserInfo {
7
7
  email: string
8
8
  }
9
9
 
10
+ /**
11
+ * When the logged-in user's password was last set and when it expires, as ISO dates. Both are null for a password
12
+ * set before expiry was introduced and not dated yet, which never expires.
13
+ */
14
+ export interface IPasswordStatus {
15
+ changedAt: string | null
16
+ expiresAt: string | null
17
+ }
18
+
10
19
  export interface IUserPasswordChangeRequest {
11
20
  password: string
12
21
  newPassword: string
@@ -98,9 +98,26 @@ export interface IContractProviderResponse extends IProviderCustomizationRespons
98
98
  hiddenNetPrice: boolean
99
99
  useRetailPrice: boolean
100
100
  hideRetailPriceTooltip: boolean
101
+ /** Read-only, from the provider's `FRAGUS_INVOICING` flag. */
102
+ fragusInvoicing?: boolean
103
+ /** Read-only, from the provider's `INTERNAL_USE` flag. */
104
+ isInternalUse?: boolean
105
+ fixedCustomer?: IFixedCustomerData | null
101
106
  v4ProviderId: number | null
102
107
  }
103
108
 
109
+ /** The fixed customer of an internal-use provider; its country is the provider's. */
110
+ export interface IFixedCustomerData {
111
+ name: string
112
+ companyName: string
113
+ cvr: string
114
+ phone: string
115
+ email: string
116
+ address1: string
117
+ postalCode: string
118
+ city: string
119
+ }
120
+
104
121
  export interface IContractProviderListItemResponse {
105
122
  administrativeName: string
106
123
  contractProviderId: number
@@ -127,6 +144,7 @@ export type TContractProviderSettingsSection =
127
144
  | 'conditions'
128
145
  | 'customization'
129
146
  | 'cvrCode'
147
+ | 'fixedCustomer'
130
148
 
131
149
  export interface IContractProviderSettingsResponse {
132
150
  administrativeName: string
@@ -156,6 +174,8 @@ export interface IContractProviderSettingsResponse {
156
174
  webLogoBannerUrl: string | null
157
175
  }
158
176
  hasParent: boolean
177
+ /** Null while the provider is not in internal use. */
178
+ fixedCustomer?: IFixedCustomerData | null
159
179
  }
160
180
 
161
181
  export type TContractProviderSettingsSectionValue =
@@ -165,6 +185,7 @@ export type TContractProviderSettingsSectionValue =
165
185
  | TProviderConditionsValue
166
186
  | TProviderCustomizationValue
167
187
  | TProviderCvrCodeValue
188
+ | IFixedCustomerData
168
189
 
169
190
  export type TProviderGeneralInfoValue = Pick<
170
191
  IContractProviderSettingsResponse,
@@ -1,4 +1,4 @@
1
- export type TContractProviderFlagKey = 'RENAULT_UNIQ_PDF_FORMAT'
1
+ export type TContractProviderFlagKey = 'RENAULT_UNIQ_PDF_FORMAT' | 'FRAGUS_INVOICING' | 'INTERNAL_USE'
2
2
 
3
3
  /** Exactly one of the two ids is sent: a flag row is owned by a provider or by a group. */
4
4
  export interface ContractProviderFlagRequest {
@@ -9,6 +9,15 @@ export interface ApiError {
9
9
  messageReplacements?: { [key in string]: string }
10
10
  }
11
11
 
12
+ /**
13
+ * The answer to a login whose password has expired. The token is a reset-password token, so the app can send the user
14
+ * to its reset-password page to choose a new one.
15
+ */
16
+ export interface IPasswordExpiredError {
17
+ message: 'PASSWORD_EXPIRED'
18
+ resetToken: string
19
+ }
20
+
12
21
  export interface INoContractsAvailableErrorParams {
13
22
  matchedData: VehiclePartial
14
23
  lookupCountry: null | {
@@ -0,0 +1,19 @@
1
+ import { IFixedCustomerData } from './contractProvider'
2
+
3
+ export interface IFragusInvoicingProviderRequest {
4
+ contractProviderId: number
5
+ }
6
+
7
+ export interface IFragusInvoicingProviderResponse {
8
+ contractProviderId: number
9
+ contractProviderName: string
10
+ country: string
11
+ updatedByUser: string
12
+ isInternalUse: boolean
13
+ /** The saved fixed customer, or a prefill built from the provider's contact person. */
14
+ fixedCustomer: IFixedCustomerData
15
+ }
16
+
17
+ export interface IInternalUseRequest {
18
+ fixedCustomer: IFixedCustomerData
19
+ }
package/types/index.d.ts CHANGED
@@ -75,6 +75,7 @@ export declare enum ContractActionType {
75
75
  expireContract = 410,
76
76
  sendContractExpiredMail = 411,
77
77
  changeVehicleData = 420,
78
+ changeSeller = 430,
78
79
  changeCustomerData = 440,
79
80
  changePaymentData = 460,
80
81
  modify = 500,
@@ -182,6 +183,7 @@ export * from './priceCalculation';
182
183
  export * from './priceSpecification';
183
184
  export * from './product';
184
185
  export * from './providerBranding';
186
+ export * from './providerInvoice';
185
187
  export * from './queryParams';
186
188
  export * from './reports/reports';
187
189
  export * from './resetPassword';
@@ -218,5 +220,6 @@ export * from './pinLookup';
218
220
  export * from './ISendEmail';
219
221
  export * from './emailCampaign';
220
222
  export * from './contractProviderFlags';
223
+ export * from './fragusInvoicing';
221
224
  export * from './providerDocument';
222
225
  export * from './contractProviderGroup';
package/types/index.js CHANGED
@@ -86,6 +86,7 @@ var ContractActionType;
86
86
  ContractActionType[ContractActionType["expireContract"] = 410] = "expireContract";
87
87
  ContractActionType[ContractActionType["sendContractExpiredMail"] = 411] = "sendContractExpiredMail";
88
88
  ContractActionType[ContractActionType["changeVehicleData"] = 420] = "changeVehicleData";
89
+ ContractActionType[ContractActionType["changeSeller"] = 430] = "changeSeller";
89
90
  ContractActionType[ContractActionType["changeCustomerData"] = 440] = "changeCustomerData";
90
91
  ContractActionType[ContractActionType["changePaymentData"] = 460] = "changePaymentData";
91
92
  ContractActionType[ContractActionType["modify"] = 500] = "modify";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
package/types/index.ts CHANGED
@@ -80,6 +80,7 @@ export enum ContractActionType {
80
80
  expireContract = 410, // The contract expired.
81
81
  sendContractExpiredMail = 411, // A expired mail was sent to the customer.
82
82
  changeVehicleData = 420, // Meta data for the vehicle was changed.
83
+ changeSeller = 430, // A superadmin changed the contract's seller; the old and new seller are in the details.
83
84
  changeCustomerData = 440, // Meta data for the customer was changed.
84
85
  changePaymentData = 460, // Information about payment was changed.
85
86
  modify = 500, // (extended) The contract was changed in a way that changes the financial agreement, if a new contract was created as a sideeffect, information about the new contract is in the details.
@@ -201,6 +202,7 @@ export * from './priceCalculation'
201
202
  export * from './priceSpecification'
202
203
  export * from './product'
203
204
  export * from './providerBranding'
205
+ export * from './providerInvoice'
204
206
  export * from './queryParams'
205
207
  export * from './reports/reports'
206
208
  export * from './resetPassword'
@@ -237,5 +239,6 @@ export * from './pinLookup'
237
239
  export * from './ISendEmail'
238
240
  export * from './emailCampaign'
239
241
  export * from './contractProviderFlags'
242
+ export * from './fragusInvoicing'
240
243
  export * from './providerDocument'
241
244
  export * from './contractProviderGroup'
@@ -2,7 +2,7 @@ import { SettlementPaymentType } from './index'
2
2
  import { PriceSpecification } from './priceSpecification'
3
3
 
4
4
  /** Supported payment gateways. */
5
- export type PaymentGateway = 'Stripe' | 'B2B' | 'V4' | 'NONE' | 'Mock'
5
+ export type PaymentGateway = 'Stripe' | 'B2B' | 'V4' | 'NONE' | 'Mock' | 'FragusSubscription' | 'FragusPrePaid'
6
6
 
7
7
  /** Supported payment types. */
8
8
  export type PaymentType = 'automatic' | 'manual'
@@ -0,0 +1,30 @@
1
+ import { PriceSpecification } from './priceSpecification'
2
+
3
+ export type ProviderInvoiceState = 'Pending' | 'Paid' | 'Canceled'
4
+
5
+ export type BillingEntrySource = 'Stripe' | 'Fragus'
6
+
7
+ export type BillingEntryKind = 'Subscription' | 'PrePaid'
8
+
9
+ export interface IProviderInvoiceListRecord {
10
+ id: number
11
+ period: string // YYYY-MM
12
+ state: ProviderInvoiceState
13
+ amount: PriceSpecification
14
+ contractCount: number
15
+ created: string // ISO
16
+ }
17
+
18
+ export interface IContractBillingEntry {
19
+ id: number
20
+ contractPrettyId: string
21
+ source: BillingEntrySource
22
+ kind: BillingEntryKind
23
+ coverageStart: string // ISO
24
+ coverageEnd: string // ISO, exclusive
25
+ amount: PriceSpecification
26
+ }
27
+
28
+ export interface IProviderInvoiceDetails extends IProviderInvoiceListRecord {
29
+ entries: IContractBillingEntry[]
30
+ }
@@ -3,6 +3,8 @@ export type ContractResponseErrors =
3
3
  | PostContractResponseErrors
4
4
  | ContractActivationPreventedBySystemForThisVehicle
5
5
  | WarrantyCheckErrors
6
+ | FragusInvoicingErrors
7
+ | InternalUseErrors
6
8
 
7
9
  type ContractUpdateErrors = 'CONTRACT_TRANSITION_INVALID_OR_ILLEGAL'
8
10
  type PostContractResponseErrors = 'CONTRACT_MISSING_OR_INVALID_INFORMATION' | 'ITEM_SERIALNO_ACTIVE_CONTRACT_EXISTS'
@@ -21,3 +23,19 @@ type WarrantyCheckErrors =
21
23
  | 'WARRANTY_MODEL_NOT_FOUND'
22
24
  | 'WARRANTY_NOT_AVAILABLE_FOR_VEHICLE'
23
25
 
26
+ type FragusInvoicingErrors =
27
+ | 'FRAGUS_INVOICING_WEBCALC_NOT_AVAILABLE'
28
+ | 'FRAGUS_INVOICING_HAS_FRAGUS_CONTRACTS'
29
+ | 'FRAGUS_INVOICING_DEALER_PAID_NOT_AVAILABLE'
30
+ | 'FRAGUS_INVOICING_HAS_INTERNAL_USE'
31
+
32
+ type InternalUseErrors =
33
+ | 'INTERNAL_USE_REQUIRES_FRAGUS_INVOICING'
34
+ | 'INTERNAL_USE_NOT_ENABLED'
35
+ | 'INTERNAL_USE_OFFER_NOT_AVAILABLE'
36
+ | 'INTERNAL_USE_STRIPE_NOT_AVAILABLE'
37
+ | 'INTERNAL_USE_WEBCALC_NOT_AVAILABLE'
38
+ | 'INTERNAL_USE_FIXED_CUSTOMER_NO_LOGIN'
39
+ | 'INTERNAL_USE_OWNER_CHANGE_NOT_AVAILABLE'
40
+ | 'INTERNAL_USE_FIXED_CUSTOMER_READ_ONLY'
41
+ | 'INTERNAL_USE_FIXED_CUSTOMER_NOT_ALLOWED'
@@ -4,3 +4,9 @@ export type PasswordErrors =
4
4
  | 'WRONG_CURRENT_PASSWORD'
5
5
  | 'WRONG_PASSWORD'
6
6
  | 'MISSING_PASSWORD'
7
+ /** Login refused because the password is over a year old; see IPasswordExpiredError. */
8
+ | 'PASSWORD_EXPIRED'
9
+ /** A new password refused for being a common one, or for containing the user's email or name. */
10
+ | 'PASSWORD_TOO_COMMON'
11
+ /** A new password refused for being the same as the current one. */
12
+ | 'PASSWORD_UNCHANGED'
@@ -1 +1 @@
1
- export declare type UserAndCustomerErrors = 'GENERIC_CONTACT_PERSON_NOT_FOUND' | 'GENERIC_CUSTOMER_ALREADY_EXISTS' | 'GENERIC_CUSTOMER_EMAIL_ALREADY_EXISTS_AS_USER' | 'GENERIC_CUSTOMER_NOT_FOUND' | 'GENERIC_FORBIDDEN_ROLE' | 'GENERIC_NODE_ROLE_NOT_FOUND' | 'GENERIC_USER_ALREADY_EXISTS' | 'GENERIC_USER_CONFIGURATION_NOT_FOUND' | 'GENERIC_USER_NOT_FOUND' | 'GENERIC_USERNAME_OR_PASSWORD_NOT_FOUND';
1
+ export declare type UserAndCustomerErrors = 'GENERIC_CONTACT_PERSON_NOT_FOUND' | 'GENERIC_CUSTOMER_ALREADY_EXISTS' | 'GENERIC_CUSTOMER_EMAIL_ALREADY_EXISTS_AS_USER' | 'GENERIC_CUSTOMER_NOT_FOUND' | 'GENERIC_FORBIDDEN_ROLE' | 'REPORTS_USER_NO_ADMIN_LOGIN' | 'GENERIC_NODE_ROLE_NOT_FOUND' | 'GENERIC_USER_ALREADY_EXISTS' | 'GENERIC_USER_CONFIGURATION_NOT_FOUND' | 'GENERIC_USER_NOT_FOUND' | 'GENERIC_USERNAME_OR_PASSWORD_NOT_FOUND';
@@ -4,6 +4,7 @@ export type UserAndCustomerErrors =
4
4
  | 'GENERIC_CUSTOMER_EMAIL_ALREADY_EXISTS_AS_USER' // The customer's email already exists as a (Seller/Admin/SuperAdmin/...) -User.
5
5
  | 'GENERIC_CUSTOMER_NOT_FOUND'
6
6
  | 'GENERIC_FORBIDDEN_ROLE'
7
+ | 'REPORTS_USER_NO_ADMIN_LOGIN' // Admin login refused: the user only has the reports role, used through the report API.
7
8
  | 'GENERIC_NODE_ROLE_NOT_FOUND'
8
9
  | 'GENERIC_USER_ALREADY_EXISTS'
9
10
  | 'GENERIC_USER_CONFIGURATION_NOT_FOUND'
package/types/user.d.ts CHANGED
@@ -7,4 +7,6 @@ export interface IUserResponse {
7
7
  contactPerson: IContactPersonResponse
8
8
  userRole: UserRole
9
9
  disabledAt: Date | null
10
+ /** Failed logins since the last successful one. */
11
+ failedLoginAttempts?: number
10
12
  }
@@ -1,2 +1,2 @@
1
1
  export declare type TV4PTProductType = 'ServiceAgreement' | 'Warranty' | 'WarrantyAndServiceAgreement';
2
- export declare type TV4PTPaymentType = 'DealerPaid' | 'CustomerSubscription';
2
+ export declare type TV4PTPaymentType = 'DealerPaid' | 'CustomerSubscription' | 'FragusSubscription' | 'FragusPrePaid';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAMA,yFAAyF;AACzF,kFAAkF;AAClF,6EAA6E;AAC7E,gFAAgF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAQA,yFAAyF;AACzF,kFAAkF;AAClF,6EAA6E;AAC7E,gFAAgF"}
@@ -4,6 +4,8 @@ export type TV4PTProductType = 'ServiceAgreement' | 'Warranty' | 'WarrantyAndSer
4
4
  export type TV4PTPaymentType =
5
5
  | 'DealerPaid' // One-time dealer payment via V4.
6
6
  | 'CustomerSubscription' // Customer monthly subscription.
7
+ | 'FragusSubscription' // Fragus Invoicing, sent to V4 as 'CustomerSubscription'.
8
+ | 'FragusPrePaid' // Fragus Invoicing, sent to V4 as 'DealerPaid'.
7
9
  // | 'CustomerPaymentCard' // Deprecated, use 'CustomerSubscription' instead. /2023-01-01
8
10
  // | 'Subscription' // Deprecated, use 'CustomerSubscription' instead. /2023-01-01
9
11
  // | 'DealerPaidMonthly' // Deprecated, use 'DealerPaid' instead. /2023-01-01