draft:
  post:
    tags:
      - Scene
    summary: 'Create draft'
    operationId: createDraft
    responses:
      '200':
        content:
          application/json:
            examples:
              success1:
                value:
                  "success": true
                  "data": {
                    "id": 4,
                    "name": "Untitled-1",
                    "is_favorite": false,
                    "is_system": false,
                    "volume_level": "1",
                    "fading": 0,
                    "status": "draft",
                    "slots": [
                      {
                        "id": 7,
                        "slot_type": "music",
                        "volume_level": "0",
                        "repeat": false,
                        "cycle_through": false
                      },
                      {
                        "id": 8,
                        "slot_type": "ambient",
                        "volume_level": "0",
                        "repeat": false,
                        "cycle_through": false
                      }
                    ]
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]

scene:
  get:
    tags:
      - Scene
    summary: 'Read scene'
    operationId: sceneList
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": {
                    "id": 1,
                    "name": "Scene 1",
                    "is_favorite": false,
                    "is_system": false,
                    "volume_level": "0.7",
                    "fading": 1,
                    "status": "active",
                    "slots": [
                      {
                        "id": 1,
                        "slot_type": "music",
                        "volume_level": "0.8",
                        "repeat": true,
                        "cycle_through": false,
                        "tracks": [
                          {
                            "id": 4,
                            "scene_slot_id": 1,
                            "audio_asset_id": 2,
                            "position": 1,
                            "volume_level": "1",
                            "renamed_track_name": null,
                            "audio_asset": {
                              "id": 2,
                              "name": "Dr. Annamarie Bernhard",
                              "type": "track",
                              "file_path": "http://127.0.0.1:8301/storage/tracks/dr-annamarie-bernhard.mp3",
                              "status": "published"
                            }
                          },
                          {
                            "id": 3,
                            "scene_slot_id": 1,
                            "audio_asset_id": 1,
                            "position": 0,
                            "volume_level": "0.5",
                            "renamed_track_name": null,
                            "audio_asset": {
                              "id": 1,
                              "name": "Dean Wehner",
                              "type": "track",
                              "file_path": "http://127.0.0.1:8301/storage/tracks/dean-wehner.mp3",
                              "status": "published"
                            }
                          }
                        ]
                      },
                      {
                        "id": 2,
                        "slot_type": "ambient",
                        "volume_level": "0",
                        "repeat": false,
                        "cycle_through": false,
                        "tracks": [
                          {
                            "id": 5,
                            "scene_slot_id": 2,
                            "audio_asset_id": 3,
                            "position": 0,
                            "volume_level": "1",
                            "renamed_track_name": null,
                            "audio_asset": {
                              "id": 3,
                              "name": "Ms. Kaia Leannon Sr.",
                              "type": "track",
                              "file_path": "http://127.0.0.1:8301/storage/tracks/ms-kaia-leannon-sr.mp3",
                              "status": "published"
                            }
                          },
                          {
                            "id": 6,
                            "scene_slot_id": 2,
                            "audio_asset_id": 4,
                            "position": 1,
                            "volume_level": "1",
                            "renamed_track_name": null,
                            "audio_asset": {
                              "id": 4,
                              "name": "Dr. Hadley Gislason",
                              "type": "track",
                              "file_path": "http://127.0.0.1:8301/storage/tracks/dr-hadley-gislason.mp3",
                              "status": "published"
                            }
                          }
                        ]
                      }
                    ]
                  }
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"

      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]
  put:
    tags:
      - Scene
    summary: 'Update scene'
    operationId: updateScene
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    requestBody:
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                type: string
                example: "Rules: ['required', 'string', 'unique']"
                required: true
              volume_level:
                type: number
                example: "Rules: ['required', 'decimal:1']. Examples: 0.7/1.0"
                required: true
              fading:
                type: number
                example: "Rules: ['required', 'integer']. Examples: 2/3/5"
                required: true
              is_shared:
                type: number
                example: "Rules: ['nullable', 'boolean']. Examples: 2/3/5"
                required: true
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": {
                    "id": 1,
                    "name": "Scene 1",
                    "is_favorite": false,
                    "is_system": false,
                    "volume_level": "0.7",
                    "fading": 1,
                    "status": "active"
                  }
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '422':
        description: Validation Error
        content:
          application/json:
            examples:
              error:
                value:
                  errors: {
                    "name": [
                      "The name field is required.",
                      "The name field should be a string.",
                      "The scene with this name already exists."
                    ],
                    "volume_level": [
                      "The volume_level field is required.",
                      "The volume_level field should be a decimal.",
                    ],
                    "fading": [
                      "The fading field is required.",
                      "The fading field should be a number.",
                    ],
                  }

      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]
  delete:
    tags:
      - Scene
    summary: 'Delete scene'
    operationId: deleteScene
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": true
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]

