> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devmob.app.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Moderate Trip Review

> Updates moderation state without deleting the review.



## OpenAPI

````yaml /api-reference/ops/openapi.json patch /api/v1/ops/trip-reviews/{tripReviewId}/moderation
openapi: 3.0.0
info:
  title: DEVMOB OPS API
  description: DEVMOB API
  version: '1.0'
  contact: {}
servers: []
security: []
tags:
  - name: Auth
    description: Authentication and token lifecycle
  - name: Bank Account
    description: Bank accounts
  - name: Benefit
    description: Benefit categories and usage history
  - name: Benefit Program
    description: Fare benefit programs
  - name: Benefit Request
    description: Fare benefit requests and documents
  - name: Credit Account
    description: Company credit account
  - name: Credit Grant
    description: Company granted credits
  - name: Credit Purchase
    description: Company credit purchases
  - name: Driver
    description: Company drivers
  - name: Employee
    description: Company employees
  - name: Employee Session
    description: Employee sessions
  - name: Export
    description: Export resources
  - name: Export Job
    description: Immediate export jobs
  - name: Export Schedule
    description: Scheduled exports
  - name: Invite
    description: Member invitations
  - name: Notification
    description: OPS inbox notifications
  - name: Offering
    description: Trip offerings and seat maps
  - name: Order
    description: Orders
  - name: Organization
    description: Organization profile
  - name: Organization Address
    description: Organization address
  - name: OTP
    description: One-time password flows
  - name: Payment
    description: Payments
  - name: Permission
    description: Permissions
  - name: Point
    description: Point lookup
  - name: Profile
    description: Authenticated OPS profile
  - name: Promotion
    description: Promotions
  - name: Promotion Rule
    description: Promotion rules
  - name: Receivable
    description: Receivables
  - name: Report
    description: Operational reports
  - name: Role
    description: Roles
  - name: Route
    description: Routes
  - name: Route Approval
    description: Route approvals
  - name: Routing
    description: Routing helpers
  - name: Storage
    description: Storage uploads
  - name: Support
    description: Support cases
  - name: Transfer
    description: Transfers
  - name: Transport Operator
    description: Transport operators
  - name: Transport Operator Quota
    description: Transport operator quotas
  - name: Transport Operator Route
    description: Transport operator route authorizations
  - name: Transport Operator Subsidy Rule
    description: Transport operator subsidy rules
  - name: Transport Operator Subsidy Settlement
    description: Transport operator subsidy settlements
  - name: Trip
    description: Trips
  - name: Trip Event
    description: Trip operational events
  - name: Trip Schedule
    description: Recurring trip schedules
  - name: Trip Tracking
    description: Trip GPS tracking
  - name: Vehicle
    description: Vehicles and seats
paths:
  /api/v1/ops/trip-reviews/{tripReviewId}/moderation:
    patch:
      tags:
        - Trip Review
      summary: Moderate Trip Review
      description: Updates moderation state without deleting the review.
      operationId: moderateTripReview
      parameters:
        - name: tripReviewId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Trip review identifier.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModerateTripReviewRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TripReview'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    ModerateTripReviewRequest:
      type: object
      properties:
        status:
          type: string
          enum:
            - VISIBLE
            - FLAGGED
            - HIDDEN
          description: Novo estado de moderação.
        reason:
          type: string
          nullable: true
          description: Motivo da moderação.
      required:
        - status
      description: Payload de moderação de avaliação.
    TripReview:
      type: object
      properties:
        tripReviewId:
          type: string
          format: uuid
          description: Identificador único
        tripId:
          type: string
          format: uuid
          description: Viagem avaliada
        orderId:
          type: string
          format: uuid
          description: Pedido que originou a viagem avaliada
        customerId:
          type: string
          format: uuid
          description: Cliente que avaliou
        cooperativeId:
          type: string
          format: uuid
          description: Cooperativa da viagem
        transportOperatorId:
          type: string
          format: uuid
          description: Permissionário avaliado
        driverId:
          type: string
          format: uuid
          description: Motorista avaliado
        driverRating:
          type: integer
          description: Nota do motorista (1 a 5)
        driverComment:
          type: string
          nullable: true
          description: Comentário sobre o motorista
        transportOperatorRating:
          type: integer
          description: Nota do permissionário (1 a 5)
        transportOperatorComment:
          type: string
          nullable: true
          description: Comentário sobre o permissionário
        cooperativeResponseMessage:
          type: string
          nullable: true
          description: Resposta oficial da cooperativa
        respondedByCooperativeId:
          type: string
          format: uuid
          description: Cooperativa que respondeu
          nullable: true
        respondedByUserId:
          type: string
          format: uuid
          description: Usuário que registrou a resposta
          nullable: true
        respondedAt:
          type: string
          format: date-time
          description: Data da resposta
          nullable: true
        moderationStatus:
          type: string
          enum:
            - VISIBLE
            - FLAGGED
            - HIDDEN
          description: Estado de moderação
        moderationReason:
          type: string
          nullable: true
          description: Motivo da moderação
        moderatedByUserId:
          type: string
          format: uuid
          description: Usuário que moderou
          nullable: true
        moderatedAt:
          type: string
          format: date-time
          description: Data da moderação
          nullable: true
        createdBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que criou o registro, quando aplicável
        createdAt:
          type: string
          format: date-time
          description: Data de criação
        updatedBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que fez a última atualização, quando aplicável
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização
      required:
        - tripReviewId
        - tripId
        - orderId
        - customerId
        - cooperativeId
        - transportOperatorId
        - driverId
        - driverRating
        - driverComment
        - transportOperatorRating
        - transportOperatorComment
        - cooperativeResponseMessage
        - respondedByCooperativeId
        - respondedByUserId
        - respondedAt
        - moderationStatus
        - moderationReason
        - moderatedByUserId
        - moderatedAt
        - createdBy
        - createdAt
        - updatedBy
        - updatedAt
      description: Avaliação de uma viagem comprada dentro de um pedido
    ValidationError:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
          example: 400
        message:
          type: string
          description: Error message.
          example: Bad Request Error
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: Validation code.
                example: invalid_type
              message:
                type: string
                description: Validation message.
                example: Required
              path:
                type: string
                description: Invalid field path.
                example: name
            required:
              - code
              - message
              - path
      required:
        - statusCode
        - message
        - errors
      description: Validation error response.
    ApiError:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
          example: 404
        error:
          type: string
          description: HTTP error name.
          example: Not Found
        message:
          type: string
          description: Machine-readable error code.
          example: resource.not_found
      required:
        - statusCode
        - error
        - message
      description: Domain error response.
  responses:
    BadRequestError:
      description: Validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
    UnauthorizedError:
      description: Authentication required.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ForbiddenError:
      description: Forbidden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    NotFoundError:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'

````