AlphaAlpha Docs

Shifts

API calls concerning shifts

Create a shift

POST
/shifts
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:18080/api/v1/shifts" \  -H "Content-Type: application/json" \  -d '{    "employees": [      "string"    ],    "end": "2019-08-24T14:15:22Z",    "manager": "string",    "start": "2019-08-24T14:15:22Z",    "stockSiteId": "string",    "subsidiaryId": "string"  }'
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Delete by list of ids in current tenant

DELETE
/shifts
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X DELETE "http://localhost:18080/api/v1/shifts" \  -H "Content-Type: application/json" \  -d '[    "string"  ]'
Empty
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Find by list of ids in current tenant

GET
/shifts/find
AuthorizationBearer <token>

In: header

Query Parameters

ids*array<>

Response Body

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:18080/api/v1/shifts/find?ids=string"
[
  {
    "approvedBy": "string",
    "canceled": true,
    "created": "2019-08-24T14:15:22Z",
    "createdBy": "string",
    "employees": [
      "string"
    ],
    "end": "2019-08-24T14:15:22Z",
    "events": [
      {
        "authorId": "string",
        "date": "2019-08-24T14:15:22Z",
        "description": "string",
        "id": "string",
        "type": "CREATE"
      }
    ],
    "id": "string",
    "manager": "string",
    "note": "string",
    "salesOrders": [
      "string"
    ],
    "shiftStatus": "PLANNED",
    "start": "2019-08-24T14:15:22Z",
    "stockSiteId": "string",
    "subsidiaryId": "string",
    "tenantId": "string",
    "updated": "2019-08-24T14:15:22Z",
    "updatedBy": "string",
    "waste": [
      "string"
    ]
  }
]
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Find all for current tenant

GET
/shifts/find-all
AuthorizationBearer <token>

In: header

Response Body

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:18080/api/v1/shifts/find-all"
[
  {
    "approvedBy": "string",
    "canceled": true,
    "created": "2019-08-24T14:15:22Z",
    "createdBy": "string",
    "employees": [
      "string"
    ],
    "end": "2019-08-24T14:15:22Z",
    "events": [
      {
        "authorId": "string",
        "date": "2019-08-24T14:15:22Z",
        "description": "string",
        "id": "string",
        "type": "CREATE"
      }
    ],
    "id": "string",
    "manager": "string",
    "note": "string",
    "salesOrders": [
      "string"
    ],
    "shiftStatus": "PLANNED",
    "start": "2019-08-24T14:15:22Z",
    "stockSiteId": "string",
    "subsidiaryId": "string",
    "tenantId": "string",
    "updated": "2019-08-24T14:15:22Z",
    "updatedBy": "string",
    "waste": [
      "string"
    ]
  }
]
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Find by id in current tenant

GET
/shifts/find/{id}
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:18080/api/v1/shifts/find/string"
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Get page by page number and size with optional sorting based on field to sortBy and direction

GET
/shifts/page
AuthorizationBearer <token>

In: header

Query Parameters

