datafile.ts

PHOTO EMBED

Wed Nov 22 2023 11:29:03 GMT+0000 (Coordinated Universal Time)

Saved by @thanuj

import { Entity, Column, JoinColumn, OneToOne,VirtualColumn } from 'typeorm';
import { CustomerDomainEntity } from '../base/CustomerDomainEntity';
import { Partner, returnsPartner } from '../partner/Partner';
import { DataFileState, returnsDataFileState } from './DataFileState';
import { ParserAttempt, returnsParserAttempt } from './ParserAttempt';
import { deletedLinesSql } from './DataFileSql';

export const returnsDataFile = () => DataFile;

@Entity({ name: 'DATA_FILE' })
export class DataFile extends CustomerDomainEntity {
  sequence = 'DATA_FILE_SEQ';

  @Column({ name: 'LOAD_DATE' })
  loadDate: Date;

  @Column({ name: 'REPORTING_PARTNER_SID' })
  reportingPartnerSid: number;

  @Column({ name: 'REPORT_DATE' })
  reportDate: Date;

  @Column({ name: 'DELETED' })
  deleted: boolean;

  @Column({ name: 'ID' })
  id: string;

  @Column({ name: 'FILE_NAME' })
  fileName: string;

  @Column({ name: 'FILE_TYPE' })
  fileType: string;

  @Column({ name: 'DATA_TYPE' })
  dataType: string;

  @Column({ name: 'CONTROL_SUM' })
  controlSum: string;

  @Column({ name: 'ENCODING' })
  encoding: string;

  @Column({ name: 'FILE_SIZE' })
  fileSize: number;

  @Column({ name: 'RECORD_COUNT' })
  recordCount: number;

  @Column({ name: 'PROCESSING_COMPLETE' })
  processingComplete: boolean;

  @Column({ name: 'END_STATE_VALIDATIONS_COMPLETE' })
  endStateValidationsComplete: boolean;

  @Column({ name: 'SOURCE' })
  source: string;

  @Column({ name: 'PARSEABLE' })
  parseable: number;

  @Column({ name: 'PARSED' })
  parsed: number;

  @Column({ name: 'SERVICE_USER_SID' })
  serviceUserSid: number;

  @VirtualColumn({ query: deletedLinesSql })
  deletedLines?: number;

  @OneToOne(returnsDataFileState)
  @JoinColumn({ name: 'SID', referencedColumnName: 'dataFileSid' })
  dataFileState?: Promise<DataFileState>;

  @OneToOne(returnsParserAttempt)
  @JoinColumn({ name: 'SID', referencedColumnName: 'dataFileSid' })
  parserAttempt?: Promise<ParserAttempt>;

  @OneToOne(returnsPartner)
  @JoinColumn({ name: 'REPORTING_PARTNER_SID' })
  reportingPartner?: Promise<Partner>;
}
content_copyCOPY