169 lines
5.0 KiB
TypeScript
169 lines
5.0 KiB
TypeScript
import { ApiProperty } from '@midwayjs/swagger';
|
|
import { Rule, RuleType } from '@midwayjs/validate';
|
|
|
|
export class SiteConfig {
|
|
@ApiProperty({ example: '1', description: '站点 ID' })
|
|
@Rule(RuleType.string())
|
|
id: string;
|
|
|
|
@ApiProperty({ description: '站点 URL' })
|
|
@Rule(RuleType.string())
|
|
apiUrl: string;
|
|
|
|
@ApiProperty({ description: '站点 rest key' })
|
|
@Rule(RuleType.string())
|
|
consumerKey: string;
|
|
|
|
@ApiProperty({ description: '站点 rest 秘钥' })
|
|
@Rule(RuleType.string())
|
|
consumerSecret: string;
|
|
|
|
@ApiProperty({ description: '站点名' })
|
|
@Rule(RuleType.string())
|
|
name: string;
|
|
|
|
@ApiProperty({ description: '描述' })
|
|
@Rule(RuleType.string().allow('').optional())
|
|
description?: string;
|
|
|
|
@ApiProperty({ description: '平台类型', enum: ['woocommerce', 'shopyy'] })
|
|
@Rule(RuleType.string().valid('woocommerce', 'shopyy'))
|
|
type: string;
|
|
|
|
@ApiProperty({ description: 'SKU 前缀' })
|
|
@Rule(RuleType.string())
|
|
skuPrefix: string;
|
|
}
|
|
|
|
export class CreateSiteDTO {
|
|
@ApiProperty({ description: '站点 API URL', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
apiUrl?: string;
|
|
|
|
@ApiProperty({ description: '站点网站 URL', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
websiteUrl?: string;
|
|
|
|
@ApiProperty({ description: '站点 REST Key', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
consumerKey?: string;
|
|
|
|
@ApiProperty({ description: '站点 REST 秘钥', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
consumerSecret?: string;
|
|
|
|
@ApiProperty({ description: '访问令牌', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
token?: string;
|
|
|
|
@ApiProperty({ description: '站点名称' })
|
|
@Rule(RuleType.string())
|
|
name: string;
|
|
|
|
@ApiProperty({ description: '站点描述', required: false })
|
|
@Rule(RuleType.string().allow('').optional())
|
|
description?: string;
|
|
|
|
@ApiProperty({ description: '平台类型', enum: ['woocommerce', 'shopyy'], required: false })
|
|
@Rule(RuleType.string().valid('woocommerce', 'shopyy').optional())
|
|
type?: string;
|
|
|
|
@ApiProperty({ description: 'SKU 前缀', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
skuPrefix?: string;
|
|
|
|
// 区域
|
|
@ApiProperty({ description: '区域' })
|
|
@Rule(RuleType.array().items(RuleType.string()).optional())
|
|
areas?: string[];
|
|
|
|
// 绑定仓库
|
|
@ApiProperty({ description: '绑定仓库ID列表' })
|
|
@Rule(RuleType.array().items(RuleType.number()).optional())
|
|
stockPointIds?: number[];
|
|
}
|
|
|
|
export class UpdateSiteDTO {
|
|
@ApiProperty({ description: '站点 API URL', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
apiUrl?: string;
|
|
|
|
@ApiProperty({ description: '站点 REST Key', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
consumerKey?: string;
|
|
|
|
@ApiProperty({ description: '站点 REST 秘钥', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
consumerSecret?: string;
|
|
|
|
@ApiProperty({ description: '访问令牌', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
token?: string;
|
|
|
|
@ApiProperty({ description: '站点名称', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
name?: string;
|
|
|
|
@ApiProperty({ description: '站点描述', required: false })
|
|
@Rule(RuleType.string().allow('').optional())
|
|
description?: string;
|
|
|
|
@ApiProperty({ description: '是否禁用', required: false })
|
|
@Rule(RuleType.boolean().optional())
|
|
isDisabled?: boolean;
|
|
|
|
@ApiProperty({ description: '平台类型', enum: ['woocommerce', 'shopyy'], required: false })
|
|
@Rule(RuleType.string().valid('woocommerce', 'shopyy').optional())
|
|
type?: string;
|
|
|
|
@ApiProperty({ description: 'SKU 前缀', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
skuPrefix?: string;
|
|
|
|
// 区域
|
|
@ApiProperty({ description: '区域', required: false })
|
|
@Rule(RuleType.array().items(RuleType.string()).optional())
|
|
areas?: string[];
|
|
|
|
// 绑定仓库
|
|
@ApiProperty({ description: '绑定仓库ID列表' })
|
|
@Rule(RuleType.array().items(RuleType.number()).optional())
|
|
stockPointIds?: number[];
|
|
|
|
@ApiProperty({ description: '站点网站URL', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
websiteUrl?: string;
|
|
|
|
@ApiProperty({ description: 'Webhook URL', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
webhookUrl?: string;
|
|
}
|
|
|
|
export class QuerySiteDTO {
|
|
@ApiProperty({ description: '当前页码', required: false })
|
|
@Rule(RuleType.number().optional())
|
|
current?: number;
|
|
|
|
@ApiProperty({ description: '每页数量', required: false })
|
|
@Rule(RuleType.number().optional())
|
|
pageSize?: number;
|
|
|
|
@ApiProperty({ description: '搜索关键词', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
keyword?: string;
|
|
|
|
@ApiProperty({ description: '是否禁用', required: false })
|
|
@Rule(RuleType.boolean().optional())
|
|
isDisabled?: boolean;
|
|
|
|
@ApiProperty({ description: '站点ID列表(逗号分隔)', required: false })
|
|
@Rule(RuleType.string().optional())
|
|
ids?: string;
|
|
}
|
|
|
|
export class DisableSiteDTO {
|
|
@ApiProperty({ description: '是否禁用' })
|
|
@Rule(RuleType.boolean())
|
|
disabled: boolean;
|
|
}
|