All files / src/apidefs/request-schemas trade-lane-flow.schema.ts

100% Statements 2/2
100% Branches 0/0
100% Functions 0/0
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 1071x     1x                                                                                                                                                                                                              
import {CONTENT_TYPE} from '@logchain/configs';
import {SchemaObject} from '@loopback/rest';
 
export const upsertFlowSchema: SchemaObject = {
  description: 'The request body for create or update the TradeLaneFlow.',
  content: {
    [CONTENT_TYPE.JSON]: {
      schema: {
        type: 'object',
        required: ['personas', 'journey_points'],
        properties: {
          personas: {
            type: 'array',
            items: {
              type: 'object',
              required: ['persona_id', 'order'],
              properties: {
                persona_id: {type: 'number'},
                company_id: {type: 'number'},
                order: {type: 'number'},
              },
            },
          },
          journey_points: {
            type: 'array',
            items: {
              type: 'object',
              additionalProperties: false,
              properties: {
                order: {
                  type: 'number',
                },
                persona: {
                  type: 'object',
                  required: ['persona_id', 'order'],
                  properties: {
                    persona_id: {type: 'number'},
                    order: {type: 'number'},
                  },
                },
                actor: {
                  type: 'object',
                  required: ['persona_id', 'order'],
                  properties: {
                    persona_id: {type: 'number'},
                    company_id: {type: 'number'},
                    order: {type: 'number'},
                  },
                },
                name: {
                  type: 'string',
                  maxLength: 100,
                },
                expected_date_info: {
                  type: 'object',
                  required: ['field_name', 'adjustment'],
                  properties: {
                    field_name: {type: 'string'},
                    adjustment: {type: 'number'},
                  },
                },
                personas: {
                  type: 'array',
                  items: {
                    type: 'object',
                    required: ['persona_id', 'order'],
                    properties: {
                      persona_id: {type: 'number'},
                      company_id: {type: 'number'},
                      order: {type: 'number'},
                    },
                  },
                },
                validator: {
                  type: 'object',
                  nullable: true,
                  required: ['persona_id', 'order'],
                  properties: {
                    persona_id: {type: 'number'},
                    company_id: {type: 'number'},
                    order: {type: 'number'},
                  },
                },
                actions: {
                  type: 'array',
                  items: {
                    type: 'object',
                    required: ['form_id'],
                    properties: {
                      form_id: {type: 'number'},
                      title: {type: 'string'},
                    },
                  },
                },
              },
            },
          },
          flow_status: {
            type: 'boolean',
            default: false,
          },
        },
      },
    },
  },
};