dfsi

PHOTO EMBED

Thu Dec 21 2023 09:21:39 GMT+0000 (Coordinated Universal Time)

Saved by @thanuj #sql

import { Entity, Column, ManyToOne, JoinColumn, OneToMany, VirtualColumn} from 'typeorm';
import { CustomerDomainEntity } from '../base/CustomerDomainEntity';
import { returnsSubmissionPeriod } from '../submission/SubmissionPeriod';
import { SubmissionPeriod } from '../submission/SubmissionPeriod';
import {getDataFileIdSql, getDataFileNameSql} from './DataFileSummaryInfoSql';

export const returnsSubmissionPeriods = () => SubmissionPeriod;
export const returnsSummaryInfo = (submissionPeriod) => submissionPeriod.dataFileSummaryInfo;


@Entity({ name: 'DATA_FILE_SUMMARY_INFO' })
export class DataFileSummaryInfo extends CustomerDomainEntity {

    @ManyToOne(returnsSubmissionPeriod)
    @JoinColumn({ name: 'SUBMISSION_PERIOD_SID', referencedColumnName:'sid'})
    submissionPeriod?: Promise<SubmissionPeriod>;

    // @ManyToOne(returnsUserSession)
    // @JoinColumn({ name: 'USER_SESSION_SID' })
    // userSession?: Promise<UserSession>;

    @Column({name:'DATA_FILE_SID'})
    dataFileSid: number;

    @Column({name: 'CUSTOMER_SID'})
    customerSid: number;

    @Column({name:'NUM_SLIS'})
    numberOfPOSLines: number;

    @Column({name:'NUM_ILIS'})
    numberOfInventoryLines: number;

    @Column({name: 'CREATE_DATE'})
    receivedDate: Date;
    
    // specifying that submissionPeriodSid can be null
    @Column({ name: 'SUBMISSION_PERIOD_SID', nullable: true })
    submissionPeriodSid: number;

    // VirtualColumn to get DataFile information
    @VirtualColumn({ query: getDataFileIdSql})
    dataFileId?: string;

    // VirtualColumn to get DataFile information
    @VirtualColumn({ query: getDataFileNameSql})
    dataFileName?: string;

    // @VirtualColumn( {query : fileIdSql} )
    // fileId?: number[];

    // @VirtualColumn( {query : filesCountSql} )
    // numberOfFiles?: number;
}

content_copyCOPY