同城有仓按仓库绑定承运商自动推单或自管填单,无仓/跨城走总部快递;新增仓配注册表、FulfillmentService 及三端运单追踪。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -474,6 +474,30 @@ export class CreateCityWarehouseDto {
|
||||
@IsOptional()
|
||||
@IsIn(['ACTIVE', 'PAUSED'])
|
||||
status?: 'ACTIVE' | 'PAUSED';
|
||||
|
||||
@IsOptional()
|
||||
@IsIn(['API_AUTO', 'MANUAL'])
|
||||
fulfillmentMode?: 'API_AUTO' | 'MANUAL';
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
fulfillmentProviderId?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
manualCarrierLabel?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
manualQueryUrlTemplate?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
lng?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
lat?: number;
|
||||
}
|
||||
|
||||
export class UpdateCityWarehouseDto {
|
||||
@@ -505,8 +529,100 @@ export class UpdateCityWarehouseDto {
|
||||
@IsOptional()
|
||||
@IsIn(['ACTIVE', 'PAUSED'])
|
||||
status?: 'ACTIVE' | 'PAUSED';
|
||||
|
||||
@IsOptional()
|
||||
@IsIn(['API_AUTO', 'MANUAL'])
|
||||
fulfillmentMode?: 'API_AUTO' | 'MANUAL';
|
||||
|
||||
@IsOptional()
|
||||
@ValidateIf((_, v) => v !== null)
|
||||
@IsString()
|
||||
fulfillmentProviderId?: string | null;
|
||||
|
||||
@IsOptional()
|
||||
@ValidateIf((_, v) => v !== null)
|
||||
@IsString()
|
||||
manualCarrierLabel?: string | null;
|
||||
|
||||
@IsOptional()
|
||||
@ValidateIf((_, v) => v !== null)
|
||||
@IsString()
|
||||
manualQueryUrlTemplate?: string | null;
|
||||
|
||||
@IsOptional()
|
||||
@ValidateIf((_, v) => v !== null)
|
||||
@IsNumber()
|
||||
lng?: number | null;
|
||||
|
||||
@IsOptional()
|
||||
@ValidateIf((_, v) => v !== null)
|
||||
@IsNumber()
|
||||
lat?: number | null;
|
||||
}
|
||||
|
||||
export class CreateFulfillmentProviderDto {
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
code: string;
|
||||
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
name: string;
|
||||
|
||||
@IsIn(['API', 'MANUAL'])
|
||||
type: 'API' | 'MANUAL';
|
||||
|
||||
@IsOptional()
|
||||
@IsIn(['ACTIVE', 'DISABLED'])
|
||||
status?: 'ACTIVE' | 'DISABLED';
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
configJson?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
capabilitiesJson?: string;
|
||||
}
|
||||
|
||||
export class UpdateFulfillmentProviderDto {
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
name?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsIn(['API', 'MANUAL'])
|
||||
type?: 'API' | 'MANUAL';
|
||||
|
||||
@IsOptional()
|
||||
@IsIn(['ACTIVE', 'DISABLED'])
|
||||
status?: 'ACTIVE' | 'DISABLED';
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
configJson?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
capabilitiesJson?: string;
|
||||
}
|
||||
|
||||
export class ManualShipOrderDto {
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
logisticsCompany: string;
|
||||
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
trackingNo: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
manualQueryUrl?: string;
|
||||
}
|
||||
|
||||
export class HqLogisticsShipDto extends ManualShipOrderDto {}
|
||||
|
||||
export class CreateStoreMediaDto {
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
|
||||
Reference in New Issue
Block a user