UI: Add support name conflict strategy
This commit is contained in:
		
							parent
							
								
									f1da967a7d
								
							
						
					
					
						commit
						e8d888e22b
					
				@ -15,7 +15,7 @@
 | 
				
			|||||||
///
 | 
					///
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Injectable } from '@angular/core';
 | 
					import { Injectable } from '@angular/core';
 | 
				
			||||||
import { defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
 | 
					import { createDefaultHttpOptions, defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
 | 
				
			||||||
import { Observable } from 'rxjs';
 | 
					import { Observable } from 'rxjs';
 | 
				
			||||||
import { HttpClient } from '@angular/common/http';
 | 
					import { HttpClient } from '@angular/common/http';
 | 
				
			||||||
import { PageLink } from '@shared/models/page/page-link';
 | 
					import { PageLink } from '@shared/models/page/page-link';
 | 
				
			||||||
@ -23,6 +23,7 @@ import { PageData } from '@shared/models/page/page-data';
 | 
				
			|||||||
import { EntitySubtype } from '@shared/models/entity-type.models';
 | 
					import { EntitySubtype } from '@shared/models/entity-type.models';
 | 
				
			||||||
import { Asset, AssetInfo, AssetSearchQuery } from '@shared/models/asset.models';
 | 
					import { Asset, AssetInfo, AssetSearchQuery } from '@shared/models/asset.models';
 | 
				
			||||||
import { BulkImportRequest, BulkImportResult } from '@shared/import-export/import-export.models';
 | 
					import { BulkImportRequest, BulkImportResult } from '@shared/import-export/import-export.models';
 | 
				
			||||||
 | 
					import { SaveEntityParams } from '@shared/models/entity.models';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Injectable({
 | 
					@Injectable({
 | 
				
			||||||
  providedIn: 'root'
 | 
					  providedIn: 'root'
 | 
				
			||||||
@ -69,8 +70,10 @@ export class AssetService {
 | 
				
			|||||||
    return this.http.get<AssetInfo>(`/api/asset/info/${assetId}`, defaultHttpOptionsFromConfig(config));
 | 
					    return this.http.get<AssetInfo>(`/api/asset/info/${assetId}`, defaultHttpOptionsFromConfig(config));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public saveAsset(asset: Asset, config?: RequestConfig): Observable<Asset> {
 | 
					  public saveAsset(asset: Asset, config?: RequestConfig): Observable<Asset>;
 | 
				
			||||||
    return this.http.post<Asset>('/api/asset', asset, defaultHttpOptionsFromConfig(config));
 | 
					  public saveAsset(asset: Asset, saveParams: SaveEntityParams, config?: RequestConfig): Observable<Asset>;
 | 
				
			||||||
 | 
					  public saveAsset(asset: Asset, saveParamsOrConfig?: SaveEntityParams | RequestConfig, config?: RequestConfig): Observable<Asset> {
 | 
				
			||||||
 | 
					    return this.http.post<Asset>('/api/asset', asset, createDefaultHttpOptions(saveParamsOrConfig, config));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public deleteAsset(assetId: string, config?: RequestConfig) {
 | 
					  public deleteAsset(assetId: string, config?: RequestConfig) {
 | 
				
			||||||
 | 
				
			|||||||
@ -15,12 +15,13 @@
 | 
				
			|||||||
///
 | 
					///
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Injectable } from '@angular/core';
 | 
					import { Injectable } from '@angular/core';
 | 
				
			||||||
import { defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
 | 
					import { createDefaultHttpOptions, defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
 | 
				
			||||||
import { Observable } from 'rxjs';
 | 
					import { Observable } from 'rxjs';
 | 
				
			||||||
import { HttpClient } from '@angular/common/http';
 | 
					import { HttpClient } from '@angular/common/http';
 | 
				
			||||||
import { PageLink } from '@shared/models/page/page-link';
 | 
					import { PageLink } from '@shared/models/page/page-link';
 | 
				
			||||||
import { PageData } from '@shared/models/page/page-data';
 | 
					import { PageData } from '@shared/models/page/page-data';
 | 
				
			||||||
import { Customer } from '@shared/models/customer.model';
 | 
					import { Customer } from '@shared/models/customer.model';
 | 
				
			||||||
 | 
					import { SaveEntityParams } from '@shared/models/entity.models';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Injectable({
 | 
					@Injectable({
 | 
				
			||||||
  providedIn: 'root'
 | 
					  providedIn: 'root'
 | 
				
			||||||
@ -40,8 +41,10 @@ export class CustomerService {
 | 
				
			|||||||
    return this.http.get<Customer>(`/api/customer/${customerId}`, defaultHttpOptionsFromConfig(config));
 | 
					    return this.http.get<Customer>(`/api/customer/${customerId}`, defaultHttpOptionsFromConfig(config));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public saveCustomer(customer: Customer, config?: RequestConfig): Observable<Customer> {
 | 
					  public saveCustomer(customer: Customer, config?: RequestConfig): Observable<Customer>;
 | 
				
			||||||
    return this.http.post<Customer>('/api/customer', customer, defaultHttpOptionsFromConfig(config));
 | 
					  public saveCustomer(customer: Customer, saveParams: SaveEntityParams, config?: RequestConfig): Observable<Customer>;
 | 
				
			||||||
 | 
					  public saveCustomer(customer: Customer, saveParamsOrConfig?: SaveEntityParams | RequestConfig, config?: RequestConfig): Observable<Customer> {
 | 
				
			||||||
 | 
					    return this.http.post<Customer>('/api/customer', customer, createDefaultHttpOptions(saveParamsOrConfig, config));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public deleteCustomer(customerId: string, config?: RequestConfig) {
 | 
					  public deleteCustomer(customerId: string, config?: RequestConfig) {
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@
 | 
				
			|||||||
///
 | 
					///
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Injectable } from '@angular/core';
 | 
					import { Injectable } from '@angular/core';
 | 
				
			||||||
import { defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
 | 
					import { createDefaultHttpOptions, defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
 | 
				
			||||||
import { Observable, ReplaySubject } from 'rxjs';
 | 
					import { Observable, ReplaySubject } from 'rxjs';
 | 
				
			||||||
import { HttpClient } from '@angular/common/http';
 | 
					import { HttpClient } from '@angular/common/http';
 | 
				
			||||||
import { PageLink } from '@shared/models/page/page-link';
 | 
					import { PageLink } from '@shared/models/page/page-link';
 | 
				
			||||||
@ -28,13 +28,15 @@ import {
 | 
				
			|||||||
  DeviceInfo,
 | 
					  DeviceInfo,
 | 
				
			||||||
  DeviceInfoQuery,
 | 
					  DeviceInfoQuery,
 | 
				
			||||||
  DeviceSearchQuery,
 | 
					  DeviceSearchQuery,
 | 
				
			||||||
  PublishTelemetryCommand
 | 
					  PublishTelemetryCommand,
 | 
				
			||||||
 | 
					  SaveDeviceParams
 | 
				
			||||||
} from '@shared/models/device.models';
 | 
					} from '@shared/models/device.models';
 | 
				
			||||||
import { EntitySubtype } from '@shared/models/entity-type.models';
 | 
					import { EntitySubtype } from '@shared/models/entity-type.models';
 | 
				
			||||||
import { AuthService } from '@core/auth/auth.service';
 | 
					import { AuthService } from '@core/auth/auth.service';
 | 
				
			||||||
import { BulkImportRequest, BulkImportResult } from '@shared/import-export/import-export.models';
 | 
					import { BulkImportRequest, BulkImportResult } from '@shared/import-export/import-export.models';
 | 
				
			||||||
import { PersistentRpc, RpcStatus } from '@shared/models/rpc.models';
 | 
					import { PersistentRpc, RpcStatus } from '@shared/models/rpc.models';
 | 
				
			||||||
import { ResourcesService } from '@core/services/resources.service';
 | 
					import { ResourcesService } from '@core/services/resources.service';
 | 
				
			||||||
 | 
					import { SaveEntityParams } from '@shared/models/entity.models';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Injectable({
 | 
					@Injectable({
 | 
				
			||||||
  providedIn: 'root'
 | 
					  providedIn: 'root'
 | 
				
			||||||
@ -87,15 +89,19 @@ export class DeviceService {
 | 
				
			|||||||
    return this.http.get<DeviceInfo>(`/api/device/info/${deviceId}`, defaultHttpOptionsFromConfig(config));
 | 
					    return this.http.get<DeviceInfo>(`/api/device/info/${deviceId}`, defaultHttpOptionsFromConfig(config));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public saveDevice(device: Device, config?: RequestConfig): Observable<Device> {
 | 
					  public saveDevice(device: Device, config?: RequestConfig): Observable<Device>;
 | 
				
			||||||
    return this.http.post<Device>('/api/device', device, defaultHttpOptionsFromConfig(config));
 | 
					  public saveDevice(device: Device, saveParams?: SaveDeviceParams, config?: RequestConfig): Observable<Device>;
 | 
				
			||||||
 | 
					  public saveDevice(device: Device, saveParamsOrConfig?: SaveDeviceParams | RequestConfig, config?: RequestConfig): Observable<Device> {
 | 
				
			||||||
 | 
					    return this.http.post<Device>('/api/device', device, createDefaultHttpOptions(saveParamsOrConfig, config));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public saveDeviceWithCredentials(device: Device, credentials: DeviceCredentials, config?: RequestConfig): Observable<Device> {
 | 
					  public saveDeviceWithCredentials(device: Device, credentials: DeviceCredentials, config?: RequestConfig): Observable<Device>;
 | 
				
			||||||
 | 
					  public saveDeviceWithCredentials(device: Device, credentials: DeviceCredentials, saveParams: SaveEntityParams, config?: RequestConfig): Observable<Device>;
 | 
				
			||||||
 | 
					  public saveDeviceWithCredentials(device: Device, credentials: DeviceCredentials, saveParamsOrConfig?: SaveEntityParams | RequestConfig, config?: RequestConfig): Observable<Device> {
 | 
				
			||||||
    return this.http.post<Device>('/api/device-with-credentials', {
 | 
					    return this.http.post<Device>('/api/device-with-credentials', {
 | 
				
			||||||
      device,
 | 
					      device,
 | 
				
			||||||
      credentials
 | 
					      credentials
 | 
				
			||||||
    }, defaultHttpOptionsFromConfig(config));
 | 
					    }, createDefaultHttpOptions(saveParamsOrConfig, config));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public deleteDevice(deviceId: string, config?: RequestConfig) {
 | 
					  public deleteDevice(deviceId: string, config?: RequestConfig) {
 | 
				
			||||||
 | 
				
			|||||||
@ -15,13 +15,14 @@
 | 
				
			|||||||
///
 | 
					///
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Injectable } from '@angular/core';
 | 
					import { Injectable } from '@angular/core';
 | 
				
			||||||
import { defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
 | 
					import { createDefaultHttpOptions, defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
 | 
				
			||||||
import { Observable } from 'rxjs';
 | 
					import { Observable } from 'rxjs';
 | 
				
			||||||
import { HttpClient } from '@angular/common/http';
 | 
					import { HttpClient } from '@angular/common/http';
 | 
				
			||||||
import { PageLink } from '@shared/models/page/page-link';
 | 
					import { PageLink } from '@shared/models/page/page-link';
 | 
				
			||||||
import { PageData } from '@shared/models/page/page-data';
 | 
					import { PageData } from '@shared/models/page/page-data';
 | 
				
			||||||
import { EntitySubtype } from '@app/shared/models/entity-type.models';
 | 
					import { EntitySubtype } from '@app/shared/models/entity-type.models';
 | 
				
			||||||
import { EntityView, EntityViewInfo, EntityViewSearchQuery } from '@app/shared/models/entity-view.models';
 | 
					import { EntityView, EntityViewInfo, EntityViewSearchQuery } from '@app/shared/models/entity-view.models';
 | 
				
			||||||
 | 
					import { SaveEntityParams } from '@shared/models/entity.models';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Injectable({
 | 
					@Injectable({
 | 
				
			||||||
  providedIn: 'root'
 | 
					  providedIn: 'root'
 | 
				
			||||||
@ -51,8 +52,10 @@ export class EntityViewService {
 | 
				
			|||||||
    return this.http.get<EntityViewInfo>(`/api/entityView/info/${entityViewId}`, defaultHttpOptionsFromConfig(config));
 | 
					    return this.http.get<EntityViewInfo>(`/api/entityView/info/${entityViewId}`, defaultHttpOptionsFromConfig(config));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public saveEntityView(entityView: EntityView, config?: RequestConfig): Observable<EntityView> {
 | 
					  public saveEntityView(entityView: EntityView, config?: RequestConfig): Observable<EntityView>;
 | 
				
			||||||
    return this.http.post<EntityView>('/api/entityView', entityView, defaultHttpOptionsFromConfig(config));
 | 
					  public saveEntityView(entityView: EntityView, saveParams: SaveEntityParams, config?: RequestConfig): Observable<EntityView>;
 | 
				
			||||||
 | 
					  public saveEntityView(entityView: EntityView, saveParamsOrConfig?: SaveEntityParams | RequestConfig, config?: RequestConfig): Observable<EntityView> {
 | 
				
			||||||
 | 
					    return this.http.post<EntityView>('/api/entityView', entityView,  createDefaultHttpOptions(saveParamsOrConfig, config));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public deleteEntityView(entityViewId: string, config?: RequestConfig) {
 | 
					  public deleteEntityView(entityViewId: string, config?: RequestConfig) {
 | 
				
			||||||
 | 
				
			|||||||
@ -18,32 +18,56 @@ import { InterceptorHttpParams } from '../interceptors/interceptor-http-params';
 | 
				
			|||||||
import { HttpHeaders } from '@angular/common/http';
 | 
					import { HttpHeaders } from '@angular/common/http';
 | 
				
			||||||
import { InterceptorConfig } from '../interceptors/interceptor-config';
 | 
					import { InterceptorConfig } from '../interceptors/interceptor-config';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type QueryParams = { [param:string]: any };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface RequestConfig {
 | 
					export interface RequestConfig {
 | 
				
			||||||
  ignoreLoading?: boolean;
 | 
					  ignoreLoading?: boolean;
 | 
				
			||||||
  ignoreErrors?: boolean;
 | 
					  ignoreErrors?: boolean;
 | 
				
			||||||
  resendRequest?: boolean;
 | 
					  resendRequest?: boolean;
 | 
				
			||||||
 | 
					  queryParams?: QueryParams;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function hasRequestConfig(config?: any): boolean {
 | 
				
			||||||
 | 
					  if (!config) {
 | 
				
			||||||
 | 
					    return false;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return config.hasOwnProperty('ignoreLoading') || config.hasOwnProperty('ignoreErrors') || config.hasOwnProperty('resendRequest') || config.hasOwnProperty('queryParams');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function createDefaultHttpOptions(queryParamsOrConfig?: QueryParams | RequestConfig, config?: RequestConfig) {
 | 
				
			||||||
 | 
					  if (hasRequestConfig(queryParamsOrConfig)) {
 | 
				
			||||||
 | 
					    return defaultHttpOptionsFromConfig(queryParamsOrConfig as RequestConfig);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  const queryParams = queryParamsOrConfig as QueryParams;
 | 
				
			||||||
 | 
					  const finalConfig = {
 | 
				
			||||||
 | 
					    ...config,
 | 
				
			||||||
 | 
					    ...(queryParams && { queryParams }),
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  return defaultHttpOptionsFromConfig(finalConfig);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function defaultHttpOptionsFromConfig(config?: RequestConfig) {
 | 
					export function defaultHttpOptionsFromConfig(config?: RequestConfig) {
 | 
				
			||||||
  if (!config) {
 | 
					  if (!config) {
 | 
				
			||||||
    config = {};
 | 
					    config = {};
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return defaultHttpOptions(config.ignoreLoading, config.ignoreErrors, config.resendRequest);
 | 
					  return defaultHttpOptions(config.ignoreLoading, config.ignoreErrors, config.resendRequest, config.queryParams);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function defaultHttpOptions(ignoreLoading: boolean = false,
 | 
					export function defaultHttpOptions(ignoreLoading: boolean = false,
 | 
				
			||||||
                                   ignoreErrors: boolean = false,
 | 
					                                   ignoreErrors: boolean = false,
 | 
				
			||||||
                                   resendRequest: boolean = false) {
 | 
					                                   resendRequest: boolean = false,
 | 
				
			||||||
 | 
					                                   queryParams?: QueryParams) {
 | 
				
			||||||
  return {
 | 
					  return {
 | 
				
			||||||
    headers: new HttpHeaders({'Content-Type': 'application/json'}),
 | 
					    headers: new HttpHeaders({'Content-Type': 'application/json'}),
 | 
				
			||||||
    params: new InterceptorHttpParams(new InterceptorConfig(ignoreLoading, ignoreErrors, resendRequest))
 | 
					    params: new InterceptorHttpParams(new InterceptorConfig(ignoreLoading, ignoreErrors, resendRequest), queryParams)
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function defaultHttpUploadOptions(ignoreLoading: boolean = false,
 | 
					export function defaultHttpUploadOptions(ignoreLoading: boolean = false,
 | 
				
			||||||
                                         ignoreErrors: boolean = false,
 | 
					                                         ignoreErrors: boolean = false,
 | 
				
			||||||
                                         resendRequest: boolean = false) {
 | 
					                                         resendRequest: boolean = false,
 | 
				
			||||||
 | 
					                                         queryParams?: QueryParams) {
 | 
				
			||||||
  return {
 | 
					  return {
 | 
				
			||||||
    params: new InterceptorHttpParams(new InterceptorConfig(ignoreLoading, ignoreErrors, resendRequest))
 | 
					    params: new InterceptorHttpParams(new InterceptorConfig(ignoreLoading, ignoreErrors, resendRequest), queryParams)
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,7 @@ import { InterceptorConfig } from './interceptor-config';
 | 
				
			|||||||
export class InterceptorHttpParams extends HttpParams {
 | 
					export class InterceptorHttpParams extends HttpParams {
 | 
				
			||||||
  constructor(
 | 
					  constructor(
 | 
				
			||||||
    public interceptorConfig: InterceptorConfig,
 | 
					    public interceptorConfig: InterceptorConfig,
 | 
				
			||||||
    params?: { [param: string]: string | string[] }
 | 
					    params?: { [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>; }
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    super({ fromObject: params });
 | 
					    super({ fromObject: params });
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ import { DeviceCredentialsId } from '@shared/models/id/device-credentials-id';
 | 
				
			|||||||
import { EntitySearchQuery } from '@shared/models/relation.models';
 | 
					import { EntitySearchQuery } from '@shared/models/relation.models';
 | 
				
			||||||
import { DeviceProfileId } from '@shared/models/id/device-profile-id';
 | 
					import { DeviceProfileId } from '@shared/models/id/device-profile-id';
 | 
				
			||||||
import { RuleChainId } from '@shared/models/id/rule-chain-id';
 | 
					import { RuleChainId } from '@shared/models/id/rule-chain-id';
 | 
				
			||||||
import { EntityInfoData, HasTenantId, HasVersion } from '@shared/models/entity.models';
 | 
					import { EntityInfoData, HasTenantId, HasVersion, SaveEntityParams } from '@shared/models/entity.models';
 | 
				
			||||||
import { FilterPredicateValue, KeyFilter } from '@shared/models/query/query.models';
 | 
					import { FilterPredicateValue, KeyFilter } from '@shared/models/query/query.models';
 | 
				
			||||||
import { TimeUnit } from '@shared/models/time/time.models';
 | 
					import { TimeUnit } from '@shared/models/time/time.models';
 | 
				
			||||||
import _moment from 'moment';
 | 
					import _moment from 'moment';
 | 
				
			||||||
@ -739,6 +739,10 @@ export interface DeviceInfoFilter {
 | 
				
			|||||||
  active?: boolean;
 | 
					  active?: boolean;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface SaveDeviceParams extends SaveEntityParams {
 | 
				
			||||||
 | 
					  accessToken?: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export class DeviceInfoQuery  {
 | 
					export class DeviceInfoQuery  {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  pageLink: PageLink;
 | 
					  pageLink: PageLink;
 | 
				
			||||||
 | 
				
			|||||||
@ -209,3 +209,19 @@ export interface EntityTestScriptResult {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export type VersionedEntity = EntityInfoData & HasVersion | RuleChainMetaData;
 | 
					export type VersionedEntity = EntityInfoData & HasVersion | RuleChainMetaData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export enum NameConflictPolicy {
 | 
				
			||||||
 | 
					  FAIL = 'FAIL',
 | 
				
			||||||
 | 
					  UNIQUIFY = 'UNIQUIFY',
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export enum UniquifyStrategy {
 | 
				
			||||||
 | 
					  RANDOM = 'RANDOM',
 | 
				
			||||||
 | 
					  INCREMENTAL = 'INCREMENTAL'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface SaveEntityParams {
 | 
				
			||||||
 | 
					  nameConflictPolicy?: NameConflictPolicy;
 | 
				
			||||||
 | 
					  uniquifyStrategy?: UniquifyStrategy;
 | 
				
			||||||
 | 
					  uniquifySeparator?: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user