import { Entity, Column, JoinColumn, OneToOne, VirtualColumn, OneToMany } from 'typeorm'; import { CustomerDomainEntity } from '../base/CustomerDomainEntity'; import { returnsSubmissionPeriodLineItemView, SubmissionPeriodLineItemView } from './SubmissionPeriodLineItemView'; import { reportedFlagSql, statusSql, fileIdsSql, filesCountSql, filesDataSql } from './SubmissionPeriodSql'; import { returnsSubmissionSchedule, SubmissionSchedule } from './SubmissionSchedule'; import { ServiceUser, returnsServiceUser } from '../user/ServiceUser'; import { DataFileSummaryInfo, returnsDataFileSummaryInfo } from '../datafile/DataFileSummaryInfo'; import { SubmissionPeriodInfoView } from './SubmissionPeriodInfoView'; export const returnsSubmissionPeriod = () => SubmissionPeriod; export const dataFileSummaryInfoInverseSide = (dataFileSummaryInfo) => dataFileSummaryInfo.submissionPeriod; @Entity({ name: 'SUBMISSION_PERIOD' }) export class SubmissionPeriod extends CustomerDomainEntity { @Column({ name: 'EXPECTED_DATE' }) expectedDate: Date; @Column({ name: 'PERIOD_START_DATE' }) periodStartDate: Date; @Column({ name: 'PERIOD_END_DATE' }) periodEndDate: Date; @Column({ name: 'SUBMISSION_SCHEDULE_SID', select: false }) submissionScheduleSid: number; @Column({ name: 'ON_TIME_OVERRIDE' }) onTimeOverride: boolean; @Column({ name: 'NO_DATA' }) noData: boolean; @Column({ name: 'NO_DATA_REASON' }) noDataReason: string; @Column({ name: 'NO_DATA_CREATE_DATE' }) noDataCreateDate: Date; @Column({ name: 'NO_DATA_SERVICE_USER_SID', select: false }) noDataServiceUserSid: number; @OneToOne(returnsServiceUser) @JoinColumn({ name: 'NO_DATA_SERVICE_USER_SID' }) noDataServiceUser: Promise<ServiceUser>; @Column({ name: 'TRACKING_LEVEL' }) trackingLevel: string; @Column({ name: 'EXPECTED_DAY' }) expectedDay: number; @Column({ name: 'WORKING_DAYS' }) workingDays: string; @Column({ name: 'IS_IN_PERIOD_REPORTER' }) isInPeriodReporter: number; @Column({ name: 'DELETED' }) deleted: boolean; @OneToOne(returnsSubmissionSchedule) @JoinColumn({ name: 'SUBMISSION_SCHEDULE_SID' }) submissionSchedule?: Promise<SubmissionSchedule>; @VirtualColumn({ query: statusSql }) status?: string; @VirtualColumn({ query: reportedFlagSql }) reportedFlag: boolean; @VirtualColumn( {query : fileIdsSql} ) fileIds?: string; firstFileId?: string; firstFileName?: string; firstFileCreateDate?: Date; @VirtualColumn( {query : filesCountSql} ) numberOfFiles?: number; @OneToMany(() => SubmissionPeriodInfoView, submissionPeriodInfoView => submissionPeriodInfoView.submissionScheduleId) submissionPeriodInfoView?: SubmissionPeriodInfoView[]; @OneToOne(returnsDataFileSummaryInfo) @JoinColumn({ name: 'SID', referencedColumnName: 'submissionPeriodSid' }) dataFileSummaryInfo?: Promise<DataFileSummaryInfo>; @OneToOne(returnsSubmissionPeriodLineItemView) @JoinColumn({ name: 'SID', referencedColumnName: 'submissionPeriodSid' }) submissionPeriodLineItemView?: Promise<SubmissionPeriodLineItemView>; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter