chore: restore files unintentionally deleted in 6c61a4e

This commit is contained in:
yeuimu
2026-08-26 17:54:35 +08:00
parent 6c61a4e871
commit 005ab5b585
486 changed files with 114058 additions and 0 deletions
+119
View File
@@ -0,0 +1,119 @@
// ============================================================
// @inkreach/shared-types — 跨子项目共享类型定义
// ============================================================
// 纯类型 exports,无运行时依赖。子项目通过 import type { ... } from '@inkreach/shared-types' 引入。
// ----------------------------------------------------------
// Generic Response Wrappers
// ----------------------------------------------------------
/** 分页响应包装 */
export interface PaginatedResult<T> {
items: T[];
total: number;
page: number;
pageSize: number;
}
/** NestJS 后端 API 响应包络 */
export interface BackendEnvelope<T> {
data: T;
success: boolean;
}
// ----------------------------------------------------------
// Core Entity Data Interfaces (flat, no decorators)
// ----------------------------------------------------------
export interface CountryData {
id: string;
countryName: string;
countryIcon: string | null;
countryCode: string | null;
createdAt?: string;
updatedAt?: string;
}
export interface CategoryData {
id: string;
categoryName: string;
categoryIcon: string | null;
sdsCategoryId: string | null;
parentCategoryId: string | null;
children?: CategoryData[];
_count?: { goods: number };
}
export interface TagData {
id: string;
tagName: string;
tagColor: string | null;
tagFontColor: string | null;
tagGroupId: string | null;
sortOrder: number;
timing: string | null;
createdAt?: string;
updatedAt?: string;
}
export interface TagGroupData {
id: string;
groupName: string;
groupColor: string | null;
groupIcon: string | null;
sortOrder: number;
_count?: { tags: number };
createdAt?: string;
updatedAt?: string;
}
export interface PositionData {
id: string;
positionName: string;
countryId: string;
categoryId: string;
createdAt?: string;
updatedAt?: string;
}
export interface OriginGoodData {
id: string;
sdsGoodId: string;
goodName: string;
sku: string | null;
mainImage: string | null;
createdAt?: string;
}
export interface TagInline {
id: string;
tagName: string;
tagColor: string | null;
tagFontColor: string | null;
}
export interface GoodData {
id: string;
goodName: string;
goodImage: string | null;
goodPriority: number;
originGoodId: string;
originGood?: OriginGoodData;
countryId: string;
country?: CountryData;
categoryId: string;
category?: CategoryData;
tagId?: string;
tag?: TagInline;
tags: TagInline[];
positionId?: string;
position?: PositionData;
createdAt: string;
updatedAt: string;
}
export interface UserData {
id: string;
username: string;
email?: string;
}