Browse Source

♻️ refactor(expense): modify expense id to auto-incrementing number

- change id from manual string to auto-generated numeric primary key using @PrimaryGeneratedColumn
- update ExpenseSchema to validate id as positive integer instead of string
- remove id field from CreateExpenseDto since it's now auto-generated
- update example values to reflect numeric id format
yourname 8 months ago
parent
commit
3fa6c543ce
1 changed files with 6 additions and 9 deletions
  1. 6 9
      src/server/modules/expenses/expense.entity.ts

+ 6 - 9
src/server/modules/expenses/expense.entity.ts

@@ -1,10 +1,10 @@
-import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { Entity, PrimaryGeneratedColumn, Column, Index } from 'typeorm';
 import { z } from '@hono/zod-openapi';
 
 @Entity('expense')
 export class Expense {
-  @PrimaryColumn({ name: 'id', type: 'varchar', length: 50 })
-  id!: string;
+  @PrimaryGeneratedColumn({ unsigned: true })
+  id!: number;
 
   @Column({ name: 'expense_date', type: 'date' })
   expenseDate!: Date;
@@ -70,9 +70,9 @@ export class Expense {
 }
 
 export const ExpenseSchema = z.object({
-  id: z.string().max(50).openapi({ 
+  id: z.number().int().positive().openapi({ 
     description: '费用记录ID',
-    example: 'EXP20230001' 
+    example: 1 
   }),
   expenseDate: z.date().openapi({ 
     description: '费用发生日期',
@@ -153,10 +153,7 @@ export const ExpenseSchema = z.object({
 });
 
 export const CreateExpenseDto = z.object({
-  id: z.string().max(50).openapi({ 
-    description: '费用记录ID',
-    example: 'EXP20230001' 
-  }),
+  
   expenseDate: z.coerce.date().openapi({ 
     description: '费用发生日期',
     example: '2023-01-15'