miinventario-backend-v2/src/modules/feedback/entities/correction.entity.ts
rckrdmrd 5a1c966ed2 Migración desde miinventario/backend - Estándar multi-repo v2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 08:12:15 -06:00

68 lines
1.3 KiB
TypeScript

import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
ManyToOne,
JoinColumn,
Index,
} from 'typeorm';
import { User } from '../../users/entities/user.entity';
import { Store } from '../../stores/entities/store.entity';
import { InventoryItem } from '../../inventory/entities/inventory-item.entity';
export enum CorrectionType {
QUANTITY = 'QUANTITY',
SKU = 'SKU',
CONFIRMATION = 'CONFIRMATION',
}
@Entity('corrections')
@Index(['inventoryItemId'])
@Index(['userId'])
@Index(['storeId'])
@Index(['type', 'createdAt'])
export class Correction {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column('uuid')
inventoryItemId: string;
@Column('uuid')
userId: string;
@Column('uuid')
storeId: string;
@Column({
type: 'enum',
enum: CorrectionType,
})
type: CorrectionType;
@Column('jsonb')
previousValue: Record<string, any>;
@Column('jsonb')
newValue: Record<string, any>;
@Column({ type: 'varchar', length: 255, nullable: true })
reason?: string;
@CreateDateColumn()
createdAt: Date;
@ManyToOne(() => InventoryItem, { onDelete: 'CASCADE' })
@JoinColumn({ name: 'inventoryItemId' })
inventoryItem: InventoryItem;
@ManyToOne(() => User)
@JoinColumn({ name: 'userId' })
user: User;
@ManyToOne(() => Store)
@JoinColumn({ name: 'storeId' })
store: Store;
}