export class StepModel{ public Id: string; public LoanId: string; public StepIndex : number; public Description: string; public Done: boolean; public ReceivedAt: Date; public ResolvedAt: Date; public UploadedAt: Date; public FileName: string; public FileSize: number; public FileMime: string; //only for GUI public Editable: boolean; constructor(payload?: Partial) { if( !payload ) { payload = {}; } this.Id = payload.Id || ''; this.LoanId = payload.LoanId || ''; this.StepIndex = payload.StepIndex || -1; this.Description = payload.Description || ''; this.Done = payload.Done || false; this.ReceivedAt = payload.ReceivedAt? new Date(payload.ReceivedAt) : new Date('1900-01-01'); if ( this.ReceivedAt.getFullYear() <= 1900 ){ this.ReceivedAt = new Date() ; } this.ResolvedAt = payload.ResolvedAt? new Date(payload.ResolvedAt) : new Date('1900-01-01'); if ( this.ResolvedAt.getFullYear() <= 1900 ){ this.ResolvedAt = null ; } this.UploadedAt = payload.UploadedAt? new Date(payload.UploadedAt) : new Date('1900-01-01'); if ( this.UploadedAt.getFullYear() <= 1900 ){ this.UploadedAt = null ; } this.FileName = payload.FileName || ''; this.FileSize = payload.FileSize || 0 ; this.FileMime = payload.FileMime || ''; this.Editable = ! this.Done; // only when it started } }