@central-credit/engine
Version:
Engine to handle the Serasa requests
79 lines (64 loc) • 1.5 kB
text/typescript
import { Entity, model, property, ValueObject } from '@loopback/repository'
export enum RecordFieldType {
NUMBER = 'number',
STRING = 'string'
}
export enum RecordParameterType {
NUMBER = 'number',
STRING = 'string',
DATE = 'date',
COMBOBOX = 'combobox',
CHECKBOX = 'checkbox',
RADIOBUTTON = 'radiobutton'
}
export class RecordField extends ValueObject {
seq: number
size: number
type: RecordFieldType = RecordFieldType.STRING
value?: string
description?: string
isRequired?: boolean = false
}
export class RecordParameter extends ValueObject {
id: string
type: RecordParameterType = RecordParameterType.STRING
defaultValue?: string
domain?: string
}
()
export class Record extends Entity {
({
type: 'string',
id: true,
generated: true
})
id: string
({
type: 'string',
required: true
})
name: string
({
type: 'number',
required: true,
default: 115
})
size: number
({
type: 'date',
required: true
})
createdAt: string
.array(RecordField, { required: true })
fields: RecordField[]
.array(RecordParameter, { required: true })
params: RecordParameter[]
constructor(data?: Partial<Record>) {
super(data)
}
getFields(): RecordField[] {
return this.fields.sort((field1, field2) => field1.seq - field2.seq)
}
}
export interface RecordRelations {}
export type RecordWithRelations = Record & RecordRelations