dfsi

PHOTO EMBED

Wed Dec 20 2023 17:25:37 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 returnsDataFileSummaryInfo = () => DataFileSummaryInfo;
export const returnsSubmissionPeriods = (submissionPeriod) => submissionPeriod.filesData;

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

    @ManyToOne(returnsSubmissionPeriod, returnsSubmissionPeriods)
    @JoinColumn([
        { name: 'SUBMISSION_PERIOD_SID', referencedColumnName: 'sid' },
        { name: 'CUSTOMER_SID', referencedColumnName: 'customerSid' }
    ])
    submissionPeriod: SubmissionPeriod;

    @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