后端类型定义迁移到 TypeScript

This commit is contained in:
yml
2026-05-21 13:42:18 +08:00
parent 1476522ab5
commit 1d74b63800
17 changed files with 1233 additions and 1551 deletions
@@ -1,93 +0,0 @@
// @ts-check
export {}
/**
* @typedef {{
* userId?: number | string
* username?: string
* role?: string
* allowedInventoryGroups?: string[]
* }} AdminViewerSessionInput
*/
/**
* @typedef {{
* page?: number | string
* pageSize?: number | string
* platformOrderId?: string
* payStatus?: string
* skuCode?: string
* dateFrom?: string
* dateTo?: string
* }} AdminOrderListQueryInput
*/
/**
* @typedef {{
* page?: number | string
* pageSize?: number | string
* status?: string
* platformOrderId?: string
* taskNo?: string
* skuCode?: string
* roleId?: string
* dateFrom?: string
* dateTo?: string
* }} AdminTaskListQueryInput
*/
/**
* @typedef {{
* page?: number | string
* pageSize?: number | string
* skuCode?: string
* credentialType?: string
* status?: string
* batchNo?: string
* inventoryGroupCode?: string
* }} AdminInventoryListQueryInput
*/
/**
* @typedef {{
* credentialType?: string
* keyword?: string
* limit?: number | string
* inventoryGroupCode?: string
* }} AdminInventorySkuSuggestionQueryInput
*/
/**
* @typedef {{
* page?: number | string
* pageSize?: number | string
* provider?: string
* platform?: string
* platformOrderId?: string
* processed?: string
* visibility?: string
* relatedOrderId?: string
* dateFrom?: string
* dateTo?: string
* }} AdminWebhookEventListQueryInput
*/
/**
* @typedef {{
* page?: number | string
* pageSize?: number | string
* provider?: string
* platform?: string
* status?: string
* shopId?: string
* platformOrderId?: string
* taskNo?: string
* dateFrom?: string
* dateTo?: string
* }} AdminMessageDeliveryListQueryInput
*/
/**
* @typedef {number | string} AdminEntityIdInput
*/
@@ -0,0 +1,73 @@
export type AdminViewerSessionInput = {
userId?: number | string
username?: string
role?: string
allowedInventoryGroups?: string[]
}
export type AdminOrderListQueryInput = {
page?: number | string
pageSize?: number | string
platformOrderId?: string
payStatus?: string
skuCode?: string
dateFrom?: string
dateTo?: string
}
export type AdminTaskListQueryInput = {
page?: number | string
pageSize?: number | string
status?: string
platformOrderId?: string
taskNo?: string
skuCode?: string
roleId?: string
dateFrom?: string
dateTo?: string
}
export type AdminInventoryListQueryInput = {
page?: number | string
pageSize?: number | string
skuCode?: string
credentialType?: string
status?: string
batchNo?: string
inventoryGroupCode?: string
}
export type AdminInventorySkuSuggestionQueryInput = {
credentialType?: string
keyword?: string
limit?: number | string
inventoryGroupCode?: string
}
export type AdminWebhookEventListQueryInput = {
page?: number | string
pageSize?: number | string
provider?: string
platform?: string
platformOrderId?: string
processed?: string
visibility?: string
relatedOrderId?: string
dateFrom?: string
dateTo?: string
}
export type AdminMessageDeliveryListQueryInput = {
page?: number | string
pageSize?: number | string
provider?: string
platform?: string
status?: string
shopId?: string
platformOrderId?: string
taskNo?: string
dateFrom?: string
dateTo?: string
}
export type AdminEntityIdInput = number | string
-206
View File
@@ -1,206 +0,0 @@
// @ts-check
export {}
/**
* @typedef {{
* totalBindingCount: number
* reservedBindingCount: number
* consumedBindingCount: number
* releasedBindingCount: number
* roleKeys: string[]
* }} AdminTaskBindingSummary
*/
/**
* @typedef {{
* status: string
* trigger: string
* reason: string
* platformOrderId: string
* responseStatus: number
* errorMessage: string
* requestId: string
* updatedAt: string | null
* }} AdminAgisoAutoDeliveryStatus
*/
/**
* @typedef {{
* orderId: number
* provider: string
* platform: string
* shopId: string
* shopName: string
* platformOrderId: string
* orderStatus: string
* payStatus: string
* buyerId: string
* buyerName: string
* receiverContact: string
* totalAmount: string
* totalAmountFen: number
* currency: string
* paidAt: string | null
* createdAt: string
* updatedAt: string
* itemCount: number
* totalQuantity: number
* itemSummary: string
* taskCount: number
* systemBindingStatus: string
* userBindingStatus: string
* systemBoundTaskCount: number
* completedBindingTaskCount: number
* totalBindingCount: number
* reservedBindingCount: number
* consumedBindingCount: number
* releasedBindingCount: number
* }} AdminOrderListItem
*/
/**
* @typedef {{
* taskId: number
* taskNo: string
* platformOrderId: string
* skuCode: string
* skuName: string
* status: string
* executorKey: string
* deliveryStatus: string
* resultCode: string
* resultMessage: string
* systemBindingStatus: string
* userBindingStatus: string
* loginType: string
* roleName: string
* roleId: string
* browserSessionId: string
* claimedAt: string | null
* roleConfirmedAt: string | null
* redeemedAt: string | null
* retryCount: number
* bindingSummary: AdminTaskBindingSummary
* lastError: string
* createdAt: string
* updatedAt: string
* inventoryDisplayMasked: string
* inventoryCredentialType: string
* claimToken: string
* screenshotPath: string
* agisoAutoDelivery: AdminAgisoAutoDeliveryStatus | null
* }} AdminTaskListItem
*/
/**
* @typedef {{
* inventoryItemId: number
* skuCode: string
* batchNo: string
* credentialType: string
* inventoryGroupCode: string
* displayValue: string
* status: string
* reservedByTaskId: number | null
* reservedByTaskNo: string
* platformOrderId: string
* systemBindingStatus: string
* userBindingStatus: string
* invalidReason: string
* deliveredAt: string | null
* createdAt: string
* updatedAt: string
* }} AdminInventoryItemListItem
*/
/**
* @typedef {{
* eventId: number
* provider: string
* platform: string
* platformRaw: string
* shopId: string
* shopName: string
* eventType: string
* eventKey: string
* signatureValid: boolean
* processed: boolean
* processError: string
* visibilityLevel: string
* relatedOrderId: number | null
* platformOrderId: string
* buyerId: string
* buyerName: string
* totalAmount: string
* totalAmountFen: number
* currency: string
* itemCount: number
* taskCount: number
* messageText: string
* requestTimestamp: string
* requestSign: string
* aopic: string
* sourceHost: string
* sourceIp: string
* userAgent: string
* createdAt: string
* headers?: Record<string, unknown>
* query?: Record<string, unknown>
* body?: Record<string, unknown>
* payload?: Record<string, unknown>
* }} AdminWebhookEventListItem
*/
/**
* @typedef {{
* skuCode: string
* credentialType: string
* inventoryGroupCode: string
* totalCount: number
* availableCount: number
* latestUpdatedAt: string | null
* }} AdminInventorySkuSuggestion
*/
/**
* @typedef {{
* page: number
* pageSize: number
* total: number
* }} AdminPagination
*/
/**
* @typedef {{
* items: AdminOrderListItem[]
* pagination: AdminPagination
* }} AdminOrderListResponse
*/
/**
* @typedef {{
* items: AdminTaskListItem[]
* pagination: AdminPagination
* }} AdminTaskListResponse
*/
/**
* @typedef {{
* items: AdminInventoryItemListItem[]
* pagination: AdminPagination
* }} AdminInventoryListResponse
*/
/**
* @typedef {{
* items: AdminWebhookEventListItem[]
* pagination: AdminPagination
* }} AdminWebhookEventListResponse
*/
/**
* @typedef {{
* items: AdminInventorySkuSuggestion[]
* }} AdminInventorySkuSuggestionResponse
*/
+176
View File
@@ -0,0 +1,176 @@
export type AdminTaskBindingSummary = {
totalBindingCount: number
reservedBindingCount: number
consumedBindingCount: number
releasedBindingCount: number
roleKeys: string[]
}
export type AdminAgisoAutoDeliveryStatus = {
status: string
trigger: string
reason: string
platformOrderId: string
responseStatus: number
errorMessage: string
requestId: string
updatedAt: string | null
}
export type AdminOrderListItem = {
orderId: number
provider: string
platform: string
shopId: string
shopName: string
platformOrderId: string
orderStatus: string
payStatus: string
buyerId: string
buyerName: string
receiverContact: string
totalAmount: string
totalAmountFen: number
currency: string
paidAt: string | null
createdAt: string
updatedAt: string
itemCount: number
totalQuantity: number
itemSummary: string
taskCount: number
systemBindingStatus: string
userBindingStatus: string
systemBoundTaskCount: number
completedBindingTaskCount: number
totalBindingCount: number
reservedBindingCount: number
consumedBindingCount: number
releasedBindingCount: number
}
export type AdminTaskListItem = {
taskId: number
taskNo: string
platformOrderId: string
skuCode: string
skuName: string
status: string
executorKey: string
deliveryStatus: string
resultCode: string
resultMessage: string
systemBindingStatus: string
userBindingStatus: string
loginType: string
roleName: string
roleId: string
browserSessionId: string
claimedAt: string | null
roleConfirmedAt: string | null
redeemedAt: string | null
retryCount: number
bindingSummary: AdminTaskBindingSummary
lastError: string
createdAt: string
updatedAt: string
inventoryDisplayMasked: string
inventoryCredentialType: string
claimToken: string
screenshotPath: string
agisoAutoDelivery: AdminAgisoAutoDeliveryStatus | null
}
export type AdminInventoryItemListItem = {
inventoryItemId: number
skuCode: string
batchNo: string
credentialType: string
inventoryGroupCode: string
displayValue: string
status: string
reservedByTaskId: number | null
reservedByTaskNo: string
platformOrderId: string
systemBindingStatus: string
userBindingStatus: string
invalidReason: string
deliveredAt: string | null
createdAt: string
updatedAt: string
}
export type AdminWebhookEventListItem = {
eventId: number
provider: string
platform: string
platformRaw: string
shopId: string
shopName: string
eventType: string
eventKey: string
signatureValid: boolean
processed: boolean
processError: string
visibilityLevel: string
relatedOrderId: number | null
platformOrderId: string
buyerId: string
buyerName: string
totalAmount: string
totalAmountFen: number
currency: string
itemCount: number
taskCount: number
messageText: string
requestTimestamp: string
requestSign: string
aopic: string
sourceHost: string
sourceIp: string
userAgent: string
createdAt: string
headers?: Record<string, unknown>
query?: Record<string, unknown>
body?: Record<string, unknown>
payload?: Record<string, unknown>
}
export type AdminInventorySkuSuggestion = {
skuCode: string
credentialType: string
inventoryGroupCode: string
totalCount: number
availableCount: number
latestUpdatedAt: string | null
}
export type AdminPagination = {
page: number
pageSize: number
total: number
}
export type AdminOrderListResponse = {
items: AdminOrderListItem[]
pagination: AdminPagination
}
export type AdminTaskListResponse = {
items: AdminTaskListItem[]
pagination: AdminPagination
}
export type AdminInventoryListResponse = {
items: AdminInventoryItemListItem[]
pagination: AdminPagination
}
export type AdminWebhookEventListResponse = {
items: AdminWebhookEventListItem[]
pagination: AdminPagination
}
export type AdminInventorySkuSuggestionResponse = {
items: AdminInventorySkuSuggestion[]
}
@@ -1,167 +0,0 @@
// @ts-check
export {};
/**
* @typedef {import('./admin-read-inputs.js').AdminInventoryListQueryInput} AdminInventoryRouteQuery
*/
/**
* @typedef {import('./admin-read-inputs.js').AdminInventorySkuSuggestionQueryInput} AdminInventorySkuSuggestionRouteQuery
*/
/**
* @typedef {import('./admin-read-inputs.js').AdminMessageDeliveryListQueryInput} AdminMessageDeliveryRouteQuery
*/
/**
* @typedef {import('./admin-read-inputs.js').AdminOrderListQueryInput} AdminOrderRouteQuery
*/
/**
* @typedef {import('./admin-read-inputs.js').AdminTaskListQueryInput} AdminTaskRouteQuery
*/
/**
* @typedef {import('./admin-read-inputs.js').AdminViewerSessionInput} AdminRouteAdminSession
*/
/**
* @typedef {import('./admin-read-inputs.js').AdminWebhookEventListQueryInput} AdminWebhookEventRouteQuery
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminKuaishouEticketSourceConfigInput} AdminKuaishouEticketSourceConfigRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminNotificationConfigInput} AdminNotificationConfigRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminNotificationTestInput} AdminNotificationTestRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminScheduledJobsConfigInput} AdminScheduledJobsConfigRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminAgisoShopConfigSaveInput} AdminAgisoShopConfigRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminKuaishouEticketDetailQueryInput} AdminKuaishouEticketDetailQueryRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminKuaishouEticketConsumeInput} AdminKuaishouEticketConsumeRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminKuaishouEticketShopInfoInput} AdminKuaishouEticketShopInfoRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminCloudtentaclesSourceConfigInput} AdminCloudtentaclesSourceConfigRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminKuaishouCloudFulfillmentConfigInput} AdminKuaishouCloudFulfillmentConfigRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminCloudtentaclesSendSmsCodeInput} AdminCloudtentaclesSendSmsCodeRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminCloudtentaclesTestLoginInput} AdminCloudtentaclesTestLoginRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminCloudtentaclesValidateSessionInput} AdminCloudtentaclesValidateSessionRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminCloudtentaclesCatalogQueryInput} AdminCloudtentaclesCatalogQueryRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminCloudtentaclesSkuBuyInput} AdminCloudtentaclesSkuBuyRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminCloudtentaclesSkuUseInput} AdminCloudtentaclesSkuUseRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminCloudtentaclesVirtualNumberInput} AdminCloudtentaclesVirtualNumberRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminCloudtentaclesFullFlowInput} AdminCloudtentaclesFullFlowRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminFulfillmentBindingConfigSaveInput} AdminFulfillmentBindingConfigRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminFulfillmentBindingLookupInput} AdminFulfillmentBindingLookupRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminInventoryCreateInput} AdminInventoryCreateRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminInventoryImportInput} AdminInventoryImportRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminInventoryInvalidateInput} AdminInventoryInvalidateRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminUserInventoryGroupsInput} AdminUserInventoryGroupsRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminTaskManualDispatchInput} AdminTaskManualDispatchRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminTaskKuaishouCloudDispatchInput} AdminTaskKuaishouCloudDispatchRouteBody
*/
/**
* @typedef {import('./admin-write-inputs.js').AdminManualRedeemCreateInput} AdminManualRedeemCreateRouteBody
*/
/**
* @typedef {{ inventoryItemId?: string }} AdminInventoryRouteParams
*/
/**
* @typedef {{ orderId?: string }} AdminOrderRouteParams
*/
/**
* @typedef {{ taskId?: string, bindingId?: string }} AdminTaskRouteParams
*/
/**
* @typedef {{ taskId?: string }} AdminManualRedeemRouteParams
*/
/**
* @typedef {{ eventId?: string }} AdminWebhookEventRouteParams
*/
/**
* @typedef {{ id?: string }} AdminEntityRouteParams
*/
/**
* @typedef {{ sourceKey?: string }} AdminCloudtentaclesSourceRouteParams
*/
@@ -0,0 +1,82 @@
import type {
AdminInventoryListQueryInput,
AdminInventorySkuSuggestionQueryInput,
AdminMessageDeliveryListQueryInput,
AdminOrderListQueryInput,
AdminTaskListQueryInput,
AdminViewerSessionInput,
AdminWebhookEventListQueryInput,
} from './admin-read-inputs.js'
import type {
AdminAgisoShopConfigSaveInput,
AdminCloudtentaclesCatalogQueryInput,
AdminCloudtentaclesFullFlowInput,
AdminCloudtentaclesSendSmsCodeInput,
AdminCloudtentaclesSkuBuyInput,
AdminCloudtentaclesSkuUseInput,
AdminCloudtentaclesSourceConfigInput,
AdminCloudtentaclesTestLoginInput,
AdminCloudtentaclesValidateSessionInput,
AdminCloudtentaclesVirtualNumberInput,
AdminFulfillmentBindingConfigSaveInput,
AdminFulfillmentBindingLookupInput,
AdminInventoryCreateInput,
AdminInventoryImportInput,
AdminInventoryInvalidateInput,
AdminKuaishouCloudFulfillmentConfigInput,
AdminKuaishouEticketConsumeInput,
AdminKuaishouEticketDetailQueryInput,
AdminKuaishouEticketShopInfoInput,
AdminKuaishouEticketSourceConfigInput,
AdminManualRedeemCreateInput,
AdminNotificationConfigInput,
AdminNotificationTestInput,
AdminScheduledJobsConfigInput,
AdminTaskKuaishouCloudDispatchInput,
AdminTaskManualDispatchInput,
AdminUserInventoryGroupsInput,
} from './admin-write-inputs.js'
export type AdminInventoryRouteQuery = AdminInventoryListQueryInput
export type AdminInventorySkuSuggestionRouteQuery = AdminInventorySkuSuggestionQueryInput
export type AdminMessageDeliveryRouteQuery = AdminMessageDeliveryListQueryInput
export type AdminOrderRouteQuery = AdminOrderListQueryInput
export type AdminTaskRouteQuery = AdminTaskListQueryInput
export type AdminRouteAdminSession = AdminViewerSessionInput
export type AdminWebhookEventRouteQuery = AdminWebhookEventListQueryInput
export type AdminKuaishouEticketSourceConfigRouteBody = AdminKuaishouEticketSourceConfigInput
export type AdminNotificationConfigRouteBody = AdminNotificationConfigInput
export type AdminNotificationTestRouteBody = AdminNotificationTestInput
export type AdminScheduledJobsConfigRouteBody = AdminScheduledJobsConfigInput
export type AdminAgisoShopConfigRouteBody = AdminAgisoShopConfigSaveInput
export type AdminKuaishouEticketDetailQueryRouteBody = AdminKuaishouEticketDetailQueryInput
export type AdminKuaishouEticketConsumeRouteBody = AdminKuaishouEticketConsumeInput
export type AdminKuaishouEticketShopInfoRouteBody = AdminKuaishouEticketShopInfoInput
export type AdminCloudtentaclesSourceConfigRouteBody = AdminCloudtentaclesSourceConfigInput
export type AdminKuaishouCloudFulfillmentConfigRouteBody = AdminKuaishouCloudFulfillmentConfigInput
export type AdminCloudtentaclesSendSmsCodeRouteBody = AdminCloudtentaclesSendSmsCodeInput
export type AdminCloudtentaclesTestLoginRouteBody = AdminCloudtentaclesTestLoginInput
export type AdminCloudtentaclesValidateSessionRouteBody = AdminCloudtentaclesValidateSessionInput
export type AdminCloudtentaclesCatalogQueryRouteBody = AdminCloudtentaclesCatalogQueryInput
export type AdminCloudtentaclesSkuBuyRouteBody = AdminCloudtentaclesSkuBuyInput
export type AdminCloudtentaclesSkuUseRouteBody = AdminCloudtentaclesSkuUseInput
export type AdminCloudtentaclesVirtualNumberRouteBody = AdminCloudtentaclesVirtualNumberInput
export type AdminCloudtentaclesFullFlowRouteBody = AdminCloudtentaclesFullFlowInput
export type AdminFulfillmentBindingConfigRouteBody = AdminFulfillmentBindingConfigSaveInput
export type AdminFulfillmentBindingLookupRouteBody = AdminFulfillmentBindingLookupInput
export type AdminInventoryCreateRouteBody = AdminInventoryCreateInput
export type AdminInventoryImportRouteBody = AdminInventoryImportInput
export type AdminInventoryInvalidateRouteBody = AdminInventoryInvalidateInput
export type AdminUserInventoryGroupsRouteBody = AdminUserInventoryGroupsInput
export type AdminTaskManualDispatchRouteBody = AdminTaskManualDispatchInput
export type AdminTaskKuaishouCloudDispatchRouteBody = AdminTaskKuaishouCloudDispatchInput
export type AdminManualRedeemCreateRouteBody = AdminManualRedeemCreateInput
export type AdminInventoryRouteParams = { inventoryItemId?: string }
export type AdminOrderRouteParams = { orderId?: string }
export type AdminTaskRouteParams = { taskId?: string, bindingId?: string }
export type AdminManualRedeemRouteParams = { taskId?: string }
export type AdminWebhookEventRouteParams = { eventId?: string }
export type AdminEntityRouteParams = { id?: string }
export type AdminCloudtentaclesSourceRouteParams = { sourceKey?: string }
@@ -1,378 +0,0 @@
// @ts-check
export {};
/**
* @typedef {{
* skuCode?: string
* displayValue?: string
* batchNo?: string
* credentialType?: string
* inventoryGroupCode?: string
* }} AdminInventoryCreateInput
*/
/**
* @typedef {{
* skuCode?: string
* displayValue?: string
* batchNo?: string
* credentialType?: string
* inventoryGroupCode?: string
* }} AdminInventoryImportRowInput
*/
/**
* @typedef {{
* rows?: AdminInventoryImportRowInput[]
* codes?: unknown[]
* skuCode?: string
* batchNo?: string
* credentialType?: string
* inventoryGroupCode?: string
* }} AdminInventoryImportInput
*/
/**
* @typedef {{
* inventoryGroupCodes?: string[]
* }} AdminUserInventoryGroupsInput
*/
/**
* @typedef {{
* messageTemplate?: string
* autoDeliveryMessageTemplate?: string
* }} AdminAgisoMessagingDefaultsInput
*/
/**
* @typedef {{
* shopId?: string
* shopName?: string
* accessToken?: string
* enabled?: boolean | null
* messageTemplate?: string
* autoDeliveryMessageTemplate?: string
* appSecret?: string
* apiVersion?: string
* sendMessageEndpoint?: string
* }} AdminAgisoShopConfigWriteItemInput
*/
/**
* @typedef {{
* defaults?: AdminAgisoMessagingDefaultsInput
* shops?: AdminAgisoShopConfigWriteItemInput[]
* }} AdminAgisoShopConfigSaveInput
*/
/**
* @typedef {{
* id?: string
* enabled?: boolean
* priority?: number | string
* provider?: string
* platform?: string
* shopId?: string
* internalSkuCode?: string
* internalSkuName?: string
* externalSkuCode?: string
* externalItemId?: string
* externalSkuName?: string
* resolvedSkuName?: string
* cloudSourceKey?: string
* cloudSourceKeyFallbacks?: string[]
* cloudSkuId?: number | string
* cloudSkuName?: string
* vnKey?: string
* autoBuyEnabled?: boolean
* minAssetReserve?: number | string
* autoReturnNumberAfterDispatch?: boolean
* autoConsumeAfterDispatch?: boolean
* kuaishouConsumeShopId?: string
* kuaishouConsumeShopName?: string
* notes?: string
* }} AdminKuaishouCloudFulfillmentItemInput
*/
/**
* @typedef {{
* enabled?: boolean
* items?: AdminKuaishouCloudFulfillmentItemInput[]
* }} AdminKuaishouCloudFulfillmentConfigInput
*/
/**
* @typedef {{
* shopId?: string
* kshopName?: string
* cookie?: string
* userAvatar?: string
* enabled?: boolean
* }} AdminKuaishouEticketShopConfigWriteItemInput
*/
/**
* @typedef {{
* enabled?: boolean
* baseUrl?: string
* shops?: AdminKuaishouEticketShopConfigWriteItemInput[]
* }} AdminKuaishouEticketSourceConfigInput
*/
/**
* @typedef {{
* id?: string
* name?: string
* deviceKey?: string
* enabled?: boolean
* }} AdminNotificationBarkRecipientInput
*/
/**
* @typedef {{
* enabled?: boolean
* channels?: {
* bark?: {
* enabled?: boolean
* serverUrl?: string
* recipients?: AdminNotificationBarkRecipientInput[]
* }
* }
* }} AdminNotificationConfigInput
*/
/**
* @typedef {{
* title?: string
* body?: string
* url?: string
* }} AdminNotificationTestInput
*/
/**
* @typedef {{
* id?: string
* type?: string
* enabled?: boolean
* intervalSeconds?: number | string
* cooldownSeconds?: number | string
* config?: {
* assetThreshold?: number | string
* }
* }} AdminScheduledJobInput
*/
/**
* @typedef {{
* enabled?: boolean
* jobs?: AdminScheduledJobInput[]
* }} AdminScheduledJobsConfigInput
*/
/**
* @typedef {{
* baseUrl?: string
* shopId?: string
* cookie?: string
* }} AdminKuaishouEticketShopInfoInput
*/
/**
* @typedef {{
* baseUrl?: string
* shopId?: string
* cookie?: string
* eTicketId?: string
* }} AdminKuaishouEticketDetailQueryInput
*/
/**
* @typedef {{
* baseUrl?: string
* shopId?: string
* cookie?: string
* eTicketId?: string
* oid?: string
* formToken?: string
* num?: number | string
* storeId?: string
* }} AdminKuaishouEticketConsumeInput
*/
/**
* @typedef {{
* sourceKey?: string
* enabled?: boolean
* baseUrl?: string
* username?: string
* password?: string
* phone?: string
* deviceId?: string
* deviceType?: number | string
* sources?: AdminCloudtentaclesSourceConfigInput[]
* }} AdminCloudtentaclesSourceConfigInput
*/
/**
* @typedef {{
* sourceKey?: string
* baseUrl?: string
* username?: string
* phone?: string
* deviceId?: string
* deviceType?: number | string
* }} AdminCloudtentaclesSendSmsCodeInput
*/
/**
* @typedef {{
* sourceKey?: string
* baseUrl?: string
* username?: string
* password?: string
* phone?: string
* code?: string
* deviceId?: string
* deviceType?: number | string
* }} AdminCloudtentaclesTestLoginInput
*/
/**
* @typedef {{
* sourceKey?: string
* baseUrl?: string
* token?: string
* deviceId?: string
* deviceType?: number | string
* }} AdminCloudtentaclesValidateSessionInput
*/
/**
* @typedef {{
* sourceKey?: string
* baseUrl?: string
* token?: string
* deviceId?: string
* deviceType?: number | string
* }} AdminCloudtentaclesCatalogQueryInput
*/
/**
* @typedef {{
* sourceKey?: string
* baseUrl?: string
* token?: string
* deviceId?: string
* deviceType?: number | string
* id?: number | string
* count?: number | string
* }} AdminCloudtentaclesSkuBuyInput
*/
/**
* @typedef {{
* sourceKey?: string
* baseUrl?: string
* token?: string
* deviceId?: string
* deviceType?: number | string
* id?: number | string
* virtualNumberId?: number | string
* phone?: string
* }} AdminCloudtentaclesSkuUseInput
*/
/**
* @typedef {{
* sourceKey?: string
* baseUrl?: string
* token?: string
* deviceId?: string
* deviceType?: number | string
* key?: string
* id?: number | string
* phone?: string
* code?: string
* }} AdminCloudtentaclesVirtualNumberInput
*/
/**
* @typedef {{
* sourceKey?: string
* baseUrl?: string
* token?: string
* deviceId?: string
* deviceType?: number | string
* skuId?: number | string
* skuCount?: number | string
* vnKey?: string
* }} AdminCloudtentaclesFullFlowInput
*/
/**
* @typedef {{
* provider?: string
* platform?: string
* shopId?: string
* platformOrderId?: string
* }} AdminFulfillmentBindingLookupInput
*/
/**
* @typedef {{
* provider?: string
* platform?: string
* shopId?: string
* shopName?: string
* skuCode?: string
* skuName?: string
* profileKey?: string
* enabled?: boolean
* priority?: number | string
* config?: Record<string, unknown>
* match?: {
* externalSkuCode?: string
* externalItemId?: string
* externalSkuName?: string
* config?: Record<string, unknown>
* }
* }} AdminFulfillmentBindingConfigWriteItemInput
*/
/**
* @typedef {{
* bindings?: AdminFulfillmentBindingConfigWriteItemInput[]
* }} AdminFulfillmentBindingConfigSaveInput
*/
/**
* @typedef {{
* reason?: string
* }} AdminInventoryInvalidateInput
*/
/**
* @typedef {{
* outcome?: string
* resultMessage?: string
* deliveryReference?: string
* deliveredCredential?: string
* }} AdminTaskManualDispatchInput
*/
/**
* @typedef {{
* ticketCode?: string
* }} AdminTaskKuaishouCloudDispatchInput
*/
/**
* @typedef {{
* proofValue?: string
* skuCode?: string
* skuName?: string
* remark?: string
* }} AdminManualRedeemCreateInput
*/
@@ -0,0 +1,304 @@
export type AdminInventoryCreateInput = {
skuCode?: string
displayValue?: string
batchNo?: string
credentialType?: string
inventoryGroupCode?: string
}
export type AdminInventoryImportRowInput = {
skuCode?: string
displayValue?: string
batchNo?: string
credentialType?: string
inventoryGroupCode?: string
}
export type AdminInventoryImportInput = {
rows?: AdminInventoryImportRowInput[]
codes?: unknown[]
skuCode?: string
batchNo?: string
credentialType?: string
inventoryGroupCode?: string
}
export type AdminUserInventoryGroupsInput = {
inventoryGroupCodes?: string[]
}
export type AdminAgisoMessagingDefaultsInput = {
messageTemplate?: string
autoDeliveryMessageTemplate?: string
}
export type AdminAgisoShopConfigWriteItemInput = {
shopId?: string
shopName?: string
accessToken?: string
enabled?: boolean | null
messageTemplate?: string
autoDeliveryMessageTemplate?: string
appSecret?: string
apiVersion?: string
sendMessageEndpoint?: string
}
export type AdminAgisoShopConfigSaveInput = {
defaults?: AdminAgisoMessagingDefaultsInput
shops?: AdminAgisoShopConfigWriteItemInput[]
}
export type AdminKuaishouCloudFulfillmentItemInput = {
id?: string
enabled?: boolean
priority?: number | string
provider?: string
platform?: string
shopId?: string
internalSkuCode?: string
internalSkuName?: string
externalSkuCode?: string
externalItemId?: string
externalSkuName?: string
resolvedSkuName?: string
cloudSourceKey?: string
cloudSourceKeyFallbacks?: string[]
cloudSkuId?: number | string
cloudSkuName?: string
vnKey?: string
autoBuyEnabled?: boolean
minAssetReserve?: number | string
autoReturnNumberAfterDispatch?: boolean
autoConsumeAfterDispatch?: boolean
kuaishouConsumeShopId?: string
kuaishouConsumeShopName?: string
notes?: string
}
export type AdminKuaishouCloudFulfillmentConfigInput = {
enabled?: boolean
items?: AdminKuaishouCloudFulfillmentItemInput[]
}
export type AdminKuaishouEticketShopConfigWriteItemInput = {
shopId?: string
kshopName?: string
cookie?: string
userAvatar?: string
enabled?: boolean
}
export type AdminKuaishouEticketSourceConfigInput = {
enabled?: boolean
baseUrl?: string
shops?: AdminKuaishouEticketShopConfigWriteItemInput[]
}
export type AdminNotificationBarkRecipientInput = {
id?: string
name?: string
deviceKey?: string
enabled?: boolean
}
export type AdminNotificationConfigInput = {
enabled?: boolean
channels?: {
bark?: {
enabled?: boolean
serverUrl?: string
recipients?: AdminNotificationBarkRecipientInput[]
}
}
}
export type AdminNotificationTestInput = {
title?: string
body?: string
url?: string
}
export type AdminScheduledJobInput = {
id?: string
type?: string
enabled?: boolean
intervalSeconds?: number | string
cooldownSeconds?: number | string
config?: {
assetThreshold?: number | string
}
}
export type AdminScheduledJobsConfigInput = {
enabled?: boolean
jobs?: AdminScheduledJobInput[]
}
export type AdminKuaishouEticketShopInfoInput = {
baseUrl?: string
shopId?: string
cookie?: string
}
export type AdminKuaishouEticketDetailQueryInput = {
baseUrl?: string
shopId?: string
cookie?: string
eTicketId?: string
}
export type AdminKuaishouEticketConsumeInput = {
baseUrl?: string
shopId?: string
cookie?: string
eTicketId?: string
oid?: string
formToken?: string
num?: number | string
storeId?: string
}
export type AdminCloudtentaclesSourceConfigInput = {
sourceKey?: string
enabled?: boolean
baseUrl?: string
username?: string
password?: string
phone?: string
deviceId?: string
deviceType?: number | string
sources?: AdminCloudtentaclesSourceConfigInput[]
}
export type AdminCloudtentaclesSendSmsCodeInput = {
sourceKey?: string
baseUrl?: string
username?: string
phone?: string
deviceId?: string
deviceType?: number | string
}
export type AdminCloudtentaclesTestLoginInput = {
sourceKey?: string
baseUrl?: string
username?: string
password?: string
phone?: string
code?: string
deviceId?: string
deviceType?: number | string
}
export type AdminCloudtentaclesValidateSessionInput = {
sourceKey?: string
baseUrl?: string
token?: string
deviceId?: string
deviceType?: number | string
}
export type AdminCloudtentaclesCatalogQueryInput = {
sourceKey?: string
baseUrl?: string
token?: string
deviceId?: string
deviceType?: number | string
}
export type AdminCloudtentaclesSkuBuyInput = {
sourceKey?: string
baseUrl?: string
token?: string
deviceId?: string
deviceType?: number | string
id?: number | string
count?: number | string
}
export type AdminCloudtentaclesSkuUseInput = {
sourceKey?: string
baseUrl?: string
token?: string
deviceId?: string
deviceType?: number | string
id?: number | string
virtualNumberId?: number | string
phone?: string
}
export type AdminCloudtentaclesVirtualNumberInput = {
sourceKey?: string
baseUrl?: string
token?: string
deviceId?: string
deviceType?: number | string
key?: string
id?: number | string
phone?: string
code?: string
}
export type AdminCloudtentaclesFullFlowInput = {
sourceKey?: string
baseUrl?: string
token?: string
deviceId?: string
deviceType?: number | string
skuId?: number | string
skuCount?: number | string
vnKey?: string
}
export type AdminFulfillmentBindingLookupInput = {
provider?: string
platform?: string
shopId?: string
platformOrderId?: string
}
export type AdminFulfillmentBindingConfigWriteItemInput = {
provider?: string
platform?: string
shopId?: string
shopName?: string
skuCode?: string
skuName?: string
profileKey?: string
enabled?: boolean
priority?: number | string
config?: Record<string, unknown>
match?: {
externalSkuCode?: string
externalItemId?: string
externalSkuName?: string
config?: Record<string, unknown>
}
}
export type AdminFulfillmentBindingConfigSaveInput = {
bindings?: AdminFulfillmentBindingConfigWriteItemInput[]
}
export type AdminInventoryInvalidateInput = {
reason?: string
}
export type AdminTaskManualDispatchInput = {
outcome?: string
resultMessage?: string
deliveryReference?: string
deliveredCredential?: string
}
export type AdminTaskKuaishouCloudDispatchInput = {
ticketCode?: string
}
export type AdminManualRedeemCreateInput = {
proofValue?: string
skuCode?: string
skuName?: string
remark?: string
}
@@ -1,109 +0,0 @@
// @ts-check
export {}
/**
* @typedef {import('./admin-read-models.js').AdminInventoryItemListItem} AdminInventoryItemListItem
*/
/**
* @typedef {import('./admin-read-models.js').AdminInventorySkuSuggestion} AdminInventorySkuSuggestion
*/
/**
* @typedef {{
* inventoryItem: AdminInventoryItemListItem | null
* }} AdminInventoryMutationResponse
*/
/**
* @typedef {{
* total: number
* created: number
* duplicated: number
* }} AdminInventoryImportResponse
*/
/**
* @typedef {{
* items: AdminInventorySkuSuggestion[]
* }} AdminInventoryGroupListResponse
*/
/**
* @typedef {{
* messageTemplate: string
* autoDeliveryMessageTemplate: string
* }} AdminAgisoMessagingDefaults
*/
/**
* @typedef {{
* shopId: string
* shopName: string
* accessToken: string
* accessTokenMasked: string
* enabled: boolean | null
* messageTemplate: string
* autoDeliveryMessageTemplate: string
* appSecretConfigured: boolean
* apiVersion: string
* sendMessageEndpoint: string
* }} AdminAgisoShopConfigItem
*/
/**
* @typedef {{
* filePath: string
* defaults: AdminAgisoMessagingDefaults
* shops: AdminAgisoShopConfigItem[]
* }} AdminAgisoShopConfigSaveResponse
*/
/**
* @typedef {{
* eventId: number
* replayed: boolean
* result: unknown
* }} AdminWebhookReplayResponse
*/
/**
* @typedef {{
* taskId: number
* taskNo: string
* status: string
* deliveryStatus: string
* resultCode: string
* resultMessage: string
* inventoryItemId: number | null
* primaryClaimTokenId: number | null
* lastError: string
* updatedAt: string
* }} AdminTaskActionPayload
*/
/**
* @typedef {{
* task: AdminTaskActionPayload
* claimUrl?: string
* token?: string
* }} AdminTaskActionResponse
*/
/**
* @typedef {AdminTaskActionResponse & {
* bindingId: number
* inventoryItemId: number
* }} AdminTaskBindingReleaseResponse
*/
/**
* @typedef {'delivered' | 'failed'} AdminManualDispatchOutcome
*/
/**
* @typedef {AdminTaskActionResponse & {
* outcome: AdminManualDispatchOutcome
* }} AdminTaskManualDispatchResponse
*/
@@ -0,0 +1,80 @@
import type {
AdminInventoryItemListItem,
AdminInventorySkuSuggestion,
} from './admin-read-models.js'
export type { AdminInventoryItemListItem, AdminInventorySkuSuggestion }
export type AdminInventoryMutationResponse = {
inventoryItem: AdminInventoryItemListItem | null
}
export type AdminInventoryImportResponse = {
total: number
created: number
duplicated: number
}
export type AdminInventoryGroupListResponse = {
items: AdminInventorySkuSuggestion[]
}
export type AdminAgisoMessagingDefaults = {
messageTemplate: string
autoDeliveryMessageTemplate: string
}
export type AdminAgisoShopConfigItem = {
shopId: string
shopName: string
accessToken: string
accessTokenMasked: string
enabled: boolean | null
messageTemplate: string
autoDeliveryMessageTemplate: string
appSecretConfigured: boolean
apiVersion: string
sendMessageEndpoint: string
}
export type AdminAgisoShopConfigSaveResponse = {
filePath: string
defaults: AdminAgisoMessagingDefaults
shops: AdminAgisoShopConfigItem[]
}
export type AdminWebhookReplayResponse = {
eventId: number
replayed: boolean
result: unknown
}
export type AdminTaskActionPayload = {
taskId: number
taskNo: string
status: string
deliveryStatus: string
resultCode: string
resultMessage: string
inventoryItemId: number | null
primaryClaimTokenId: number | null
lastError: string
updatedAt: string
}
export type AdminTaskActionResponse = {
task: AdminTaskActionPayload
claimUrl?: string
token?: string
}
export type AdminTaskBindingReleaseResponse = AdminTaskActionResponse & {
bindingId: number
inventoryItemId: number
}
export type AdminManualDispatchOutcome = 'delivered' | 'failed'
export type AdminTaskManualDispatchResponse = AdminTaskActionResponse & {
outcome: AdminManualDispatchOutcome
}
-231
View File
@@ -1,231 +0,0 @@
// @ts-check
export {}
/**
* @typedef {{
* page?: number
* pageSize?: number
* platformOrderId?: string
* payStatus?: string
* skuCode?: string
* dateFrom?: string
* dateTo?: string
* }} OrderListQueryInput
*/
/**
* @typedef {{
* provider: string
* platform: string
* shopId?: string
* shopName?: string
* platformOrderId: string
* orderStatus: string
* payStatus: string
* buyerId: string
* buyerName: string
* receiverContact: string
* totalAmount: number | string
* currency: string
* rawPayloadJson?: string | Record<string, unknown>
* paidAt?: string | null
* }} OrderWriteInputBase
*/
/**
* @typedef {OrderWriteInputBase & {
* createdAt: string
* updatedAt: string
* }} OrderCreateInput
*/
/**
* @typedef {OrderWriteInputBase & {
* updatedAt: string
* createdAt?: string
* }} OrderUpdateInput
*/
/**
* @typedef {{
* skuCode: string
* skuName: string
* quantity: number
* specJson?: string | Record<string, unknown>
* itemSnapshotJson?: string | Record<string, unknown>
* createdAt: string
* updatedAt: string
* }} OrderItemReplaceInput
*/
/**
* @typedef {{
* page?: number
* pageSize?: number
* status?: string
* platformOrderId?: string
* taskNo?: string
* skuCode?: string
* roleId?: string
* dateFrom?: string
* dateTo?: string
* }} TaskListQueryInput
*/
/**
* @typedef {{
* browserSessionId?: string
* loginType?: string
* nickname?: string
* roleId?: string
* roleName?: string
* area?: string
* partitionName?: string
* screenshotPath?: string
* artifactsJson?: string | Record<string, unknown>
* stateJson?: string | Record<string, unknown>
* }} TaskTencentContextPatch
*/
/**
* @typedef {{
* orderId: number
* orderItemId: number
* unitIndex: number
* taskNo: string
* provider: string
* platform: string
* shopId?: string
* shopName?: string
* platformOrderId: string
* profileId: number | string
* executorKey: string
* taskStatus?: string
* inventoryStatus?: string
* deliveryStatus?: string
* resultCode?: string
* resultMessage?: string
* claimToken?: string
* claimExpiresAt?: string | null
* automationMode?: string
* requiresClaim?: boolean
* userActionStatus?: string
* attemptCount?: number
* lastError?: string
* contextJson?: string | Record<string, unknown>
* createdAt: string
* updatedAt: string
* tencentContext?: TaskTencentContextPatch
* }} TaskCreateInput
*/
/**
* @typedef {{
* task_status?: string
* inventory_status?: string
* delivery_status?: string
* result_code?: string
* result_message?: string
* claim_token?: string
* claim_expires_at?: string | null
* automation_mode?: string
* requires_claim?: boolean
* user_action_status?: string
* attempt_count?: number
* last_error?: string
* context_json?: string | Record<string, unknown>
* claimed_at?: string | null
* role_confirmed_at?: string | null
* redeemed_at?: string | null
* updated_at?: string
* browser_session_id?: string
* login_type?: string
* nickname?: string
* role_id?: string
* role_name?: string
* area?: string
* partition_name?: string
* screenshot_path?: string
* artifacts_json?: string | Record<string, unknown>
* state_json?: string | Record<string, unknown>
* }} TaskUpdatePatch
*/
/**
* @typedef {{
* page?: number
* pageSize?: number
* skuCode?: string
* credentialType?: string
* status?: string
* batchNo?: string
* inventoryGroupCode?: string
* allowedInventoryGroupCodes?: string[] | null
* }} InventoryListQueryInput
*/
/**
* @typedef {{
* credentialType?: string
* keyword?: string
* limit?: number
* inventoryGroupCode?: string
* allowedInventoryGroupCodes?: string[] | null
* }} InventorySkuSuggestionQueryInput
*/
/**
* @typedef {{
* batchNo?: string
* skuCode: string
* credentialType?: string
* inventoryGroupCode?: string
* displayValue: string
* payload?: Record<string, unknown>
* createdAt: string
* updatedAt: string
* }} InventoryCreateItemInput
*/
/**
* @typedef {{
* page?: number
* pageSize?: number
* provider?: string
* platform?: string
* platformOrderId?: string
* processed?: string
* visibility?: string
* relatedOrderId?: string
* dateFrom?: string
* dateTo?: string
* }} WebhookEventListQueryInput
*/
/**
* @typedef {{
* provider: string
* platform: string
* shopId?: string
* shopName?: string
* eventType: string
* eventKey: string
* signatureValid?: boolean
* headersJson?: string | Record<string, unknown>
* queryJson?: string | Record<string, unknown>
* bodyJson?: string | Record<string, unknown>
* processed?: boolean
* processError?: string
* relatedOrderId?: number | null
* createdAt: string
* }} WebhookEventCreateInput
*/
/**
* @typedef {{
* processed?: boolean
* process_error?: string
* related_order_id?: number | null
* }} WebhookEventUpdatePatch
*/
+197
View File
@@ -0,0 +1,197 @@
export type OrderListQueryInput = {
page?: number
pageSize?: number
platformOrderId?: string
payStatus?: string
skuCode?: string
dateFrom?: string
dateTo?: string
}
export type OrderWriteInputBase = {
provider: string
platform: string
shopId?: string
shopName?: string
platformOrderId: string
orderStatus: string
payStatus: string
buyerId: string
buyerName: string
receiverContact: string
totalAmount: number | string
currency: string
rawPayloadJson?: string | Record<string, unknown>
paidAt?: string | null
}
export type OrderCreateInput = OrderWriteInputBase & {
createdAt: string
updatedAt: string
}
export type OrderUpdateInput = OrderWriteInputBase & {
updatedAt: string
createdAt?: string
}
export type OrderItemReplaceInput = {
skuCode: string
skuName: string
quantity: number
specJson?: string | Record<string, unknown>
itemSnapshotJson?: string | Record<string, unknown>
createdAt: string
updatedAt: string
}
export type TaskListQueryInput = {
page?: number
pageSize?: number
status?: string
platformOrderId?: string
taskNo?: string
skuCode?: string
roleId?: string
dateFrom?: string
dateTo?: string
}
export type TaskTencentContextPatch = {
browserSessionId?: string
loginType?: string
nickname?: string
roleId?: string
roleName?: string
area?: string
partitionName?: string
screenshotPath?: string
artifactsJson?: string | Record<string, unknown>
stateJson?: string | Record<string, unknown>
}
export type TaskCreateInput = {
orderId: number
orderItemId: number
unitIndex: number
taskNo: string
provider: string
platform: string
shopId?: string
shopName?: string
platformOrderId: string
profileId: number | string
executorKey: string
taskStatus?: string
inventoryStatus?: string
deliveryStatus?: string
resultCode?: string
resultMessage?: string
claimToken?: string
claimExpiresAt?: string | null
automationMode?: string
requiresClaim?: boolean
userActionStatus?: string
attemptCount?: number
lastError?: string
contextJson?: string | Record<string, unknown>
createdAt: string
updatedAt: string
tencentContext?: TaskTencentContextPatch
}
export type TaskUpdatePatch = {
task_status?: string
inventory_status?: string
delivery_status?: string
result_code?: string
result_message?: string
claim_token?: string
claim_expires_at?: string | null
automation_mode?: string
requires_claim?: boolean
user_action_status?: string
attempt_count?: number
last_error?: string
context_json?: string | Record<string, unknown>
claimed_at?: string | null
role_confirmed_at?: string | null
redeemed_at?: string | null
updated_at?: string
browser_session_id?: string
login_type?: string
nickname?: string
role_id?: string
role_name?: string
area?: string
partition_name?: string
screenshot_path?: string
artifacts_json?: string | Record<string, unknown>
state_json?: string | Record<string, unknown>
}
export type InventoryListQueryInput = {
page?: number
pageSize?: number
skuCode?: string
credentialType?: string
status?: string
batchNo?: string
inventoryGroupCode?: string
allowedInventoryGroupCodes?: string[] | null
}
export type InventorySkuSuggestionQueryInput = {
credentialType?: string
keyword?: string
limit?: number
inventoryGroupCode?: string
allowedInventoryGroupCodes?: string[] | null
}
export type InventoryCreateItemInput = {
batchNo?: string
skuCode: string
credentialType?: string
inventoryGroupCode?: string
displayValue: string
payload?: Record<string, unknown>
createdAt: string
updatedAt: string
}
export type WebhookEventListQueryInput = {
page?: number
pageSize?: number
provider?: string
platform?: string
platformOrderId?: string
processed?: string
visibility?: string
relatedOrderId?: string
dateFrom?: string
dateTo?: string
}
export type WebhookEventCreateInput = {
provider: string
platform: string
shopId?: string
shopName?: string
eventType: string
eventKey: string
signatureValid?: boolean
headersJson?: string | Record<string, unknown>
queryJson?: string | Record<string, unknown>
bodyJson?: string | Record<string, unknown>
processed?: boolean
processError?: string
relatedOrderId?: number | null
createdAt: string
}
export type WebhookEventUpdatePatch = {
processed?: boolean
process_error?: string
related_order_id?: number | null
}
-220
View File
@@ -1,220 +0,0 @@
// @ts-check
export {}
/**
* @typedef {{
* id: number
* provider: string
* platform: string
* shop_id: string
* shop_name: string
* platform_order_id: string
* order_status: string
* pay_status: string
* buyer_id: string
* buyer_name: string
* receiver_contact: string
* total_amount: number | string
* currency: string
* raw_payload_json: string | Record<string, unknown>
* paid_at: string | null
* created_at: string
* updated_at: string
* }} OrderRow
*/
/**
* @typedef {OrderRow & {
* task_count?: number
* }} OrderListRow
*/
/**
* @typedef {{
* id: number
* order_id: number
* sku_code: string
* sku_name: string
* quantity: number
* spec_json: string | Record<string, unknown>
* item_snapshot_json?: string | Record<string, unknown>
* created_at?: string
* updated_at?: string
* }} OrderItemRow
*/
/**
* @typedef {{
* id: number
* order_id: number
* order_item_id: number
* platform_order_id: string
* task_no: string
* executor_key: string
* task_status: string
* delivery_status: string
* result_code: string
* result_message: string
* inventory_status: string
* user_action_status: string
* browser_session_id: string
* login_type: string
* role_name: string
* role_id: string
* claim_token: string
* claim_expires_at?: string | null
* primary_claim_token: string
* primary_claim_token_id: number | null
* primary_claim_expires_at?: string | null
* primary_inventory_item_id: number | null
* inventory_display_value: string
* primary_inventory_display_value: string
* inventory_credential_type?: string
* primary_inventory_credential_type?: string
* artifacts_json: string | Record<string, unknown>
* context_json: string | Record<string, unknown>
* screenshot_path: string
* last_error: string
* retry_count: number
* created_at: string
* updated_at: string
* claimed_at: string | null
* role_confirmed_at: string | null
* redeemed_at: string | null
* sku_code?: string
* sku_name?: string
* }} TaskRow
*/
/**
* @typedef {{
* id: number
* sku_code: string
* batch_no: string
* credential_type: string
* inventory_group_code: string
* display_value: string
* status: string
* invalid_reason: string
* delivered_at: string | null
* created_at: string
* updated_at: string
* reserved_by_task_id: number | null
* reserved_by_task_no: string
* platform_order_id: string
* }} InventoryItemRow
*/
/**
* @typedef {{
* sku_code: string
* credential_type: string
* inventory_group_code: string
* total_count: number
* available_count: number
* latest_updated_at: string | null
* }} InventorySkuSuggestionRow
*/
/**
* @typedef {{
* id: number
* provider: string
* platform: string
* shop_id: string
* shop_name: string
* event_type: string
* event_key: string
* signature_valid: boolean
* headers_json: string | Record<string, unknown>
* query_json: string | Record<string, unknown>
* body_json: string | Record<string, unknown>
* processed: boolean
* process_error: string
* related_order_id: number | null
* created_at: string
* }} WebhookEventRow
*/
/**
* @typedef {{
* id: number
* task_id: number
* inventory_item_id: number
* role_key: string
* quantity: number
* binding_status: string
* metadata_json: string | Record<string, unknown>
* invalid_reason: string
* consumed_at: string | null
* released_at: string | null
* created_at: string
* updated_at: string
* sku_code: string
* batch_no: string
* credential_type: string
* inventory_group_code: string
* display_value: string
* inventory_status: string
* }} TaskInventoryBindingRow
*/
/**
* @typedef {{
* task_id: number
* total_binding_count: number
* reserved_binding_count: number
* consumed_binding_count: number
* released_binding_count: number
* role_keys: string[]
* }} TaskInventoryBindingSummaryRow
*/
/**
* @typedef {{
* id: number
* token: string
* status: string
* expired_at: string
* created_at?: string
* updated_at?: string
* }} ClaimTokenRow
*/
/**
* @typedef {{
* id: number
* event_type: string
* payload_json: string | Record<string, unknown>
* created_at: string
* }} TaskEventRow
*/
/**
* @typedef {{
* items: OrderListRow[]
* total: number
* }} OrderListQueryResult
*/
/**
* @typedef {{
* items: TaskRow[]
* total: number
* }} TaskListQueryResult
*/
/**
* @typedef {{
* items: InventoryItemRow[]
* total: number
* }} InventoryListQueryResult
*/
/**
* @typedef {{
* items: WebhookEventRow[]
* total: number
* }} WebhookEventListQueryResult
*/
+186
View File
@@ -0,0 +1,186 @@
export type OrderRow = {
id: number
provider: string
platform: string
shop_id: string
shop_name: string
platform_order_id: string
order_status: string
pay_status: string
buyer_id: string
buyer_name: string
receiver_contact: string
total_amount: number | string
currency: string
raw_payload_json: string | Record<string, unknown>
paid_at: string | null
created_at: string
updated_at: string
}
export type OrderListRow = OrderRow & {
task_count?: number
}
export type OrderItemRow = {
id: number
order_id: number
sku_code: string
sku_name: string
quantity: number
spec_json: string | Record<string, unknown>
item_snapshot_json?: string | Record<string, unknown>
created_at?: string
updated_at?: string
}
export type TaskRow = {
id: number
order_id: number
order_item_id: number
platform_order_id: string
task_no: string
executor_key: string
task_status: string
delivery_status: string
result_code: string
result_message: string
inventory_status: string
user_action_status: string
browser_session_id: string
login_type: string
role_name: string
role_id: string
claim_token: string
claim_expires_at?: string | null
primary_claim_token: string
primary_claim_token_id: number | null
primary_claim_expires_at?: string | null
primary_inventory_item_id: number | null
inventory_display_value: string
primary_inventory_display_value: string
inventory_credential_type?: string
primary_inventory_credential_type?: string
artifacts_json: string | Record<string, unknown>
context_json: string | Record<string, unknown>
screenshot_path: string
last_error: string
retry_count: number
created_at: string
updated_at: string
claimed_at: string | null
role_confirmed_at: string | null
redeemed_at: string | null
sku_code?: string
sku_name?: string
}
export type InventoryItemRow = {
id: number
sku_code: string
batch_no: string
credential_type: string
inventory_group_code: string
display_value: string
status: string
invalid_reason: string
delivered_at: string | null
created_at: string
updated_at: string
reserved_by_task_id: number | null
reserved_by_task_no: string
platform_order_id: string
}
export type InventorySkuSuggestionRow = {
sku_code: string
credential_type: string
inventory_group_code: string
total_count: number
available_count: number
latest_updated_at: string | null
}
export type WebhookEventRow = {
id: number
provider: string
platform: string
shop_id: string
shop_name: string
event_type: string
event_key: string
signature_valid: boolean
headers_json: string | Record<string, unknown>
query_json: string | Record<string, unknown>
body_json: string | Record<string, unknown>
processed: boolean
process_error: string
related_order_id: number | null
created_at: string
}
export type TaskInventoryBindingRow = {
id: number
task_id: number
inventory_item_id: number
role_key: string
quantity: number
binding_status: string
metadata_json: string | Record<string, unknown>
invalid_reason: string
consumed_at: string | null
released_at: string | null
created_at: string
updated_at: string
sku_code: string
batch_no: string
credential_type: string
inventory_group_code: string
display_value: string
inventory_status: string
}
export type TaskInventoryBindingSummaryRow = {
task_id: number
total_binding_count: number
reserved_binding_count: number
consumed_binding_count: number
released_binding_count: number
role_keys: string[]
}
export type ClaimTokenRow = {
id: number
token: string
status: string
expired_at: string
created_at?: string
updated_at?: string
}
export type TaskEventRow = {
id: number
event_type: string
payload_json: string | Record<string, unknown>
created_at: string
}
export type OrderListQueryResult = {
items: OrderListRow[]
total: number
}
export type TaskListQueryResult = {
items: TaskRow[]
total: number
}
export type InventoryListQueryResult = {
items: InventoryItemRow[]
total: number
}
export type WebhookEventListQueryResult = {
items: WebhookEventRow[]
total: number
}
-143
View File
@@ -1,143 +0,0 @@
// @ts-check
export {};
/**
* @typedef {{
* username: string
* password: string
* role: string
* status?: string
* }} AdminDefaultUser
*/
/**
* @typedef {{
* enabled?: boolean
* shopName?: string
* accessToken?: string
* messageTemplate?: string
* autoDeliveryMessageTemplate?: string
* appSecret?: string
* apiVersion?: string
* sendMessageEndpoint?: string
* }} AgisoMessagingShopConfig
*/
/**
* @typedef {Record<string, AgisoMessagingShopConfig>} AgisoMessagingShopsConfig
*/
/**
* @typedef {{
* server: {
* port: number
* }
* browser: {
* chromePath: string
* headless: boolean | null
* devtools: boolean | null
* keepAlive: boolean | null
* prewarm: boolean | null
* slowMoMs: number | null
* }
* session: {
* debug: boolean
* }
* ocr: {
* baseUrl: string
* }
* data: {
* root: string
* }
* logging: {
* level: string
* }
* database: {
* url: string
* ssl: boolean
* maxConnections: number
* }
* orders: {
* claimBaseUrl: string
* tokenTtlHours: number
* }
* admin: {
* sessionSecret: string
* sessionTtlHours: number
* defaultUsers: AdminDefaultUser[]
* }
* platforms: {
* agiso: {
* appSecret: string
* tradeDetail: {
* endpoint: string
* apiVersion: string
* timeoutMs: number
* }
* autoDelivery: {
* enabled: boolean
* endpoint: string
* apiVersion: string
* }
* messaging: {
* enabled: boolean
* apiVersion: string
* sendMessageEndpoint: string
* messageTemplate: string
* autoDeliveryMessageTemplate: string
* shops: AgisoMessagingShopsConfig
* }
* }
* ninetyone: {
* userId: string
* secret: string
* version: string
* shopId: string
* shopName: string
* timestampToleranceSeconds: number
* cardsEncoding: string
* }
* cloudtentacles: {
* baseUrl: string
* timeoutMs: number
* sendSmsPath: string
* loginPath: string
* userInfoPath: string
* assetPath: string
* permissionPath: string
* categoriesPath: string
* skuListPath: string
* skuBuyPath: string
* skuUsePath: string
* knapsackPath: string
* vnListPath: string
* vnAppointPath: string
* vnGenerateLoginCodePath: string
* vnVerifCodePath: string
* vnVerifyLoginCodePath: string
* vnBindUrlPath: string
* vnBindInfoPath: string
* vnBackPath: string
* bindUrlTtlSeconds: number
* bindUrlProbeIntervalSeconds: number
* bindUrlProbeTimeoutMs: number
* bindUrlProbeUserAgent: string
* bindUrlProbeEndpoint: string
* bindUrlProbeChartId: string
* bindUrlProbeSubChartId: string
* bindUrlProbeIdeToken: string
* bindUrlProbeActivityUrl: string
* bindUrlProbeReferer: string
* bindUrlProbeExtraCookie: string
* publicKeyPem: string
* clientSource: string
* deviceId: string
* deviceType: number
* }
* }
* redeem: {
* proofMode: string
* }
* }} RuntimeConfig
*/
+131
View File
@@ -0,0 +1,131 @@
export type AdminDefaultUser = {
username: string
password: string
role: string
status?: string
}
export type AgisoMessagingShopConfig = {
enabled?: boolean
shopName?: string
accessToken?: string
messageTemplate?: string
autoDeliveryMessageTemplate?: string
appSecret?: string
apiVersion?: string
sendMessageEndpoint?: string
}
export type AgisoMessagingShopsConfig = Record<string, AgisoMessagingShopConfig>
export type RuntimeConfig = {
server: {
port: number
}
browser: {
chromePath: string
headless: boolean | null
devtools: boolean | null
keepAlive: boolean | null
prewarm: boolean | null
slowMoMs: number | null
}
session: {
debug: boolean
}
ocr: {
baseUrl: string
}
data: {
root: string
}
logging: {
level: string
}
database: {
url: string
ssl: boolean
maxConnections: number
}
orders: {
claimBaseUrl: string
tokenTtlHours: number
}
admin: {
sessionSecret: string
sessionTtlHours: number
defaultUsers: AdminDefaultUser[]
}
platforms: {
agiso: {
appSecret: string
tradeDetail: {
endpoint: string
apiVersion: string
timeoutMs: number
}
autoDelivery: {
enabled: boolean
endpoint: string
apiVersion: string
}
messaging: {
enabled: boolean
apiVersion: string
sendMessageEndpoint: string
messageTemplate: string
autoDeliveryMessageTemplate: string
shops: AgisoMessagingShopsConfig
}
}
ninetyone: {
userId: string
secret: string
version: string
shopId: string
shopName: string
timestampToleranceSeconds: number
cardsEncoding: string
}
cloudtentacles: {
baseUrl: string
timeoutMs: number
sendSmsPath: string
loginPath: string
userInfoPath: string
assetPath: string
permissionPath: string
categoriesPath: string
skuListPath: string
skuBuyPath: string
skuUsePath: string
knapsackPath: string
vnListPath: string
vnAppointPath: string
vnGenerateLoginCodePath: string
vnVerifCodePath: string
vnVerifyLoginCodePath: string
vnBindUrlPath: string
vnBindInfoPath: string
vnBackPath: string
bindUrlTtlSeconds: number
bindUrlProbeIntervalSeconds: number
bindUrlProbeTimeoutMs: number
bindUrlProbeUserAgent: string
bindUrlProbeEndpoint: string
bindUrlProbeChartId: string
bindUrlProbeSubChartId: string
bindUrlProbeIdeToken: string
bindUrlProbeActivityUrl: string
bindUrlProbeReferer: string
bindUrlProbeExtraCookie: string
publicKeyPem: string
clientSource: string
deviceId: string
deviceType: number
}
}
redeem: {
proofMode: string
}
}
+4 -4
View File
@@ -218,15 +218,15 @@
- `npm run typecheck` - `npm run typecheck`
- `npm run build` - `npm run build`
- `npm test` - `npm test`
11. `src/types/*.js` 已改写为真正的 `.ts` 类型导出文件,现有 JS JSDoc `import('...js').TypeName` 引用保持可用
## 下一步建议 ## 下一步建议
第一批继续推进时,建议按这个顺序: 第一批继续推进时,建议按这个顺序:
1. `src/types/*.js` 从 JSDoc typedef 正式改写为 `export type``.ts` 文件,并逐步更新引用 1. 继续迁移低风险 repository`order-item-repo``message-delivery-repo``webhook-event-repo`
2. 继续迁移低风险 repository`order-item-repo``message-delivery-repo``webhook-event-repo` 2. 拆分并迁移 `runtime.js`,把 env 解析、默认配置加载、配置合并分开
3. 拆分并迁移 `runtime.js`,把 env 解析、默认配置加载、配置合并分开 3. 为 webhook、库存换码、自动发货补测试
4. 为 webhook、库存换码、自动发货补测试
## 执行原则 ## 执行原则