list:
  get:
    tags:
      - Scene
    summary: 'Scene list'
    operationId: sceneList
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true
                  "data": {
                    "favorite": [
                      {
                        "id": 2,
                        "name": "Scene 2",
                        "is_favorite": true,
                        "is_system": false,
                        "status": "active",
                        "slots": [
                          {
                            "id": 3,
                            "slot_type": "music",
                            "tracks": [ ]
                          },
                          {
                            "id": 4,
                            "slot_type": "ambient",
                            "tracks": [ ]
                          }
                        ],
                        "tracks_count": 0
                      },
                      {
                        "id": 3,
                        "name": "Scene 3",
                        "is_favorite": true,
                        "is_system": false,
                        "status": "active",
                        "slots": [
                          {
                            "id": 5,
                            "slot_type": "music",
                            "tracks": [ ]
                          },
                          {
                            "id": 6,
                            "slot_type": "ambient",
                            "tracks": [ ]
                          }
                        ],
                        "tracks_count": 0
                      }
                    ],
                    "default": [
                      {
                        "id": 1,
                        "name": "Scene 1",
                        "is_favorite": false,
                        "is_system": false,
                        "status": "active",
                        "slots": [
                          {
                            "id": 1,
                            "slot_type": "music",
                            "tracks": [
                              {
                                "name": "Dr. Annamarie Bernhard"
                              },
                              {
                                "name": "Dean Wehner"
                              }
                            ]
                          },
                          {
                            "id": 2,
                            "slot_type": "ambient",
                            "tracks": [
                              {
                                "name": "Ms. Kaia Leannon Sr."
                              },
                              {
                                "name": "Dr. Hadley Gislason"
                              }
                            ]
                          }
                        ],
                        "tracks_count": 4
                      },
                      {
                        "id": 4,
                        "name": "Untitled-1",
                        "is_favorite": false,
                        "is_system": false,
                        "status": "draft",
                        "slots": [
                          {
                            "id": 7,
                            "slot_type": "music",
                            "tracks": [ ]
                          },
                          {
                            "id": 8,
                            "slot_type": "ambient",
                            "tracks": [ ]
                          }
                        ],
                        "tracks_count": 0
                      }
                    ],
                    "system": [ ]
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": ["Server error"]

favorite:
  patch:
    tags:
      - Scene
    summary: 'Toggle favorite'
    operationId: toggleFavorite
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": {
                    "id": 1,
                    "name": "Scene 1",
                    "is_favorite": true,
                    "is_system": false,
                    "volume_level": 0.7,
                    "fading": 1,
                    "status": "active"
                  }
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]

share:
  patch:
    tags:
      - Scene
    summary: 'Update share'
    operationId: shareScene
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success1:
                value:
                  "success": true,
                  "data": "https://domain.com/scene-JxZiv3OWiBuDf8QftMkUlQJZtvf0UXeA56ezlhbgnhQsZXl1CrJDg2PsxsTS05dy"
              success2:
                value:
                  "success": true,
                  "data": null
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]

slot:
  put:
    tags:
      - Scene | Slot
    summary: 'Update slot'
    operationId: updateSlot
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    requestBody:
      content:
        application/json:
          schema:
            type: object
            properties:
              scene_slot_id:
                type: number
                example: "Rules: ['required', 'number', 'exists']"
                required: true
              volume_level:
                type: number
                example: "Rules: ['required', 'decimal:1']. Examples: 0.7/1.0"
                required: true
              repeat:
                type: boolean
                example: "Rules: ['required', 'boolean']"
                required: true
              cycle_through:
                type: number
                example: "Rules: ['required', 'boolean']"
                required: true
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": {
                    "slot_type": "music",
                    "volume_level": "0.8",
                    "repeat": true,
                    "cycle_through": false,
                    "slot_id": 1
                  }
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '422':
        description: Validation Error
        content:
          application/json:
            examples:
              error:
                value:
                  errors: {
                    "scene_slot_id": [
                      "The scene_slot_id field is required.",
                      "The selected scene_slot_id is invalid.",
                      "The track does not belong to the current scene slot."
                    ],
                    "volume_level": [
                      "The volume_level field is required.",
                      "The volume_level field should be a decimal.",
                    ],
                    "repeat": [
                      "The repeat field is required.",
                      "The repeat field should be a boolean.",
                    ],
                    "cycle_through": [
                      "The cycle_through field is required.",
                      "The cycle_through field should be a boolean.",
                    ],
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]