pageNumber?integer
Formatint32
pageSize?integer
Formatint32
sortBy?string
direction?string
Value in"ASC" | "DESC"
search?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:18080/api/v1/shifts/page"
{
  "content": [
    {
      "approvedBy": "string",
      "canceled": true,
      "created": "2019-08-24T14:15:22Z",
      "createdBy": "string",
      "employees": [
        "string"
      ],
      "end": "2019-08-24T14:15:22Z",
      "events": [
        {
          "authorId": "string",
          "date": "2019-08-24T14:15:22Z",
          "description": "string",
          "id": "string",
          "type": "CREATE"
        }
      ],
      "id": "string",
      "manager": "string",
      "note": "string",
      "salesOrders": [
        "string"
      ],
      "shiftStatus": "PLANNED",
      "start": "2019-08-24T14:15:22Z",
      "stockSiteId": "string",
      "subsidiaryId": "string",
      "tenantId": "string",
      "updated": "2019-08-24T14:15:22Z",
      "updatedBy": "string",
      "waste": [
        "string"
      ]
    }
  ],
  "empty": true,
  "first": true,
  "last": true,
  "number": 0,
  "numberOfElements": 0,
  "pageable": {
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "unpaged": true
  },
  "size": 0,
  "sort": {
    "empty": true,
    "sorted": true,
    "unsorted": true
  },
  "totalElements": 0,
  "totalPages": 0
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Get shift statistics

GET
/shifts/stats
AuthorizationBearer <token>

In: header

Query Parameters

stockSiteId?string
startDate?string
Formatdate-time
endDate?string
Formatdate-time
employeeId?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:18080/api/v1/shifts/stats"
{
  "countsByStatus": {
    "property1": 0,
    "property2": 0
  },
  "totalShifts": 0
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Get page by page number and size with optional sorting based on field to sortBy and direction

GET
/shifts/user/page
AuthorizationBearer <token>

In: header

Query Parameters

pageNumber*integer
Formatint32
pageSize?integer
Formatint32
sortBy?string
direction?string
Value in"ASC" | "DESC"
search?string
employeeId?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:18080/api/v1/shifts/user/page?pageNumber=0"
{
  "content": [
    {
      "approvedBy": "string",
      "canceled": true,
      "created": "2019-08-24T14:15:22Z",
      "createdBy": "string",
      "employees": [
        "string"
      ],
      "end": "2019-08-24T14:15:22Z",
      "events": [
        {
          "authorId": "string",
          "date": "2019-08-24T14:15:22Z",
          "description": "string",
          "id": "string",
          "type": "CREATE"
        }
      ],
      "id": "string",
      "manager": "string",
      "note": "string",
      "salesOrders": [
        "string"
      ],
      "shiftStatus": "PLANNED",
      "start": "2019-08-24T14:15:22Z",
      "stockSiteId": "string",
      "subsidiaryId": "string",
      "tenantId": "string",
      "updated": "2019-08-24T14:15:22Z",
      "updatedBy": "string",
      "waste": [
        "string"
      ]
    }
  ],
  "empty": true,
  "first": true,
  "last": true,
  "number": 0,
  "numberOfElements": 0,
  "pageable": {
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "unpaged": true
  },
  "size": 0,
  "sort": {
    "empty": true,
    "sorted": true,
    "unsorted": true
  },
  "totalElements": 0,
  "totalPages": 0
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Update a shift

PATCH
/shifts/{id}
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "http://localhost:18080/api/v1/shifts/string" \  -H "Content-Type: application/json" \  -d '{    "employees": [      "string"    ],    "end": "2019-08-24T14:15:22Z",    "manager": "string",    "start": "2019-08-24T14:15:22Z",    "stockSiteId": "string",    "subsidiaryId": "string"  }'
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Delete by id in current tenant

DELETE
/shifts/{id}
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

curl -X DELETE "http://localhost:18080/api/v1/shifts/string"
Empty
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Add sales orders to shift

PATCH
/shifts/{id}/add-sales-orders
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "http://localhost:18080/api/v1/shifts/string/add-sales-orders" \  -H "Content-Type: application/json" \  -d '[    "string"  ]'
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Approve a shift

PATCH
/shifts/{id}/approve
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "http://localhost:18080/api/v1/shifts/string/approve"
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Approve waste entry of a shift

PATCH
/shifts/{id}/approve-waste/{wasteId}
AuthorizationBearer <token>

In: header

Path Parameters

id*string
wasteId*string

Query Parameters

deductRawMaterials?boolean
Defaultfalse

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "http://localhost:18080/api/v1/shifts/string/approve-waste/string"
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Cancel a shift

PATCH
/shifts/{id}/cancel
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "http://localhost:18080/api/v1/shifts/string/cancel"
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Comment on a shift

POST
/shifts/{id}/comment
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

body*string

Response Body

application/json

application/json

application/json

application/json

curl -X POST "http://localhost:18080/api/v1/shifts/string/comment" \  -H "Content-Type: application/json" \  -d 'string'
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Unapprove a shift

PATCH
/shifts/{id}/unapprove
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "http://localhost:18080/api/v1/shifts/string/unapprove"
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Unapprove waste entry of a shift

PATCH
/shifts/{id}/unapprove-waste/{wasteId}
AuthorizationBearer <token>

In: header

Path Parameters

id*string
wasteId*string

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "http://localhost:18080/api/v1/shifts/string/unapprove-waste/string"
{
  "approvedBy": "string",
  "canceled": true,
  "created": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "employees": [
    "string"
  ],
  "end": "2019-08-24T14:15:22Z",
  "events": [
    {
      "authorId": "string",
      "date": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "type": "CREATE"
    }
  ],
  "id": "string",
  "manager": "string",
  "note": "string",
  "salesOrders": [
    "string"
  ],
  "shiftStatus": "PLANNED",
  "start": "2019-08-24T14:15:22Z",
  "stockSiteId": "string",
  "subsidiaryId": "string",
  "tenantId": "string",
  "updated": "2019-08-24T14:15:22Z",
  "updatedBy": "string",
  "waste": [
    "string"
  ]
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Get waste analysis for shift

GET
/shifts/{id}/waste-analysis
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "http://localhost:18080/api/v1/shifts/string/waste-analysis"
{
  "property1": {
    "children": [
      {}
    ],
    "delta": 0.1,
    "expectedUse": 0.1,
    "imageAssets": [
      {
        "blobId": "string",
        "created": "2019-08-24T14:15:22Z",
        "extension": "string",
        "fileSize": 0,
        "name": "string",
        "type": "IMAGE"
      }
    ],
    "productId": "string",
    "productName": "string",
    "totalCost": 0.1,
    "waste": 0.1
  },
  "property2": {
    "children": [
      {}
    ],
    "delta": 0.1,
    "expectedUse": 0.1,
    "imageAssets": [
      {
        "blobId": "string",
        "created": "2019-08-24T14:15:22Z",
        "extension": "string",
        "fileSize": 0,
        "name": "string",
        "type": "IMAGE"
      }
    ],
    "productId": "string",
    "productName": "string",
    "totalCost": 0.1,
    "waste": 0.1
  }
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}
{
  "detail": "string",
  "time": "2019-08-24T14:15:22Z",
  "title": "string"
}