|
|
@@ -1,5 +1,4 @@
|
|
|
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';
|
|
|
-import { z } from '@hono/zod-openapi';
|
|
|
|
|
|
@Entity('stock_data')
|
|
|
export class StockData {
|
|
|
@@ -17,50 +16,4 @@ export class StockData {
|
|
|
|
|
|
@Column({ name: 'updated_at', type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', onUpdate: 'CURRENT_TIMESTAMP' })
|
|
|
updatedAt!: Date;
|
|
|
-}
|
|
|
-
|
|
|
-export const StockDataSchema = z.object({
|
|
|
- id: z.number().int().positive().openapi({ description: 'ID', example: 1 }),
|
|
|
- code: z.string().max(255).openapi({ description: '股票代码', example: '001339' }),
|
|
|
- data: z.record(z.any()).openapi({
|
|
|
- description: '股票数据',
|
|
|
- example: {
|
|
|
- date: '2025-05-21',
|
|
|
- open: 15.68,
|
|
|
- close: 16.25,
|
|
|
- high: 16.50,
|
|
|
- low: 15.50,
|
|
|
- volume: 1250000
|
|
|
- }
|
|
|
- }),
|
|
|
- createdAt: z.date().openapi({ description: '创建时间', example: '2025-05-21T16:44:36Z' }),
|
|
|
- updatedAt: z.date().openapi({ description: '更新时间', example: '2025-05-21T21:22:06Z' })
|
|
|
-});
|
|
|
-
|
|
|
-export const CreateStockDataDto = StockDataSchema.omit({
|
|
|
- id: true,
|
|
|
- createdAt: true,
|
|
|
- updatedAt: true
|
|
|
-}).partial().extend({
|
|
|
- data: z.string().transform((val) => {
|
|
|
- try {
|
|
|
- return JSON.parse(val)
|
|
|
- } catch (error) {
|
|
|
- return {}
|
|
|
- }
|
|
|
- })
|
|
|
-});
|
|
|
-
|
|
|
-export const UpdateStockDataDto = StockDataSchema.omit({
|
|
|
- id: true,
|
|
|
- createdAt: true,
|
|
|
- updatedAt: true
|
|
|
-}).partial().extend({
|
|
|
- data: z.string().transform((val) => {
|
|
|
- try {
|
|
|
- return JSON.parse(val)
|
|
|
- } catch (error) {
|
|
|
- return {}
|
|
|
- }
|
|
|
- })
|
|
|
-});
|
|
|
+}
|