track:
  post:
    tags:
      - Scene | Track
    summary: 'Add track'
    operationId: addTrack
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    requestBody:
      content:
        application/json:
          schema:
            type: object
            properties:
              scene_slot_id:
                type: string
                example: "Rules: ['required', 'exists']"
                required: true
              audio_asset_id:
                type: number
                example: "Rules: ['required', 'decimal:1']. Examples: 0.7/1.0"
                required: true
              position:
                type: boolean
                example: "Rules: ['required', 'boolean']"
                required: true
              volume_level:
                type: number
                example: "Rules: ['nullable', 'decimal:1']"
                required: false
              renamed_track_name:
                type: string
                example: "Rules: ['nullable', 'string']"
                required: false
              status:
                type: string
                example: "Rules: ['nullable', 'string']. Should be: `play` or `pause`"
                required: false
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": {
                    "scene_slot_id": 1,
                    "audio_asset_id": 5,
                    "position": 2,
                    "volume_level": 0,
                    "renamed_track_name": null,
                    "audio_asset": {
                      "id": 5,
                      "name": "Shannon Hackett",
                      "type": "track",
                      "file_path": "http://127.0.0.1:8301/storage/tracks/shannon-hackett.mp3",
                      "status": "published"
                    },
                    "track_id": 8
                  }
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '422':
        description: Validation Error
        content:
          application/json:
            examples:
              error:
                value:
                  errors: {
                    "scene_slot_id": [
                      "The scene_slot_id field is required.",
                      "The scene_slot_id slot id is invalid.",
                      "The track does not belong to the current scene slot."
                    ],
                    "audio_asset_id": [
                      "The audio_asset_id field is required.",
                      "The audio_asset_id slot id is invalid."
                    ],
                    "position": [
                      "The position field is required.",
                      "The volume_level field should be a number.",
                    ],
                    "repeat": [
                      "The repeat field is required.",
                      "The repeat field should be a boolean.",
                    ],
                    "volume_level": [
                      "The cycle_through field should be a decimal.",
                    ],
                    "renamed_track_name": [
                      "The renamed_track_name field should be a string.",
                    ],
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]
  put:
    tags:
      - Scene | Track
    summary: 'Update track'
    operationId: updateTrack
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    requestBody:
      content:
        application/json:
          schema:
            type: object
            properties:
              scene_track_id:
                type: string
                example: "Rules: ['required', 'exists']"
                required: true
              scene_slot_id:
                type: string
                example: "Rules: ['required', 'exists']"
                required: true
              audio_asset_id:
                type: number
                example: "Rules: ['required', 'decimal:1']. Examples: 0.7/1.0"
                required: true
              position:
                type: boolean
                example: "Rules: ['required', 'boolean']"
                required: true
              volume_level:
                type: number
                example: "Rules: ['nullable', 'decimal:1']"
                required: false
              renamed_track_name:
                type: string
                example: "Rules: ['nullable', 'string']"
                required: false
              status:
                type: string
                example: "Rules: ['nullable', 'string']. Should be: `play` or `pause`"
                required: false
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": {
                    "scene_slot_id": 1,
                    "audio_asset_id": 5,
                    "position": 2,
                    "volume_level": 0,
                    "renamed_track_name": null,
                    "audio_asset": {
                      "id": 5,
                      "name": "Shannon Hackett",
                      "type": "track",
                      "file_path": "http://127.0.0.1:8301/storage/tracks/shannon-hackett.mp3",
                      "status": "published"
                    },
                    "scene_track_id": 8
                  }
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '422':
        description: Validation Error
        content:
          application/json:
            examples:
              error:
                value:
                  errors: {
                    "scene_track_id": [
                      "The scene_track_id field is required.",
                      "The scene_track_id slot id is invalid.",
                      "The track does not belong to the current scene slot."
                    ],
                    "scene_slot_id": [
                      "The scene_slot_id field is required.",
                      "The scene_slot_id slot id is invalid.",
                      "The track does not belong to the current scene slot."
                    ],
                    "audio_asset_id": [
                      "The audio_asset_id field is required.",
                      "The audio_asset_id slot id is invalid."
                    ],
                    "position": [
                      "The position field is required.",
                      "The volume_level field should be a number.",
                    ],
                    "repeat": [
                      "The repeat field is required.",
                      "The repeat field should be a boolean.",
                    ],
                    "volume_level": [
                      "The cycle_through field should be a decimal.",
                    ],
                    "renamed_track_name": [
                      "The renamed_track_name field should be a string.",
                    ],
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]
  patch:
    tags:
      - Scene | Track
    summary: 'Reorder track'
    operationId: reorder
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    requestBody:
      content:
        application/json:
          schema:
            type: object
            properties:
              list:
                type: array
                items:
                  type: object
                  properties:
                    scene_slot_id:
                      type: integer
                      example: 1
                      description: "Rules: ['required', 'exists']"
                    scene_track_id:
                      type: integer
                      example: 3
                      description: "Rules: ['required', 'exists']"
                    position:
                      type: integer
                      example: 0
                      description: "Rules: ['required', 'integer']"
            required:
              - list
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true
                  "data": true
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '422':
        description: Validation Error
        content:
          application/json:
            examples:
              error:
                value:
                  errors: {
                    "list": [
                      "The list field is required."
                    ],
                    "list.*": [
                      "The list.* field is required."
                    ],
                    "list.*.slot_id": [
                      "The list.*.slot_id field is required.",
                      "The list.*.slot_id id is invalid.",
                      "The track does not belong to the current scene slot."
                    ],
                    "list.*.scene_track_id": [
                      "The list.*.scene_track_id field is required.",
                      "The list.*.scene_track_id id is invalid.",
                      "The track does not belong to the current scene slot."
                    ],
                    "list.*.position": [
                      "The list.*.position field is required.",
                      "The list.*.position id is invalid."
                    ]
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]
  delete:
    tags:
      - Scene | Track
    summary: 'Delete track'
    operationId: delete
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
      - in: query
        name: scene_track_id
        schema:
          type: number
        required: true
        description: "Rules: ['required', 'exists']"
        example: 1
      - in: query
        name: scene_slot_id
        schema:
          type: number
        required: true
        description: "Rules: ['required', 'exists']"
        example: 1
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true
                  "data": true
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '422':
        description: Validation Error
        content:
          application/json:
            examples:
              error:
                value:
                  errors: {
                    "scene_track_id": [
                      "The scene_track_id field is required.",
                      "The scene_track_id is invalid.",
                      "The track does not belong to the current scene slot."
                    ],
                    "scene_slot_id": [
                      "The slot_id field is required.",
                      "The slot_id is invalid.",
                      "The track does not belong to the current scene slot."
                    ],
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]

