{
  "openapi": "3.0.1",
  "info": {
    "title": "Redeal Widget API - Reviews",
    "description": "API for managing product reviews, ratings, votes, and comments.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "/Prod"
    }
  ],
  "paths": {
    "/api/Review/reviews": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitReviewRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitReviewRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitReviewRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WidgetStringResultViewModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/stars": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetRatingSummariesRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetRatingSummariesRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetRatingSummariesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RatingSummariesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/reviews/list": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetReviewsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetReviewsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetReviewsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/reviews/list-by-rating": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetReviewsByRatingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetReviewsByRatingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetReviewsByRatingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/votes": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoteReviewRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VoteReviewRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VoteReviewRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WidgetStringResultViewModel"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Reviews"
        ],
        "parameters": [
          {
            "name": "siteId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rd",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "contactId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetVoteCountsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/comments": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddCommentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddCommentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddCommentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WidgetStringResultViewModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/comments/list": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCommentsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCommentsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetCommentsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommentsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/comments/counts": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "parameters": [
          {
            "name": "siteId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rd",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommentCountsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/summary": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "parameters": [
          {
            "name": "siteId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rd",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetRatingSummaryByItemResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/config-reviews": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteCheckRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteCheckRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SiteCheckRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteCheckResultViewModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/Review/LoginContactLookup": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginContactLookupRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginContactLookupRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginContactLookupRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginContactLookupResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddCommentRequest": {
        "required": [
          "commentText",
          "contactId",
          "reviewId"
        ],
        "type": "object",
        "properties": {
          "reviewId": {
            "minLength": 1,
            "type": "string"
          },
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "itemId": {
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "minLength": 1,
            "type": "string"
          },
          "engageCommentId": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "commentText": {
            "minLength": 1,
            "type": "string"
          },
          "rd": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "AddReviewButtonLabels": {
        "type": "object",
        "properties": {
          "addReviewBtnLabel": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddReviewLabels": {
        "type": "object",
        "properties": {
          "writeReviewForText": {
            "type": "string",
            "nullable": true
          },
          "updateReviewForText": {
            "type": "string",
            "nullable": true
          },
          "reviewerNameLabel": {
            "type": "string",
            "nullable": true
          },
          "reviewerNamePlaceholder": {
            "type": "string",
            "nullable": true
          },
          "ratingLabel": {
            "type": "string",
            "nullable": true
          },
          "reviewInputPlaceholder": {
            "type": "string",
            "nullable": true
          },
          "termsCheckboxText": {
            "type": "string",
            "nullable": true
          },
          "requiredFieldMessage": {
            "type": "string",
            "nullable": true
          },
          "addBtnLabel": {
            "type": "string",
            "nullable": true
          },
          "updateBtnLabel": {
            "type": "string",
            "nullable": true
          },
          "submittingBtnLabel": {
            "type": "string",
            "nullable": true
          },
          "updatingBtnLabel": {
            "type": "string",
            "nullable": true
          },
          "successMsgOnAdd": {
            "type": "string",
            "nullable": true
          },
          "successMsgOnUpdate": {
            "type": "string",
            "nullable": true
          },
          "termsLinkLabel": {
            "type": "string",
            "nullable": true
          },
          "termsLinkUrl": {
            "type": "string",
            "nullable": true
          },
          "starRatingErrorMsg": {
            "type": "string",
            "nullable": true
          },
          "reviewTextErrorMsg": {
            "type": "string",
            "nullable": true
          },
          "guidelinesErrorMsg": {
            "type": "string",
            "nullable": true
          },
          "nameErrorMsg": {
            "type": "string",
            "nullable": true
          },
          "subHeaderText": {
            "type": "string",
            "nullable": true
          },
          "detractorsRatingText": {
            "type": "string",
            "nullable": true
          },
          "passivesRatingText": {
            "type": "string",
            "nullable": true
          },
          "promotersRatingText": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AdvancedReviewLabels": {
        "type": "object",
        "properties": {
          "heading": {
            "type": "string",
            "nullable": true
          },
          "reviewCountLabel": {
            "type": "string",
            "nullable": true
          },
          "advancedReviews": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdvancedReviewType"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AdvancedReviewType": {
        "type": "object",
        "properties": {
          "visual": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "steps": {
            "type": "integer",
            "format": "int32"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdvancedReviewTypeLabel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AdvancedReviewTypeLabel": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "BadgeLabels": {
        "type": "object",
        "properties": {
          "basedOnLabel": {
            "type": "string",
            "nullable": true
          },
          "reviewButtonLabel": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CommentData": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "nullable": true
          },
          "reviewId": {
            "type": "string",
            "nullable": true
          },
          "commentId": {
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "nullable": true
          },
          "commentText": {
            "type": "string",
            "nullable": true
          },
          "commentDate": {
            "type": "string",
            "nullable": true
          },
          "isOwn": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CustomData": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string",
            "nullable": true
          },
          "Value": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "CustomDataAggregate": {
        "type": "object",
        "properties": {
          "Average": {
            "type": "number",
            "format": "double"
          },
          "Min": {
            "type": "number",
            "format": "double"
          },
          "Max": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "GetCommentCountsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "totalReviews": {
            "type": "integer",
            "format": "int32"
          },
          "showCommentCounts": {
            "type": "boolean"
          },
          "reviews": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReviewCommentCount"
            },
            "nullable": true
          },
          "wf": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetFlow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetCommentsRequest": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "reviewId": {
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "type": "string",
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "paginationToken": {
            "type": "string",
            "nullable": true
          },
          "rd": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetCommentsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommentData"
            },
            "nullable": true
          },
          "lastEvaluatedKey": {
            "type": "string",
            "nullable": true
          },
          "wf": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetFlow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetRatingSummariesRequest": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "itemIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rd": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetRatingSummaryByItemResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/RatingSummaryByItemData"
          },
          "badgeLabels": {
            "$ref": "#/components/schemas/BadgeLabels"
          },
          "addReviewLabels": {
            "$ref": "#/components/schemas/AddReviewLabels"
          },
          "reviewLabels": {
            "$ref": "#/components/schemas/ReviewLabels"
          },
          "addReviewButtonLabels": {
            "$ref": "#/components/schemas/AddReviewButtonLabels"
          },
          "summaryLabels": {
            "$ref": "#/components/schemas/SummaryLabels"
          },
          "highlightLabels": {
            "$ref": "#/components/schemas/HighlightLabels"
          },
          "advancedReviewLables": {
            "$ref": "#/components/schemas/AdvancedReviewLabels"
          },
          "wf": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetFlow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetReviewsByRatingRequest": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "itemId": {
            "type": "string",
            "nullable": true
          },
          "rating": {
            "type": "integer",
            "format": "int32"
          },
          "contactId": {
            "type": "string",
            "nullable": true
          },
          "pageSize": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lastEvaluatedKey": {
            "type": "string",
            "nullable": true
          },
          "rd": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetReviewsRequest": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "itemId": {
            "type": "string",
            "nullable": true
          },
          "sortId": {
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "type": "string",
            "nullable": true
          },
          "pageSize": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lastEvaluatedKey": {
            "type": "string",
            "nullable": true
          },
          "rd": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetVoteCountsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "totalReviews": {
            "type": "integer",
            "format": "int32"
          },
          "reviews": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReviewVoteCount"
            },
            "nullable": true
          },
          "wf": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetFlow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HighlightLabels": {
        "type": "object",
        "properties": {
          "highlightHeader": {
            "type": "string",
            "nullable": true
          },
          "highlightFooter": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoginContactLookupRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "siteurl": {
            "type": "string",
            "nullable": true
          },
          "createIfMissing": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "LoginContactLookupResponse": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RatingSummariesResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RatingSummaryData"
            },
            "nullable": true
          },
          "wf": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetFlow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RatingSummaryByItemData": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "nullable": true
          },
          "totalReviews": {
            "type": "integer",
            "format": "int32"
          },
          "averageRating": {
            "type": "number",
            "format": "float"
          },
          "positiveCount": {
            "type": "integer",
            "format": "int32"
          },
          "negativeCount": {
            "type": "integer",
            "format": "int32"
          },
          "positiveText": {
            "type": "string",
            "nullable": true
          },
          "negativeText": {
            "type": "string",
            "nullable": true
          },
          "summarizedText": {
            "type": "string",
            "nullable": true
          },
          "rating1Count": {
            "type": "integer",
            "format": "int32"
          },
          "rating2Count": {
            "type": "integer",
            "format": "int32"
          },
          "rating3Count": {
            "type": "integer",
            "format": "int32"
          },
          "rating4Count": {
            "type": "integer",
            "format": "int32"
          },
          "rating5Count": {
            "type": "integer",
            "format": "int32"
          },
          "createdDate": {
            "type": "string",
            "nullable": true
          },
          "customData": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/CustomDataAggregate"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RatingSummaryData": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "nullable": true
          },
          "totalReviews": {
            "type": "integer",
            "format": "int32"
          },
          "averageRating": {
            "type": "number",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "ReviewCommentCount": {
        "type": "object",
        "properties": {
          "reviewId": {
            "type": "string",
            "nullable": true
          },
          "commentCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ReviewData": {
        "type": "object",
        "properties": {
          "reviewId": {
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "type": "string",
            "nullable": true
          },
          "itemId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "rating": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "reviewDate": {
            "type": "string",
            "nullable": true
          },
          "isTopRated": {
            "type": "boolean"
          },
          "isverifiedBuyer": {
            "type": "boolean"
          },
          "originalLanguageText": {
            "type": "string",
            "nullable": true
          },
          "isOwn": {
            "type": "boolean"
          },
          "customData": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomData"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReviewLabels": {
        "type": "object",
        "properties": {
          "reviewerName": {
            "type": "string",
            "nullable": true
          },
          "sortOnLatest": {
            "type": "string",
            "nullable": true
          },
          "sortOnHighestGrade": {
            "type": "string",
            "nullable": true
          },
          "sortOnLowestRating": {
            "type": "string",
            "nullable": true
          },
          "sortOnMostLikes": {
            "type": "string",
            "nullable": true
          },
          "loadReviewBtnLabel": {
            "type": "string",
            "nullable": true
          },
          "translatedFromLabel": {
            "type": "string",
            "nullable": true
          },
          "todayTextlable": {
            "type": "string",
            "nullable": true
          },
          "yesterdayTextlable": {
            "type": "string",
            "nullable": true
          },
          "daysAgoTextlable": {
            "type": "string",
            "nullable": true
          },
          "monthsAgoTextlable": {
            "type": "string",
            "nullable": true
          },
          "yearsAgoTextlable": {
            "type": "string",
            "nullable": true
          },
          "commentPopupHeader": {
            "type": "string",
            "nullable": true
          },
          "loadCommentBtnLabel": {
            "type": "string",
            "nullable": true
          },
          "addCommentLabel": {
            "type": "string",
            "nullable": true
          },
          "commentInputPlaceholder": {
            "type": "string",
            "nullable": true
          },
          "addCommentBtnLabel": {
            "type": "string",
            "nullable": true
          },
          "updateCommentBtnLabel": {
            "type": "string",
            "nullable": true
          },
          "editCommentPopupHeader": {
            "type": "string",
            "nullable": true
          },
          "cancelCommentText": {
            "type": "string",
            "nullable": true
          },
          "commentAddSuccessMessage": {
            "type": "string",
            "nullable": true
          },
          "commentUpdateSuccessMessage": {
            "type": "string",
            "nullable": true
          },
          "noCommentsYetMessage": {
            "type": "string",
            "nullable": true
          },
          "commentRequiredMessage": {
            "type": "string",
            "nullable": true
          },
          "commentLoadingText": {
            "type": "string",
            "nullable": true
          },
          "verifiedCutsomerText": {
            "type": "string",
            "nullable": true
          },
          "showingStarReviewsLabel": {
            "type": "string",
            "nullable": true
          },
          "seeAllReviewsLabel": {
            "type": "string",
            "nullable": true
          },
          "allReviewsLabel": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReviewVoteCount": {
        "type": "object",
        "properties": {
          "reviewId": {
            "type": "string",
            "nullable": true
          },
          "upvotes": {
            "type": "integer",
            "format": "int32"
          },
          "downvotes": {
            "type": "integer",
            "format": "int32"
          },
          "upvote": {
            "type": "boolean"
          },
          "downvote": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ReviewsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReviewData"
            },
            "nullable": true
          },
          "lastEvaluatedKey": {
            "type": "string",
            "nullable": true
          },
          "wf": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetFlow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SiteCheckRequest": {
        "type": "object",
        "properties": {
          "siteurl": {
            "type": "string",
            "nullable": true
          },
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "tenant": {
            "type": "string",
            "nullable": true
          },
          "eclub": {
            "type": "string",
            "nullable": true
          },
          "rd": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "SiteCheckResponse": {
        "type": "object",
        "properties": {
          "isenabled": {
            "type": "boolean"
          },
          "siteid": {
            "type": "string",
            "nullable": true
          },
          "reviewtranslation": {
            "type": "boolean"
          },
          "loggedinreviews": {
            "type": "boolean"
          },
          "identifiedreviews": {
            "type": "boolean"
          },
          "guestreviews": {
            "type": "boolean"
          },
          "maillinkreviews": {
            "type": "boolean"
          },
          "reviewupdate": {
            "type": "boolean"
          },
          "verifiedbuyeronly": {
            "type": "boolean"
          },
          "reviewupvotes": {
            "type": "boolean"
          },
          "reviewdownvotes": {
            "type": "boolean"
          },
          "showVotes": {
            "type": "boolean"
          },
          "enableEditName": {
            "type": "boolean"
          },
          "showcomments": {
            "type": "boolean"
          },
          "allowcomments": {
            "type": "boolean"
          },
          "showfootersummary": {
            "type": "boolean"
          },
          "enableInfiniteScroll": {
            "type": "boolean"
          },
          "showMoreInfoOnReview": {
            "type": "boolean"
          },
          "showreviewfortenant": {
            "type": "boolean"
          },
          "showAddReviewSubHeader": {
            "type": "boolean"
          },
          "showStarRatingPrompts": {
            "type": "boolean"
          },
          "ratingenabled": {
            "type": "boolean"
          },
          "contactid": {
            "type": "string",
            "nullable": true
          },
          "isReviewTextRequired": {
            "type": "boolean"
          },
          "showMidStopLabel": {
            "type": "boolean"
          },
          "showReviewCount": {
            "type": "boolean"
          },
          "isEmailRatingEnabled": {
            "type": "boolean"
          },
          "minimumSummaryRating": {
            "type": "number",
            "format": "double"
          },
          "minimumReviewsForStars": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SiteCheckResultViewModel": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "$ref": "#/components/schemas/SiteCheckResponse"
          },
          "wf": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetFlow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubmitReviewRequest": {
        "required": [
          "rating"
        ],
        "type": "object",
        "properties": {
          "identity": {
            "type": "string",
            "nullable": true
          },
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "engageId": {
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "contactName": {
            "type": "string",
            "nullable": true
          },
          "itemId": {
            "type": "string",
            "nullable": true
          },
          "productGroupId": {
            "type": "string",
            "nullable": true
          },
          "productId": {
            "type": "string",
            "nullable": true
          },
          "productVariantId": {
            "type": "string",
            "nullable": true
          },
          "reviewGroupId": {
            "type": "string",
            "nullable": true
          },
          "productFeedId": {
            "type": "string",
            "nullable": true
          },
          "rating": {
            "maximum": 5,
            "minimum": 0,
            "type": "number",
            "format": "float"
          },
          "reviewText": {
            "type": "string",
            "nullable": true
          },
          "reviewTextTranslations": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "messageId": {
            "type": "string",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "nullable": true
          },
          "photoUrl": {
            "type": "string",
            "nullable": true
          },
          "isPublished": {
            "type": "boolean"
          },
          "isVerifiedBuyer": {
            "type": "boolean",
            "nullable": true
          },
          "upVotesCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "downVotesCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isTopRated": {
            "type": "boolean",
            "nullable": true
          },
          "productTitle": {
            "type": "string",
            "nullable": true
          },
          "productURL": {
            "type": "string",
            "nullable": true
          },
          "productImageURL": {
            "type": "string",
            "nullable": true
          },
          "originalLocale": {
            "type": "string",
            "nullable": true
          },
          "originalLanguageText": {
            "type": "string",
            "nullable": true
          },
          "customData": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomData"
            },
            "nullable": true
          },
          "rd": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "SummaryLabels": {
        "type": "object",
        "properties": {
          "aiSummary": {
            "type": "string",
            "nullable": true
          },
          "summaryHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VoteReviewRequest": {
        "required": [
          "itemId",
          "reviewId",
          "voterId"
        ],
        "type": "object",
        "properties": {
          "reviewId": {
            "minLength": 1,
            "type": "string"
          },
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "itemId": {
            "minLength": 1,
            "type": "string"
          },
          "voterId": {
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "upVote": {
            "type": "boolean"
          },
          "downVote": {
            "type": "boolean"
          },
          "productImageURL": {
            "type": "string",
            "nullable": true
          },
          "rd": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "WidgetFlow": {
        "type": "object",
        "properties": {
          "Session": {
            "type": "string",
            "nullable": true
          },
          "Timestamp": {
            "type": "string",
            "nullable": true
          },
          "Role": {
            "type": "string",
            "nullable": true
          },
          "Flow": {
            "type": "string",
            "nullable": true
          },
          "Deal": {
            "type": "string",
            "nullable": true
          },
          "API": {
            "type": "string",
            "nullable": true
          },
          "Click": {
            "type": "string",
            "nullable": true
          },
          "Channel": {
            "type": "string",
            "nullable": true
          },
          "Impression": {
            "type": "string",
            "nullable": true
          },
          "User": {
            "type": "string",
            "nullable": true
          },
          "Device": {
            "type": "string",
            "nullable": true
          },
          "FlowStep": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "string",
            "nullable": true
          },
          "Latitude": {
            "type": "number",
            "format": "double"
          },
          "Longitude": {
            "type": "number",
            "format": "double"
          },
          "DeviceType": {
            "type": "string",
            "nullable": true
          },
          "Resolution": {
            "type": "string",
            "nullable": true
          },
          "OS": {
            "type": "string",
            "nullable": true
          },
          "UserLanguage": {
            "type": "string",
            "nullable": true
          },
          "BrowserType": {
            "type": "string",
            "nullable": true
          },
          "Revenue": {
            "type": "number",
            "format": "double"
          },
          "Total": {
            "type": "number",
            "format": "double"
          },
          "DenyReason": {
            "type": "string",
            "nullable": true
          },
          "OptIn": {
            "type": "string",
            "nullable": true
          },
          "Site": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "Company": {
            "type": "string",
            "nullable": true
          },
          "contact": {
            "type": "string",
            "nullable": true
          },
          "ImpressionType": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "referer": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "Agent": {
            "type": "string",
            "nullable": true
          },
          "flowtype": {
            "type": "string",
            "nullable": true
          },
          "ip": {
            "type": "string",
            "nullable": true
          },
          "delay": {
            "type": "integer",
            "format": "int64"
          },
          "trigger": {
            "type": "string",
            "nullable": true
          },
          "emailaddrsha256": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "sitecurrency": {
            "type": "string",
            "nullable": true
          },
          "siteconversionrate": {
            "type": "number",
            "format": "double"
          },
          "companycurrency": {
            "type": "string",
            "nullable": true
          },
          "companyconversionrate": {
            "type": "number",
            "format": "double"
          },
          "apiversion": {
            "type": "string",
            "nullable": true
          },
          "scriptversion": {
            "type": "string",
            "nullable": true
          },
          "tenant": {
            "type": "string",
            "nullable": true
          },
          "salesforce": {
            "type": "string",
            "nullable": true
          },
          "new_accepts_sms": {
            "type": "boolean"
          },
          "new_accepts_email": {
            "type": "boolean"
          },
          "new_accepts_postal": {
            "type": "boolean"
          },
          "NPS": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "WidgetStringResultViewModel": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "string",
            "nullable": true
          },
          "wf": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetFlow"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}