import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, ManyToOne, JoinColumn, } from 'typeorm'; import { ShadowRun } from './shadow-run.entity'; @Entity({ schema: 'shared', name: 'shadow_run_results' }) export class ShadowRunResult { @PrimaryGeneratedColumn('uuid') id: string; @Column({ name: 'run_id', type: 'uuid' }) runId: string; @Column({ name: 'model_role', type: 'varchar', length: 20 }) modelRole: string; @Column({ name: 'model_name', type: 'varchar', length: 200 }) modelName: string; @Column({ name: 'api_url', type: 'varchar', length: 500 }) apiUrl: string; @Column({ name: 'raw_response', type: 'text', nullable: true }) rawResponse: string; @Column({ name: 'parsed_response', type: 'jsonb', nullable: true }) parsedResponse: any; @Column({ name: 'response_time_ms', type: 'integer', nullable: true }) responseTimeMs: number; @Column({ name: 'token_usage', type: 'jsonb', nullable: true }) tokenUsage: any; @Column({ type: 'varchar', length: 20, default: 'pending' }) status: string; @Column({ name: 'error_message', type: 'text', nullable: true }) errorMessage: string; @CreateDateColumn({ name: 'created_at', type: 'timestamptz' }) createdAt: Date; @ManyToOne(() => ShadowRun, (run) => run.results, { onDelete: 'CASCADE' }) @JoinColumn({ name: 'run_id' }) run: ShadowRun; }