165 lines
4.1 KiB
TypeScript
165 lines
4.1 KiB
TypeScript
|
|
declare namespace Api {
|
||
|
|
/**
|
||
|
|
* namespace Product
|
||
|
|
*
|
||
|
|
* backend api module: "project/product"
|
||
|
|
*/
|
||
|
|
namespace Product {
|
||
|
|
type ProductStatusCode = 'active' | 'paused' | 'archived' | 'abandoned';
|
||
|
|
|
||
|
|
type ProductStatusActionCode = 'pause' | 'resume' | 'archive' | 'abandon';
|
||
|
|
|
||
|
|
type ProductMemberStatus = 0 | 1;
|
||
|
|
|
||
|
|
interface PageParams {
|
||
|
|
pageNo: number;
|
||
|
|
pageSize: number;
|
||
|
|
}
|
||
|
|
|
||
|
|
interface PageResult<T = any> {
|
||
|
|
total: number;
|
||
|
|
list: T[];
|
||
|
|
}
|
||
|
|
|
||
|
|
interface Product {
|
||
|
|
/** 产品 ID */
|
||
|
|
id: string;
|
||
|
|
/** 产品编码 */
|
||
|
|
code: string;
|
||
|
|
/** 产品方向字典值 */
|
||
|
|
directionCode: string;
|
||
|
|
/** 产品名称 */
|
||
|
|
name: string;
|
||
|
|
/** 产品经理用户 ID */
|
||
|
|
managerUserId: string;
|
||
|
|
/** 产品描述 */
|
||
|
|
description?: string | null;
|
||
|
|
/** 产品状态编码 */
|
||
|
|
statusCode: ProductStatusCode;
|
||
|
|
/** 最近一次状态动作原因 */
|
||
|
|
lastStatusReason?: string | null;
|
||
|
|
/** 备注 */
|
||
|
|
remark?: string | null;
|
||
|
|
/** 创建时间 */
|
||
|
|
createTime: string;
|
||
|
|
/** 更新时间 */
|
||
|
|
updateTime: string;
|
||
|
|
}
|
||
|
|
|
||
|
|
interface ProductSettingBaseInfo {
|
||
|
|
/** 产品 ID */
|
||
|
|
id: string;
|
||
|
|
/** 产品编码 */
|
||
|
|
code: string;
|
||
|
|
/** 产品方向字典值 */
|
||
|
|
directionCode: string;
|
||
|
|
/** 产品名称 */
|
||
|
|
name: string;
|
||
|
|
/** 产品经理用户 ID */
|
||
|
|
managerUserId: string;
|
||
|
|
/** 产品经理昵称 */
|
||
|
|
managerUserNickname: string;
|
||
|
|
/** 产品描述 */
|
||
|
|
description?: string | null;
|
||
|
|
/** 当前产品状态 */
|
||
|
|
statusCode: ProductStatusCode;
|
||
|
|
/** 最近一次状态动作原因 */
|
||
|
|
lastStatusReason?: string | null;
|
||
|
|
}
|
||
|
|
|
||
|
|
interface ProductLifecycleAction {
|
||
|
|
actionCode: ProductStatusActionCode;
|
||
|
|
actionName: string;
|
||
|
|
needReason: boolean;
|
||
|
|
}
|
||
|
|
|
||
|
|
interface ProductLifecycleInfo {
|
||
|
|
statusCode: ProductStatusCode;
|
||
|
|
lastStatusReason?: string | null;
|
||
|
|
availableActions: ProductLifecycleAction[];
|
||
|
|
}
|
||
|
|
|
||
|
|
interface ProductSettings {
|
||
|
|
baseInfo: ProductSettingBaseInfo;
|
||
|
|
lifecycle: ProductLifecycleInfo;
|
||
|
|
}
|
||
|
|
|
||
|
|
interface ProductMember {
|
||
|
|
/** 团队关系 ID */
|
||
|
|
id: string;
|
||
|
|
/** 用户 ID */
|
||
|
|
userId: string;
|
||
|
|
/** 用户昵称 */
|
||
|
|
userNickname: string;
|
||
|
|
/** 角色 ID */
|
||
|
|
roleId: string;
|
||
|
|
/** 角色名称 */
|
||
|
|
roleName: string;
|
||
|
|
/** 角色编码 */
|
||
|
|
roleCode: string;
|
||
|
|
/** 是否当前产品经理 */
|
||
|
|
managerFlag: boolean;
|
||
|
|
/** 成员状态 */
|
||
|
|
status: ProductMemberStatus;
|
||
|
|
/** 加入时间 */
|
||
|
|
joinedTime: string;
|
||
|
|
/** 退出时间 */
|
||
|
|
leftTime?: string | null;
|
||
|
|
/** 备注 */
|
||
|
|
remark?: string | null;
|
||
|
|
}
|
||
|
|
|
||
|
|
type ProductSearchParams = CommonType.RecordNullable<
|
||
|
|
Pick<PageParams, 'pageNo' | 'pageSize'> &
|
||
|
|
Pick<Product, 'directionCode' | 'managerUserId' | 'statusCode'> & {
|
||
|
|
keyword: string;
|
||
|
|
updateTime: string[];
|
||
|
|
}
|
||
|
|
>;
|
||
|
|
|
||
|
|
type SaveProductParams = Pick<Product, 'directionCode' | 'name' | 'managerUserId'> & {
|
||
|
|
code?: string | null;
|
||
|
|
description?: string | null;
|
||
|
|
remark?: string | null;
|
||
|
|
};
|
||
|
|
|
||
|
|
type UpdateProductParams = { id: string } & SaveProductParams;
|
||
|
|
|
||
|
|
interface ChangeProductStatusParams {
|
||
|
|
id: string;
|
||
|
|
actionCode: ProductStatusActionCode;
|
||
|
|
reason?: string | null;
|
||
|
|
}
|
||
|
|
|
||
|
|
interface DeleteProductParams {
|
||
|
|
id: string;
|
||
|
|
productName: string;
|
||
|
|
reason: string;
|
||
|
|
}
|
||
|
|
|
||
|
|
type UpdateProductSettingBaseInfoParams = Pick<ProductSettingBaseInfo, 'directionCode' | 'name'> & {
|
||
|
|
description?: string | null;
|
||
|
|
};
|
||
|
|
|
||
|
|
interface CreateProductMemberParams {
|
||
|
|
userId: string;
|
||
|
|
roleId: string;
|
||
|
|
remark?: string | null;
|
||
|
|
previousManagerUserId?: string | null;
|
||
|
|
previousManagerRoleId?: string | null;
|
||
|
|
}
|
||
|
|
|
||
|
|
interface UpdateProductMemberParams {
|
||
|
|
roleId: string;
|
||
|
|
remark?: string | null;
|
||
|
|
reason?: string | null;
|
||
|
|
previousManagerUserId?: string | null;
|
||
|
|
previousManagerRoleId?: string | null;
|
||
|
|
}
|
||
|
|
|
||
|
|
interface InactiveProductMemberParams {
|
||
|
|
reason?: string | null;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|