one-shot:
  post:
    tags:
      - Scene | One Shot
    summary: 'Add one shot'
    operationId: addOneShot
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    requestBody:
      content:
        application/json:
          example: {
            "audio_assets": [
              {
                "audio_asset_id": 1,
                "status": "pause"
              }
            ]
          }
          schema:
            type: object
            properties:
              audio_assets:
                type: array
                example: "Rules: ['required', 'exists']"
                items:
                  type: object
                  properties:
                    audio_asset_id:
                      type: string
                      example: "Rules: ['required', 'string']"
                      required: true
                    status:
                      type: number
                      example: "Rules: ['required', 'string']"
                      required: true

    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": true
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '422':
        description: Validation Error
        content:
          application/json:
            examples:
              error:
                value:
                  errors: {
                    "audio_assets": [
                      "The audio_assets field is required.",
                      "The audio_assets is invalid."
                    ]
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]
  put:
    tags:
      - Scene | One Shot
    summary: 'Update one shot'
    operationId: updateOneShot
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    requestBody:
      content:
        application/json:
          example: {
            "audio_assets": [
              {
                "audio_asset_id": 1,
                "status": "pause"
              }
            ]
          }
          schema:
            type: object
            properties:
              audio_assets:
                type: array
                example: "Rules: ['required', 'exists']"
                items:
                  type: object
                  properties:
                    audio_asset_id:
                      type: string
                      example: "Rules: ['required', 'string']"
                      required: true
                    status:
                      type: number
                      example: "Rules: ['required', 'string']"
                      required: true
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": true
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '422':
        description: Validation Error
        content:
          application/json:
            examples:
              error:
                value:
                  errors: {
                    "audio_assets": [
                      "The audio_assets field is required.",
                      "The audio_assets is invalid."
                    ]
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]
  delete:
    tags:
      - Scene | One Shot
    summary: 'Delete one shots'
    operationId: addOneShot
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
      - in: path
        name: ids
        schema:
          type: string
        required: true
        description: "ID of the tracks."
        example: "1,2,3"
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": true
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"
      '422':
        description: Validation Error
        content:
          application/json:
            examples:
              error:
                value:
                  errors: {
                    "ids": [
                      "The ids field is required.",
                      "The ids is invalid."
                    ]
                  }
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]


