Преглед изворни кода

✨ feat(contacts): 重构联系人ID生成方式为自增整数

- 将联系人ID从字符串类型改为自增整数类型
- 移除CreateLinkmanDto中的id字段,由系统自动生成
- 移除UpdateLinkmanDto中的createdUserId和createdTime字段
- 更新LinkmanSchema中id的验证规则和示例值

♻️ refactor(contacts): 优化联系人DTO结构和验证规则

- 统一调整各字段的openapi描述格式,移除多余空格
- 保持联系人信息各字段的功能不变,优化代码格式
yourname пре 8 месеци
родитељ
комит
932073a589
1 измењених фајлова са 49 додато и 69 уклоњено
  1. 49 69
      src/server/modules/contacts/linkman.entity.ts

+ 49 - 69
src/server/modules/contacts/linkman.entity.ts

@@ -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: '负责技术选型与合作洽谈'
   })
 });