import { Column, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, } from "typeorm"; import { DiscountCodeUser } from "./DiscountCodeUser"; import { RequestLocal } from "./RequestLocal"; import { User } from "./User"; @Entity("code_redemption_history_user", { comment: "Historial de los códigos redimidos por los usuarios, es decir, si un local desea agregar un código de descuento para qué los usuarios puedan tener un descuento, entonces acá van a estar los que lo redimieron.", }) export class CodeRedemptionHistoryUser { @PrimaryGeneratedColumn({ type: "int", comment: "Número de identificación (ID) único de cada registro.", }) id: number; @ManyToOne( () => DiscountCodeUser, (discountCodeUser) => discountCodeUser.code_redemptions_history_users, { onDelete: "CASCADE", onUpdate: "NO ACTION" }, ) @JoinColumn({ name: "discount_code_user" }) discount_code_user: DiscountCodeUser; @ManyToOne(() => User, (user) => user.code_redemption_history_users, { onDelete: "CASCADE", onUpdate: "NO ACTION", nullable: true, }) @JoinColumn({ name: "user" }) user: User | null; @Column({ type: "datetime", default: () => "CURRENT_TIMESTAMP", onUpdate: "CURRENT_TIMESTAMP", comment: "Fecha cuando se usó el descuento.", }) date_used: Date; @Column({ type: "decimal", precision: 10, scale: 2, comment: "El valor del descuento aplicado.", }) discount_applied: number; @OneToMany( () => RequestLocal, (requestLocal) => requestLocal.discount_redemption, ) discount_redemption_request_locals: RequestLocal[]; }