readShare:
  get:
    tags:
      - Scene
    summary: 'Read share scene'
    operationId: sceneShareREad
    parameters:
      - in: path
        name: scene
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value:
                  "success": true,
                  "data": {
                    "scene_id": 1,
                    "volume_level": "0.8",
                    "fading": 1,
                    "slots": [
                      {
                        "id": 1,
                        "slot_type": "music",
                        "volume_level": "0",
                        "repeat": false,
                        "cycle_through": false,
                        "tracks": [
                          {
                            "id": 1,
                            "audio_asset_id": 1,
                            "position": 0,
                            "volume_level": "0",
                            "status": "play",
                            "file_path": "https://fantasyplus.s3.amazonaws.com/public/api-Created/file_example.mp3?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2RP6IRIYIY52AOE5%2F20241216%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241216T100037Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Signature=5f75007fbae1e4b079298623e804c12ff2a64dabf629e5b9295daa1601c39893"
                          }
                        ]
                      },
                      {
                        "id": 2,
                        "slot_type": "ambient",
                        "volume_level": "0",
                        "repeat": false,
                        "cycle_through": false,
                        "tracks": [
                          {
                            "id": 2,
                            "audio_asset_id": 1,
                            "position": 0,
                            "volume_level": "0",
                            "status": "play",
                            "file_path": "https://fantasyplus.s3.amazonaws.com/public/api-Created/file_example.mp3?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2RP6IRIYIY52AOE5%2F20241216%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241216T100037Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Signature=5f75007fbae1e4b079298623e804c12ff2a64dabf629e5b9295daa1601c39893"
                          }
                        ]
                      }
                    ],
                    "one_shots": {
                      "id": 15,
                      "volume_level": "1",
                      "tracks": [
                        {
                          "status": "play",
                          "file_path": "https://fantasyplus.s3.amazonaws.com/public/api-Created/file_example.mp3?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2RP6IRIYIY52AOE5%2F20241216%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241216T100037Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Signature=5f75007fbae1e4b079298623e804c12ff2a64dabf629e5b9295daa1601c39893"
                        },
                        {
                          "status": "play",
                          "file_path": "https://fantasyplus.s3.amazonaws.com/public/api-Created/file_example.mp3?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2RP6IRIYIY52AOE5%2F20241216%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241216T100037Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Signature=5f75007fbae1e4b079298623e804c12ff2a64dabf629e5b9295daa1601c39893"
                        }
                      ]
                    }
                  }
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '404':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "No query results for model [App\\Domain\\Models\\Scene] #"

      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]

readShareWebsocket:
  get:
    tags:
      - Scene
    summary: 'Read scene websocket'
    description: "`echo.private('sharing.${id}')
        .listen('.updated', (e) => {
            console.log(e);
        });`"
    operationId: sceneReadWebsocket
    parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: "ID of the scene."
        example: 1
    responses:
      '200':
        description: ""
        content:
          application/json:
            examples:
              success:
                value: '{"event":"pusher_internal:subscription_succeeded","data":"{}","channel":"private-sharing.1"}'
      '403':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "message": "Action unauthorized"
      '500':
        description: Server error
        content:
          application/json:
            examples:
              error:
                value:
                  "success": false
                  "errors": [ "Server error" ]
