|
|
@@ -1,11 +1,11 @@
|
|
|
-import { Entity, PrimaryColumn, Column, Index, ForeignKey } from 'typeorm';
|
|
|
+import { Entity, PrimaryGeneratedColumn, Column, Index, ForeignKey } from 'typeorm';
|
|
|
import { z } from '@hono/zod-openapi';
|
|
|
import { Client } from '../clients/client.entity';
|
|
|
|
|
|
@Entity('linkmans')
|
|
|
export class Linkman {
|
|
|
- @PrimaryColumn({ name: 'id', type: 'varchar', length: 50 })
|
|
|
- id!: string;
|
|
|
+ @PrimaryGeneratedColumn({ name: 'id', type: 'int', unsigned: true })
|
|
|
+ id!: number;
|
|
|
|
|
|
@Column({ name: 'client_id', type: 'int', unsigned: true })
|
|
|
@ForeignKey(() => Client)
|
|
|
@@ -63,9 +63,9 @@ export class Linkman {
|
|
|
}
|
|
|
|
|
|
export const LinkmanSchema = z.object({
|
|
|
- id: z.string().max(50).openapi({
|
|
|
+ id: z.number().int().positive().openapi({
|
|
|
description: '联系人ID',
|
|
|
- example: 'LM20230001'
|
|
|
+ example: 1
|
|
|
}),
|
|
|
clientId: z.number().int().positive().openapi({
|
|
|
description: '客户ID',
|
|
|
@@ -134,65 +134,53 @@ export const LinkmanSchema = z.object({
|
|
|
});
|
|
|
|
|
|
export const CreateLinkmanDto = z.object({
|
|
|
- id: z.string().max(50).openapi({
|
|
|
- description: '联系人ID',
|
|
|
- example: 'LM20230001'
|
|
|
- }),
|
|
|
clientId: z.coerce.number().int().positive().openapi({
|
|
|
description: '客户ID',
|
|
|
example: 2001
|
|
|
}),
|
|
|
- name: z.string().max(100).openapi({
|
|
|
+ name: z.string().max(100).openapi({
|
|
|
description: '姓名',
|
|
|
- example: '张三'
|
|
|
+ example: '张三'
|
|
|
}),
|
|
|
- gender: z.string().max(10).nullable().optional().openapi({
|
|
|
+ gender: z.string().max(10).nullable().optional().openapi({
|
|
|
description: '性别',
|
|
|
- example: '男'
|
|
|
+ example: '男'
|
|
|
}),
|
|
|
- position: z.string().max(100).nullable().optional().openapi({
|
|
|
+ position: z.string().max(100).nullable().optional().openapi({
|
|
|
description: '职位',
|
|
|
- example: '技术总监'
|
|
|
+ example: '技术总监'
|
|
|
}),
|
|
|
- mobile: z.string().max(20).nullable().optional().openapi({
|
|
|
+ mobile: z.string().max(20).nullable().optional().openapi({
|
|
|
description: '手机号码',
|
|
|
- example: '13800138000'
|
|
|
+ example: '13800138000'
|
|
|
}),
|
|
|
- qq: z.string().max(20).nullable().optional().openapi({
|
|
|
+ qq: z.string().max(20).nullable().optional().openapi({
|
|
|
description: 'QQ号码',
|
|
|
- example: '123456789'
|
|
|
+ example: '123456789'
|
|
|
}),
|
|
|
- telephone: z.string().max(20).nullable().optional().openapi({
|
|
|
+ telephone: z.string().max(20).nullable().optional().openapi({
|
|
|
description: '联系电话',
|
|
|
- example: '010-12345678'
|
|
|
+ example: '010-12345678'
|
|
|
}),
|
|
|
- email: z.string().max(100).nullable().optional().openapi({
|
|
|
+ email: z.string().max(100).nullable().optional().openapi({
|
|
|
description: '电子邮箱',
|
|
|
- example: 'zhang.san@example.com'
|
|
|
+ example: 'zhang.san@example.com'
|
|
|
}),
|
|
|
- msn: z.string().max(100).nullable().optional().openapi({
|
|
|
+ msn: z.string().max(100).nullable().optional().openapi({
|
|
|
description: 'MSN账号',
|
|
|
- example: 'zhang.san@msn.com'
|
|
|
+ example: 'zhang.san@msn.com'
|
|
|
}),
|
|
|
- alww: z.string().max(100).nullable().optional().openapi({
|
|
|
+ alww: z.string().max(100).nullable().optional().openapi({
|
|
|
description: '其他网络账号',
|
|
|
- example: 'zhangsan_wechat'
|
|
|
+ example: 'zhangsan_wechat'
|
|
|
}),
|
|
|
- birthday: z.coerce.date().nullable().optional().openapi({
|
|
|
+ birthday: z.coerce.date().nullable().optional().openapi({
|
|
|
description: '出生日期',
|
|
|
- example: '1980-01-15'
|
|
|
+ example: '1980-01-15'
|
|
|
}),
|
|
|
- description: z.string().nullable().optional().openapi({
|
|
|
+ description: z.string().nullable().optional().openapi({
|
|
|
description: '详细信息',
|
|
|
- example: '负责技术选型与合作洽谈'
|
|
|
- }),
|
|
|
- createdUserId: z.string().max(50).nullable().optional().openapi({
|
|
|
- description: '创建用户ID',
|
|
|
- example: 'U1001'
|
|
|
- }),
|
|
|
- createdTime: z.coerce.date().openapi({
|
|
|
- description: '创建时间',
|
|
|
- example: '2023-01-15T10:30:00Z'
|
|
|
+ example: '负责技术选型与合作洽谈'
|
|
|
})
|
|
|
});
|
|
|
|
|
|
@@ -201,56 +189,48 @@ export const UpdateLinkmanDto = z.object({
|
|
|
description: '客户ID',
|
|
|
example: 2001
|
|
|
}),
|
|
|
- name: z.string().max(100).optional().openapi({
|
|
|
+ name: z.string().max(100).optional().openapi({
|
|
|
description: '姓名',
|
|
|
- example: '张三'
|
|
|
+ example: '张三'
|
|
|
}),
|
|
|
- gender: z.string().max(10).nullable().optional().openapi({
|
|
|
+ gender: z.string().max(10).nullable().optional().openapi({
|
|
|
description: '性别',
|
|
|
- example: '男'
|
|
|
+ example: '男'
|
|
|
}),
|
|
|
- position: z.string().max(100).nullable().optional().openapi({
|
|
|
+ position: z.string().max(100).nullable().optional().openapi({
|
|
|
description: '职位',
|
|
|
- example: '技术总监'
|
|
|
+ example: '技术总监'
|
|
|
}),
|
|
|
- mobile: z.string().max(20).nullable().optional().openapi({
|
|
|
+ mobile: z.string().max(20).nullable().optional().openapi({
|
|
|
description: '手机号码',
|
|
|
- example: '13800138000'
|
|
|
+ example: '13800138000'
|
|
|
}),
|
|
|
- qq: z.string().max(20).nullable().optional().openapi({
|
|
|
+ qq: z.string().max(20).nullable().optional().openapi({
|
|
|
description: 'QQ号码',
|
|
|
- example: '123456789'
|
|
|
+ example: '123456789'
|
|
|
}),
|
|
|
- telephone: z.string().max(20).nullable().optional().openapi({
|
|
|
+ telephone: z.string().max(20).nullable().optional().openapi({
|
|
|
description: '联系电话',
|
|
|
- example: '010-12345678'
|
|
|
+ example: '010-12345678'
|
|
|
}),
|
|
|
- email: z.string().max(100).nullable().optional().openapi({
|
|
|
+ email: z.string().max(100).nullable().optional().openapi({
|
|
|
description: '电子邮箱',
|
|
|
- example: 'zhang.san@example.com'
|
|
|
+ example: 'zhang.san@example.com'
|
|
|
}),
|
|
|
- msn: z.string().max(100).nullable().optional().openapi({
|
|
|
+ msn: z.string().max(100).nullable().optional().openapi({
|
|
|
description: 'MSN账号',
|
|
|
- example: 'zhang.san@msn.com'
|
|
|
+ example: 'zhang.san@msn.com'
|
|
|
}),
|
|
|
- alww: z.string().max(100).nullable().optional().openapi({
|
|
|
+ alww: z.string().max(100).nullable().optional().openapi({
|
|
|
description: '其他网络账号',
|
|
|
- example: 'zhangsan_wechat'
|
|
|
+ example: 'zhangsan_wechat'
|
|
|
}),
|
|
|
- birthday: z.coerce.date().nullable().optional().openapi({
|
|
|
+ birthday: z.coerce.date().nullable().optional().openapi({
|
|
|
description: '出生日期',
|
|
|
- example: '1980-01-15'
|
|
|
+ example: '1980-01-15'
|
|
|
}),
|
|
|
- description: z.string().nullable().optional().openapi({
|
|
|
+ description: z.string().nullable().optional().openapi({
|
|
|
description: '详细信息',
|
|
|
- example: '负责技术选型与合作洽谈'
|
|
|
- }),
|
|
|
- createdUserId: z.string().max(50).nullable().optional().openapi({
|
|
|
- description: '创建用户ID',
|
|
|
- example: 'U1001'
|
|
|
- }),
|
|
|
- createdTime: z.coerce.date().optional().openapi({
|
|
|
- description: '创建时间',
|
|
|
- example: '2023-01-15T10:30:00Z'
|
|
|
+ example: '负责技术选型与合作洽谈'
|
|
|
})
|
|
|
});
|