import { Entity, PrimaryGeneratedColumn, ManyToOne, JoinColumn, CreateDateColumn, UpdateDateColumn, Column, OneToMany, DeleteDateColumn, Collection } from "typeorm"
import { Campaign } from "./campaign.entity"
import { Users } from "./users.entity"
import { DraftVersions } from "./draft_versions.entity"
import { DraftComments } from "./draft_comments.entity"
import { CampaignInfluencer } from "./campaign_influencer.entity"
import { Dispute } from "./dispute.entity"


@Entity("dispute-history")
export class DisputeHistory {
    @PrimaryGeneratedColumn("uuid")
    id: string

    @ManyToOne(() => Users, (dispute_by) => dispute_by.id)
    @JoinColumn({ name: "dispute_by" })
    dispute_by: Users

    @ManyToOne(() => Dispute, (dispute_id) => dispute_id.disputeHistory)
    @JoinColumn({ name: "dispute_id" })
    dispute: Dispute

    @Column({ type: 'text', default: "" })
    reason: string;

    @Column({ type: 'text', default: "" })
    description: string;

    @Column({ type: 'jsonb', nullable: true })
    attachment: Record<string, any>;
  
    @CreateDateColumn({
    type: 'timestamp',
    precision: 0,
    default: () => 'CURRENT_TIMESTAMP',
    })
    created_at: Date;

    @UpdateDateColumn({
    type: 'timestamp',
    precision: 0,
    default: () => 'CURRENT_TIMESTAMP',
    onUpdate: 'CURRENT_TIMESTAMP',
    })
    updated_at: Date;

    @DeleteDateColumn({ type: 'timestamp', nullable: true, precision: 0 })
    deleted_at: Date;
   
}
