diff --git a/.gitattributes b/.gitattributes index 83b0074..f7d1be8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,14 +9,13 @@ /.php-cs-fixer.cache export-ignore /.php-cs-fixer.dist export-ignore /.phpunit.cache export-ignore -# Database components are for testing only. -/database export-ignore /docs export-ignore -/resources/docs export-ignore +/resources/package export-ignore /tests export-ignore /vendor export-ignore /composer.lock export-ignore /package.json export-ignore +/phpunit-ci.xml export-ignore /phpunit.xml export-ignore /phpunit.xml.dist export-ignore /psalm.xml export-ignore diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b5a151..dd78f2d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -129,7 +129,7 @@ jobs: with: level: 9 php_version: "8.2" - path: config/ routes/ src/ tests/Feature/ tests/Unit/ + path: config/ resources/views/ routes/ src/ tests/Feature/ tests/Unit/ args: --verbose --debug - name: Stopping timer if: ${{ !cancelled() }} diff --git a/.gitignore b/.gitignore index 69d39db..ceb7ed9 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ database/migrations/*.disabled resources/packages composer.lock +package-lock.json tmp-* temp-* @@ -59,12 +60,14 @@ public/storage output -public/tests +public/docs -phpunit.xml +public/tests phpstan.neon +phpunit.xml + .phpunit.cache tests/_output/* @@ -97,4 +100,3 @@ yarn-error.log /.fleet /.idea /.vscode - diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 70a90e0..7ba8f86 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -217,7 +217,6 @@ __DIR__.'/config', // __DIR__.'/lang', __DIR__.'/routes', - __DIR__.'/resources', __DIR__.'/src', __DIR__.'/tests/Feature', __DIR__.'/tests/Unit', diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..0921590 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Playground + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/composer.json b/composer.json index 213bdf8..9eaaa61 100644 --- a/composer.json +++ b/composer.json @@ -2,16 +2,16 @@ "name": "gammamatrix/playground-matrix-resource", "description": "Playground: Provides an API and a Blade UI for interacting with Playground Matrix, a Project Management System for Laravel applications.", "keywords": [ - "matrix", "agile", - "sprints", - "projects", - "tickets", "gammamatrix", "laravel", - "playground" + "matrix", + "playground", + "playground-blade", + "projects", + "sprints" ], - "homepage": "https://gammamatrix-playground.readthedocs.io/", + "homepage": "https://github.com/gammamatrix/playground-matrix-resource", "license": "MIT", "authors": [ { @@ -22,18 +22,16 @@ ], "require": { "php": "^8.2", + "gammamatrix/playground": "*", "gammamatrix/playground-auth": "*", - "gammamatrix/playground-blade": "*", "gammamatrix/playground-http": "*", "gammamatrix/playground-matrix": "*" }, "require-dev": { + "gammamatrix/playground-test": "*", "gammamatrix/playground-login-blade": "*", - "gammamatrix/playground-site-blade": "*", - "gammamatrix/playground-test": "*" + "gammamatrix/playground-site-blade": "*" }, - "minimum-stability": "dev", - "prefer-stable": true, "autoload": { "psr-4": { "Playground\\Matrix\\Resource\\": "src/" @@ -50,13 +48,11 @@ "preferred-install": { "gammamatrix/*": "source", "*": "dist" - }, - "process-timeout": 0 + } }, "extra": { "branch-alias": { - "dev-develop": "73.x-dev", - "dev-master": "73.x-dev" + "dev-develop": "73.x-dev" }, "laravel": { "providers": [ @@ -64,10 +60,15 @@ ] } }, + "minimum-stability": "dev", + "prefer-stable": true, "scripts": { "analyse": "vendor/bin/phpstan analyse --verbose --debug --level max", "cloc": "cloc --exclude-dir=node_modules,output,vendor .", "format": "vendor/bin/php-cs-fixer fix", - "test": "vendor/bin/phpunit" + "test": [ + "Composer\\Config::disableProcessTimeout", + "vendor/bin/testbench package:test" + ] } } diff --git a/config/playground-matrix-resource.php b/config/playground-matrix-resource.php index 592d27a..dbe3361 100644 --- a/config/playground-matrix-resource.php +++ b/config/playground-matrix-resource.php @@ -11,9 +11,9 @@ return [ /* - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | About Information - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | | By default, information will be displayed about this package when using: | @@ -24,9 +24,9 @@ 'about' => (bool) env('PLAYGROUND_MATRIX_RESOURCE_ABOUT', true), /* - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | Loading - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | | By default, translations and views are loaded. | @@ -35,14 +35,14 @@ 'load' => [ 'policies' => (bool) env('PLAYGROUND_MATRIX_RESOURCE_LOAD_POLICIES', true), 'routes' => (bool) env('PLAYGROUND_MATRIX_RESOURCE_LOAD_ROUTES', true), - 'translations' => (bool) env('PLAYGROUND_MATRIX_RESOURCE_LOAD_TRANSLATIONS', false), + 'translations' => (bool) env('PLAYGROUND_MATRIX_RESOURCE_LOAD_TRANSLATIONS', true), 'views' => (bool) env('PLAYGROUND_MATRIX_RESOURCE_LOAD_VIEWS', true), ], /* - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | Middleware - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | | */ @@ -54,9 +54,9 @@ ], /* - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | Policies - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | | */ @@ -81,9 +81,9 @@ ], /* - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | Routes - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | | */ @@ -109,9 +109,9 @@ ], /* - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | Sitemap - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | | */ @@ -124,9 +124,9 @@ ], /* - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | Templates - |--------------------------------------------------------------------------- + |-------------------------------------------------------------------------- | | */ @@ -194,56 +194,8 @@ 'playground-matrix-resource:team:viewAny', 'playground-matrix-resource:ticket:view', 'playground-matrix-resource:ticket:viewAny', - 'playground-matrix-resource:ticket:create', - 'playground-matrix-resource:ticket:edit', - 'playground-matrix-resource:ticket:store', - 'playground-matrix-resource:ticket:update', 'playground-matrix-resource:version:view', 'playground-matrix-resource:version:viewAny', ], - // 'guest' => [ - // 'deny', - // ], - // 'guest' => [ - // 'app:view', - - // 'playground:view', - - // 'playground-auth:logout', - // 'playground-auth:reset-password', - - // 'playground-matrix-resource:backlog:view', - // 'playground-matrix-resource:backlog:viewAny', - // 'playground-matrix-resource:board:view', - // 'playground-matrix-resource:board:viewAny', - // 'playground-matrix-resource:epic:view', - // 'playground-matrix-resource:epic:viewAny', - // 'playground-matrix-resource:flow:view', - // 'playground-matrix-resource:flow:viewAny', - // 'playground-matrix-resource:matrix:view', - // 'playground-matrix-resource:matrix:viewAny', - // 'playground-matrix-resource:milestone:view', - // 'playground-matrix-resource:milestone:viewAny', - // 'playground-matrix-resource:note:view', - // 'playground-matrix-resource:note:viewAny', - // 'playground-matrix-resource:project:view', - // 'playground-matrix-resource:project:viewAny', - // 'playground-matrix-resource:release:view', - // 'playground-matrix-resource:release:viewAny', - // 'playground-matrix-resource:roadmap:view', - // 'playground-matrix-resource:roadmap:viewAny', - // 'playground-matrix-resource:source:view', - // 'playground-matrix-resource:source:viewAny', - // 'playground-matrix-resource:sprint:view', - // 'playground-matrix-resource:sprint:viewAny', - // 'playground-matrix-resource:tag:view', - // 'playground-matrix-resource:tag:viewAny', - // 'playground-matrix-resource:team:view', - // 'playground-matrix-resource:team:viewAny', - // 'playground-matrix-resource:ticket:view', - // 'playground-matrix-resource:ticket:viewAny', - // 'playground-matrix-resource:version:view', - // 'playground-matrix-resource:version:viewAny', - // ], ], ]; diff --git a/docs/api.yml b/docs/api.yml index d74a290..cc160f2 100644 --- a/docs/api.yml +++ b/docs/api.yml @@ -1,37 +1,40 @@ openapi: 3.0.3 +info: + title: 'Playground Matrix Resource' + description: 'Playground: Provides an API and a Blade UI for interacting with Playground Matrix, a Project Management System for Laravel applications.' + version: 73.0.0 +externalDocs: + url: 'https://gammamatrix-playground.readthedocs.io/en/develop/components/matrix.html' + description: 'Read the Docs: Playground Matrix Packages' servers: - url: 'https://api.example.com' - description: 'Production server' + description: 'Production Server' - url: 'https://api.staging.example.com' - description: 'Staging server' + description: 'Staging Server' - url: 'https://api.dev.example.com' - description: 'Dev server' -info: - title: Stub - description: '' - termsOfService: '' - contact: - email: support@example.com - version: 1.0.0 -externalDocs: - description: '' - url: '' + description: 'Dev Server' + - + url: 'http://localhost' + description: 'Local Server' tags: + - + name: Backlog + description: 'Manage backlogs in storage.' - name: Board description: 'Manage boards in storage.' - name: Epic description: 'Manage epics in storage.' - - - name: Backlog - description: 'Manage backlogs in storage.' - name: Flow description: 'Manage flows in storage.' + - + name: Matrix + description: 'Manage matrices in storage.' - name: Milestone description: 'Manage milestones in storage.' @@ -66,136 +69,242 @@ tags: name: Version description: 'Manage versions in storage.' paths: - '/api/boards/{id}': + '/resource/matrix/backlogs/{id}': + $ref: paths/backlogs/id.yml + /resource/matrix/backlogs: + $ref: paths/backlogs/index.yml + /resource/matrix/backlogs/index: + $ref: paths/backlogs/index-form.yml + '/resource/matrix/backlogs/lock/{id}': + $ref: paths/backlogs/lock.yml + '/resource/matrix/backlogs/restore/{id}': + $ref: paths/backlogs/restore.yml + /resource/matrix/backlogs/create: + $ref: paths/backlogs/create.yml + '/resource/matrix/backlogs/edit/{id}': + $ref: paths/backlogs/edit.yml + '/resource/matrix/boards/{id}': $ref: paths/boards/id.yml - /api/boards: + /resource/matrix/boards: $ref: paths/boards/index.yml - '/api/boards/lock/{id}': + /resource/matrix/boards/index: + $ref: paths/boards/index-form.yml + '/resource/matrix/boards/lock/{id}': $ref: paths/boards/lock.yml - '/api/boards/restore/{id}': + '/resource/matrix/boards/restore/{id}': $ref: paths/boards/restore.yml - '/api/epics/{id}': + /resource/matrix/boards/create: + $ref: paths/boards/create.yml + '/resource/matrix/boards/edit/{id}': + $ref: paths/boards/edit.yml + '/resource/matrix/epics/{id}': $ref: paths/epics/id.yml - /api/epics: + /resource/matrix/epics: $ref: paths/epics/index.yml - '/api/epics/lock/{id}': + /resource/matrix/epics/index: + $ref: paths/epics/index-form.yml + '/resource/matrix/epics/lock/{id}': $ref: paths/epics/lock.yml - '/api/epics/restore/{id}': + '/resource/matrix/epics/restore/{id}': $ref: paths/epics/restore.yml - '/api/backlogs/{id}': - $ref: paths/backlogs/id.yml - /api/backlogs: - $ref: paths/backlogs/index.yml - '/api/backlogs/lock/{id}': - $ref: paths/backlogs/lock.yml - '/api/backlogs/restore/{id}': - $ref: paths/backlogs/restore.yml - '/api/flows/{id}': + /resource/matrix/epics/create: + $ref: paths/epics/create.yml + '/resource/matrix/epics/edit/{id}': + $ref: paths/epics/edit.yml + '/resource/matrix/flows/{id}': $ref: paths/flows/id.yml - /api/flows: + /resource/matrix/flows: $ref: paths/flows/index.yml - '/api/flows/lock/{id}': + /resource/matrix/flows/index: + $ref: paths/flows/index-form.yml + '/resource/matrix/flows/lock/{id}': $ref: paths/flows/lock.yml - '/api/flows/restore/{id}': + '/resource/matrix/flows/restore/{id}': $ref: paths/flows/restore.yml - '/api/milestones/{id}': + /resource/matrix/flows/create: + $ref: paths/flows/create.yml + '/resource/matrix/flows/edit/{id}': + $ref: paths/flows/edit.yml + '/resource/matrix/matrices/{id}': + $ref: paths/matrices/id.yml + /resource/matrix/matrices: + $ref: paths/matrices/index.yml + /resource/matrix/matrices/index: + $ref: paths/matrices/index-form.yml + '/resource/matrix/matrices/lock/{id}': + $ref: paths/matrices/lock.yml + '/resource/matrix/matrices/restore/{id}': + $ref: paths/matrices/restore.yml + /resource/matrix/matrices/create: + $ref: paths/matrices/create.yml + '/resource/matrix/matrices/edit/{id}': + $ref: paths/matrices/edit.yml + '/resource/matrix/milestones/{id}': $ref: paths/milestones/id.yml - /api/milestones: + /resource/matrix/milestones: $ref: paths/milestones/index.yml - '/api/milestones/lock/{id}': + /resource/matrix/milestones/index: + $ref: paths/milestones/index-form.yml + '/resource/matrix/milestones/lock/{id}': $ref: paths/milestones/lock.yml - '/api/milestones/restore/{id}': + '/resource/matrix/milestones/restore/{id}': $ref: paths/milestones/restore.yml - '/api/notes/{id}': + /resource/matrix/milestones/create: + $ref: paths/milestones/create.yml + '/resource/matrix/milestones/edit/{id}': + $ref: paths/milestones/edit.yml + '/resource/matrix/notes/{id}': $ref: paths/notes/id.yml - /api/notes: + /resource/matrix/notes: $ref: paths/notes/index.yml - '/api/notes/lock/{id}': + /resource/matrix/notes/index: + $ref: paths/notes/index-form.yml + '/resource/matrix/notes/lock/{id}': $ref: paths/notes/lock.yml - '/api/notes/restore/{id}': + '/resource/matrix/notes/restore/{id}': $ref: paths/notes/restore.yml - '/api/projects/{id}': + /resource/matrix/notes/create: + $ref: paths/notes/create.yml + '/resource/matrix/notes/edit/{id}': + $ref: paths/notes/edit.yml + '/resource/matrix/projects/{id}': $ref: paths/projects/id.yml - /api/projects: + /resource/matrix/projects: $ref: paths/projects/index.yml - '/api/projects/lock/{id}': + /resource/matrix/projects/index: + $ref: paths/projects/index-form.yml + '/resource/matrix/projects/lock/{id}': $ref: paths/projects/lock.yml - '/api/projects/restore/{id}': + '/resource/matrix/projects/restore/{id}': $ref: paths/projects/restore.yml - '/api/releases/{id}': + /resource/matrix/projects/create: + $ref: paths/projects/create.yml + '/resource/matrix/projects/edit/{id}': + $ref: paths/projects/edit.yml + '/resource/matrix/releases/{id}': $ref: paths/releases/id.yml - /api/releases: + /resource/matrix/releases: $ref: paths/releases/index.yml - '/api/releases/lock/{id}': + /resource/matrix/releases/index: + $ref: paths/releases/index-form.yml + '/resource/matrix/releases/lock/{id}': $ref: paths/releases/lock.yml - '/api/releases/restore/{id}': + '/resource/matrix/releases/restore/{id}': $ref: paths/releases/restore.yml - '/api/roadmaps/{id}': + /resource/matrix/releases/create: + $ref: paths/releases/create.yml + '/resource/matrix/releases/edit/{id}': + $ref: paths/releases/edit.yml + '/resource/matrix/roadmaps/{id}': $ref: paths/roadmaps/id.yml - /api/roadmaps: + /resource/matrix/roadmaps: $ref: paths/roadmaps/index.yml - '/api/roadmaps/lock/{id}': + /resource/matrix/roadmaps/index: + $ref: paths/roadmaps/index-form.yml + '/resource/matrix/roadmaps/lock/{id}': $ref: paths/roadmaps/lock.yml - '/api/roadmaps/restore/{id}': + '/resource/matrix/roadmaps/restore/{id}': $ref: paths/roadmaps/restore.yml - '/api/sources/{id}': + /resource/matrix/roadmaps/create: + $ref: paths/roadmaps/create.yml + '/resource/matrix/roadmaps/edit/{id}': + $ref: paths/roadmaps/edit.yml + '/resource/matrix/sources/{id}': $ref: paths/sources/id.yml - /api/sources: + /resource/matrix/sources: $ref: paths/sources/index.yml - '/api/sources/lock/{id}': + /resource/matrix/sources/index: + $ref: paths/sources/index-form.yml + '/resource/matrix/sources/lock/{id}': $ref: paths/sources/lock.yml - '/api/sources/restore/{id}': + '/resource/matrix/sources/restore/{id}': $ref: paths/sources/restore.yml - '/api/sprints/{id}': + /resource/matrix/sources/create: + $ref: paths/sources/create.yml + '/resource/matrix/sources/edit/{id}': + $ref: paths/sources/edit.yml + '/resource/matrix/sprints/{id}': $ref: paths/sprints/id.yml - /api/sprints: + /resource/matrix/sprints: $ref: paths/sprints/index.yml - '/api/sprints/lock/{id}': + /resource/matrix/sprints/index: + $ref: paths/sprints/index-form.yml + '/resource/matrix/sprints/lock/{id}': $ref: paths/sprints/lock.yml - '/api/sprints/restore/{id}': + '/resource/matrix/sprints/restore/{id}': $ref: paths/sprints/restore.yml - '/api/tags/{id}': + /resource/matrix/sprints/create: + $ref: paths/sprints/create.yml + '/resource/matrix/sprints/edit/{id}': + $ref: paths/sprints/edit.yml + '/resource/matrix/tags/{id}': $ref: paths/tags/id.yml - /api/tags: + /resource/matrix/tags: $ref: paths/tags/index.yml - '/api/tags/lock/{id}': + /resource/matrix/tags/index: + $ref: paths/tags/index-form.yml + '/resource/matrix/tags/lock/{id}': $ref: paths/tags/lock.yml - '/api/tags/restore/{id}': + '/resource/matrix/tags/restore/{id}': $ref: paths/tags/restore.yml - '/api/teams/{id}': + /resource/matrix/tags/create: + $ref: paths/tags/create.yml + '/resource/matrix/tags/edit/{id}': + $ref: paths/tags/edit.yml + '/resource/matrix/teams/{id}': $ref: paths/teams/id.yml - /api/teams: + /resource/matrix/teams: $ref: paths/teams/index.yml - '/api/teams/lock/{id}': + /resource/matrix/teams/index: + $ref: paths/teams/index-form.yml + '/resource/matrix/teams/lock/{id}': $ref: paths/teams/lock.yml - '/api/teams/restore/{id}': + '/resource/matrix/teams/restore/{id}': $ref: paths/teams/restore.yml - '/api/tickets/{id}': + /resource/matrix/teams/create: + $ref: paths/teams/create.yml + '/resource/matrix/teams/edit/{id}': + $ref: paths/teams/edit.yml + '/resource/matrix/tickets/{id}': $ref: paths/tickets/id.yml - /api/tickets: + /resource/matrix/tickets: $ref: paths/tickets/index.yml - '/api/tickets/lock/{id}': + /resource/matrix/tickets/index: + $ref: paths/tickets/index-form.yml + '/resource/matrix/tickets/lock/{id}': $ref: paths/tickets/lock.yml - '/api/tickets/restore/{id}': + '/resource/matrix/tickets/restore/{id}': $ref: paths/tickets/restore.yml - '/api/versions/{id}': + /resource/matrix/tickets/create: + $ref: paths/tickets/create.yml + '/resource/matrix/tickets/edit/{id}': + $ref: paths/tickets/edit.yml + '/resource/matrix/versions/{id}': $ref: paths/versions/id.yml - /api/versions: + /resource/matrix/versions: $ref: paths/versions/index.yml - '/api/versions/lock/{id}': + /resource/matrix/versions/index: + $ref: paths/versions/index-form.yml + '/resource/matrix/versions/lock/{id}': $ref: paths/versions/lock.yml - '/api/versions/restore/{id}': + '/resource/matrix/versions/restore/{id}': $ref: paths/versions/restore.yml + /resource/matrix/versions/create: + $ref: paths/versions/create.yml + '/resource/matrix/versions/edit/{id}': + $ref: paths/versions/edit.yml components: schemas: + Backlog: + $ref: models/backlog.yml Board: $ref: models/board.yml Epic: $ref: models/epic.yml - Backlog: - $ref: models/backlog.yml Flow: $ref: models/flow.yml + Matrix: + $ref: models/matrix.yml Milestone: $ref: models/milestone.yml Note: diff --git a/docs/models/backlog.yml b/docs/models/backlog.yml index 223b316..7ba1c59 100644 --- a/docs/models/backlog.yml +++ b/docs/models/backlog.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Backlog model.' +description: 'The Matrix backlog model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + backlog_type: + description: 'The backlog type of this backlog.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this backlog.' type: string @@ -22,14 +26,10 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this backlog.' + description: 'ID: a parent of this backlog.' type: string format: uuid nullable: true - backlog_type: - description: 'The backlog type of this backlog.' - type: string - nullable: true board_id: description: 'Foreign key: links a board to this backlog.' type: string @@ -45,6 +45,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this backlog.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this backlog.' type: string @@ -115,26 +120,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this backlog.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this backlog.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this backlog.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this backlog.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this backlog.' type: string @@ -150,8 +135,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this backlog.' + planned_end_at: + description: 'The planned end at date for this backlog.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this backlog.' type: string format: date-time nullable: true @@ -165,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this backlog.' + resolved_at: + description: 'The resolved at date for this backlog.' type: string format: date-time nullable: true @@ -175,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this backlog.' + suspended_at: + description: 'The suspended at date for this backlog.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this backlog.' + timer_end_at: + description: 'The timer end at date for this backlog.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this backlog.' type: string format: date-time nullable: true @@ -253,11 +248,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -274,6 +269,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -286,8 +284,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -295,6 +293,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the backlog.' + type: string + maxLength: 255 label: description: 'The label of the backlog.' type: string @@ -348,6 +350,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/models/board.yml b/docs/models/board.yml index 9c1b408..23e5c3a 100644 --- a/docs/models/board.yml +++ b/docs/models/board.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Board model.' +description: 'The Matrix board model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + board_type: + description: 'The board type of this board.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this board.' type: string @@ -22,13 +26,14 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this board.' + description: 'ID: a parent of this board.' type: string format: uuid nullable: true - board_type: - description: 'The board type of this board.' + backlog_id: + description: 'Foreign key: links a backlog to this board.' type: string + format: uuid nullable: true epic_id: description: 'Foreign key: links an epic to this board.' @@ -40,6 +45,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this board.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this board.' type: string @@ -110,26 +120,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this board.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this board.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this board.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this board.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this board.' type: string @@ -145,8 +135,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this board.' + planned_end_at: + description: 'The planned end at date for this board.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this board.' type: string format: date-time nullable: true @@ -160,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this board.' + resolved_at: + description: 'The resolved at date for this board.' type: string format: date-time nullable: true @@ -170,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this board.' + suspended_at: + description: 'The suspended at date for this board.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this board.' + timer_end_at: + description: 'The timer end at date for this board.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this board.' type: string format: date-time nullable: true @@ -248,11 +248,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -269,6 +269,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -281,8 +284,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -290,6 +293,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the board.' + type: string + maxLength: 255 label: description: 'The label of the board.' type: string @@ -343,6 +350,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/models/epic.yml b/docs/models/epic.yml index 5e7d039..009095d 100644 --- a/docs/models/epic.yml +++ b/docs/models/epic.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Epic model.' +description: 'The Matrix epic model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + epic_type: + description: 'The epic type of this epic.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this epic.' type: string @@ -22,13 +26,14 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this epic.' + description: 'ID: a parent of this epic.' type: string format: uuid nullable: true - epic_type: - description: 'The epic type of this epic.' + backlog_id: + description: 'Foreign key: links a backlog to this epic.' type: string + format: uuid nullable: true board_id: description: 'Foreign key: links a board to this epic.' @@ -40,6 +45,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this epic.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this epic.' type: string @@ -110,26 +120,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this epic.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this epic.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this epic.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this epic.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this epic.' type: string @@ -145,8 +135,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this epic.' + planned_end_at: + description: 'The planned end at date for this epic.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this epic.' type: string format: date-time nullable: true @@ -160,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this epic.' + resolved_at: + description: 'The resolved at date for this epic.' type: string format: date-time nullable: true @@ -170,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this epic.' + suspended_at: + description: 'The suspended at date for this epic.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this epic.' + timer_end_at: + description: 'The timer end at date for this epic.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this epic.' type: string format: date-time nullable: true @@ -248,11 +248,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -269,6 +269,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -281,8 +284,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -290,6 +293,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the epic.' + type: string + maxLength: 255 label: description: 'The label of the epic.' type: string @@ -343,6 +350,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/models/flow.yml b/docs/models/flow.yml index c921422..31c0e66 100644 --- a/docs/models/flow.yml +++ b/docs/models/flow.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Flow model.' +description: 'The Matrix flow model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + flow_type: + description: 'The flow type of this flow.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this flow.' type: string @@ -22,13 +26,14 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this flow.' + description: 'ID: a parent of this flow.' type: string format: uuid nullable: true - flow_type: - description: 'The flow type of this flow.' + matrix_id: + description: 'Foreign key: links a matrix to this flow.' type: string + format: uuid nullable: true note_id: description: 'Foreign key: links a note to this flow.' @@ -60,18 +65,18 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this flow.' + canceled_at: + description: 'The canceled at date for this flow.' type: string format: date-time nullable: true - planned_start_at: - description: 'The planned start at date for this flow.' + closed_at: + description: 'The closed at date for this flow.' type: string format: date-time nullable: true - end_at: - description: 'The end at date for this flow.' + embargo_at: + description: 'The embargo at date for this flow.' type: string format: date-time nullable: true @@ -80,18 +85,8 @@ properties: type: string format: date-time nullable: true - canceled_at: - description: 'The canceled at date for this flow.' - type: string - format: date-time - nullable: true - closed_at: - description: 'The closed at date for this flow.' - type: string - format: date-time - nullable: true - embargo_at: - description: 'The embargo at date for this flow.' + planned_start_at: + description: 'The planned start at date for this flow.' type: string format: date-time nullable: true @@ -105,8 +100,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this flow.' + resolved_at: + description: 'The resolved at date for this flow.' type: string format: date-time nullable: true @@ -120,6 +115,16 @@ properties: type: string format: date-time nullable: true + timer_end_at: + description: 'The timer end at date for this flow.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this flow.' + type: string + format: date-time + nullable: true gids: description: 'Permissions: gids' type: integer @@ -188,11 +193,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -209,6 +214,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -221,8 +229,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -230,6 +238,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the flow.' + type: string + maxLength: 255 label: description: 'The label of the flow.' type: string @@ -271,10 +283,6 @@ properties: description: 'JSON: assets' type: object nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -289,3 +297,7 @@ properties: description: 'JSON: options' type: object nullable: true + sources: + description: 'JSON: sources' + type: object + nullable: true diff --git a/docs/models/matrix.yml b/docs/models/matrix.yml new file mode 100644 index 0000000..ce792ca --- /dev/null +++ b/docs/models/matrix.yml @@ -0,0 +1,283 @@ +description: 'The Matrix matrix model.' +type: object +properties: + id: + description: 'The primary key.' + type: string + format: uuid + readOnly: true + matrix_type: + description: 'The matrix type of this matrix.' + type: string + nullable: true + created_by_id: + description: 'Foreign key: links a created by user to this matrix.' + type: string + format: uuid + nullable: true + modified_by_id: + description: 'Foreign key: links a modified by user to this matrix.' + type: string + format: uuid + nullable: true + owned_by_id: + description: 'Foreign key: links an owned by user to this matrix.' + type: string + format: uuid + nullable: true + parent_id: + description: 'ID: a parent of this matrix.' + type: string + format: uuid + nullable: true + created_at: + description: 'Denotes the date and time, the matrix was created.' + type: string + format: date-time + readOnly: true + updated_at: + description: 'Denotes the date and time, the matrix was last modified.' + type: string + format: date-time + readOnly: true + deleted_at: + description: 'Denotes the date and time, the matrix was put in the trash.' + type: string + format: date-time + nullable: true + canceled_at: + description: 'The canceled at date for this matrix.' + type: string + format: date-time + nullable: true + closed_at: + description: 'The closed at date for this matrix.' + type: string + format: date-time + nullable: true + embargo_at: + description: 'The embargo at date for this matrix.' + type: string + format: date-time + nullable: true + planned_end_at: + description: 'The planned end at date for this matrix.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this matrix.' + type: string + format: date-time + nullable: true + postponed_at: + description: 'The postponed at date for this matrix.' + type: string + format: date-time + nullable: true + published_at: + description: 'The published at date for this matrix.' + type: string + format: date-time + nullable: true + resolved_at: + description: 'The resolved at date for this matrix.' + type: string + format: date-time + nullable: true + resumed_at: + description: 'The resumed at date for this matrix.' + type: string + format: date-time + nullable: true + suspended_at: + description: 'The suspended at date for this matrix.' + type: string + format: date-time + nullable: true + timer_end_at: + description: 'The timer end at date for this matrix.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this matrix.' + type: string + format: date-time + nullable: true + gids: + description: 'Permissions: gids' + type: integer + format: int64 + po: + description: 'Permissions: po' + type: integer + format: int32 + pg: + description: 'Permissions: pg' + type: integer + format: int32 + pw: + description: 'Permissions: pw' + type: integer + format: int32 + only_admin: + description: 'Permissions: only admin' + type: boolean + only_user: + description: 'Permissions: only user' + type: boolean + only_guest: + description: 'Permissions: only guest' + type: boolean + allow_public: + description: 'Permissions: allow public' + type: boolean + status: + description: 'The status of the matrix.' + type: integer + format: int64 + rank: + description: 'Status: rank' + type: integer + format: int64 + size: + description: 'Status: size' + type: integer + format: int64 + icon: + description: 'Ui: icon' + type: string + maxLength: 128 + image: + description: 'Ui: image' + type: string + maxLength: 512 + avatar: + description: 'Ui: avatar' + type: string + maxLength: 512 + ui: + description: 'The ui of the matrix.' + type: object + nullable: true + active: + description: 'Flags: active' + type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean + flagged: + description: 'Flags: flagged' + type: boolean + internal: + description: 'Flags: internal' + type: boolean + locked: + description: 'Flags: locked' + type: boolean + pending: + description: 'Flags: pending' + type: boolean + planned: + description: 'Flags: planned' + type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean + problem: + description: 'Flags: problem' + type: boolean + published: + description: 'Flags: published' + type: boolean + released: + description: 'Flags: released' + type: boolean + retired: + description: 'Flags: retired' + type: boolean + special: + description: 'Flags: special' + type: boolean + suspended: + description: 'Flags: suspended' + type: boolean + unknown: + description: 'Flags: unknown' + type: boolean + locale: + description: 'The locale of the matrix.' + type: string + maxLength: 255 + label: + description: 'The label of the matrix.' + type: string + maxLength: 128 + title: + description: 'The title of the matrix.' + type: string + maxLength: 255 + byline: + description: 'The byline of the matrix.' + type: string + maxLength: 255 + slug: + description: 'The slug of the matrix.' + type: string + maxLength: 128 + nullable: true + url: + description: 'The url of the matrix.' + type: string + maxLength: 512 + description: + description: 'The description of the matrix.' + type: string + maxLength: 512 + introduction: + description: 'The introduction of the matrix.' + type: string + maxLength: 512 + content: + description: 'The content of the matrix. Allows HTML.' + type: string + nullable: true + summary: + description: 'The summary of the matrix. Allows HTML.' + type: string + nullable: true + assets: + description: 'JSON: assets' + type: object + nullable: true + meta: + description: 'JSON: meta' + type: object + nullable: true + notes: + description: 'JSON: notes' + type: array + items: + type: object + nullable: true + options: + description: 'JSON: options' + type: object + nullable: true + sources: + description: 'JSON: sources' + type: object + nullable: true diff --git a/docs/models/milestone.yml b/docs/models/milestone.yml index b5809db..4d16fd3 100644 --- a/docs/models/milestone.yml +++ b/docs/models/milestone.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Milestone model.' +description: 'The Matrix milestone model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + milestone_type: + description: 'The milestone type of this milestone.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this milestone.' type: string @@ -22,14 +26,10 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this milestone.' + description: 'ID: a parent of this milestone.' type: string format: uuid nullable: true - milestone_type: - description: 'The milestone type of this milestone.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this milestone.' type: string @@ -50,6 +50,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this milestone.' + type: string + format: uuid + nullable: true note_id: description: 'Foreign key: links a note to this milestone.' type: string @@ -115,26 +120,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this milestone.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this milestone.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this milestone.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this milestone.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this milestone.' type: string @@ -150,8 +135,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this milestone.' + planned_end_at: + description: 'The planned end at date for this milestone.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this milestone.' type: string format: date-time nullable: true @@ -165,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this milestone.' + resolved_at: + description: 'The resolved at date for this milestone.' type: string format: date-time nullable: true @@ -175,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this milestone.' + suspended_at: + description: 'The suspended at date for this milestone.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this milestone.' + timer_end_at: + description: 'The timer end at date for this milestone.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this milestone.' type: string format: date-time nullable: true @@ -253,11 +248,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -274,6 +269,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -286,8 +284,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -295,6 +293,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the milestone.' + type: string + maxLength: 255 label: description: 'The label of the milestone.' type: string @@ -348,6 +350,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/models/note.yml b/docs/models/note.yml index d4cc755..7f60f32 100644 --- a/docs/models/note.yml +++ b/docs/models/note.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Note model.' +description: 'The Matrix note model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + note_type: + description: 'The note type of this note.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this note.' type: string @@ -22,13 +26,19 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this note.' + description: 'ID: a parent of this note.' type: string format: uuid nullable: true - note_type: - description: 'The note type of this note.' + matrix_id: + description: 'Foreign key: links a matrix to this note.' + type: string + format: uuid + nullable: true + tag_id: + description: 'Foreign key: links a tag to this note.' type: string + format: uuid nullable: true created_at: description: 'Denotes the date and time, the note was created.' @@ -45,76 +55,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this note.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this note.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this note.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this note.' - type: string - format: date-time - nullable: true - canceled_at: - description: 'The canceled at date for this note.' - type: string - format: date-time - nullable: true - closed_at: - description: 'The closed at date for this note.' - type: string - format: date-time - nullable: true - embargo_at: - description: 'The embargo at date for this note.' - type: string - format: date-time - nullable: true - fixed_at: - description: 'The fixed at date for this note.' - type: string - format: date-time - nullable: true - postponed_at: - description: 'The postponed at date for this note.' - type: string - format: date-time - nullable: true - published_at: - description: 'The published at date for this note.' - type: string - format: date-time - nullable: true - released_at: - description: 'The released at date for this note.' - type: string - format: date-time - nullable: true - resumed_at: - description: 'The resumed at date for this note.' - type: string - format: date-time - nullable: true - resolved_at: - description: 'The resolved at date for this note.' - type: string - format: date-time - nullable: true - suspended_at: - description: 'The suspended at date for this note.' - type: string - format: date-time - nullable: true gids: description: 'Permissions: gids' type: integer @@ -183,11 +123,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -204,6 +144,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -216,8 +159,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -225,6 +168,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the note.' + type: string + maxLength: 255 label: description: 'The label of the note.' type: string @@ -266,18 +213,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -292,10 +227,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/models/project.yml b/docs/models/project.yml index 9791f5e..c9e3522 100644 --- a/docs/models/project.yml +++ b/docs/models/project.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Project model.' +description: 'The Matrix project model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + project_type: + description: 'The project type of this project.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this project.' type: string @@ -22,14 +26,10 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this project.' + description: 'ID: a parent of this project.' type: string format: uuid nullable: true - project_type: - description: 'The project type of this project.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this project.' type: string @@ -50,6 +50,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this project.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this project.' type: string @@ -115,26 +120,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this project.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this project.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this project.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this project.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this project.' type: string @@ -150,8 +135,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this project.' + planned_end_at: + description: 'The planned end at date for this project.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this project.' type: string format: date-time nullable: true @@ -165,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this project.' + resolved_at: + description: 'The resolved at date for this project.' type: string format: date-time nullable: true @@ -175,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this project.' + suspended_at: + description: 'The suspended at date for this project.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this project.' + timer_end_at: + description: 'The timer end at date for this project.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this project.' type: string format: date-time nullable: true @@ -253,9 +248,15 @@ properties: completed: description: 'Flags: completed' type: boolean + cron: + description: 'Flags: cron' + type: boolean duplicate: description: 'Flags: duplicate' type: boolean + featured: + description: 'Flags: featured' + type: boolean fixed: description: 'Flags: fixed' type: boolean @@ -274,6 +275,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -283,11 +287,14 @@ properties: released: description: 'Flags: released' type: boolean + resolved: + description: 'Flags: resolved' + type: boolean retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -295,6 +302,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the project.' + type: string + maxLength: 255 label: description: 'The label of the project.' type: string @@ -332,6 +343,16 @@ properties: description: 'The summary of the project. Allows HTML.' type: string nullable: true + key: + description: 'The key of the project.' + type: string + maxLength: 32 + nullable: true + code_name: + description: 'The code name of the project.' + type: string + maxLength: 128 + nullable: true assets: description: 'JSON: assets' type: object @@ -348,6 +369,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/models/release.yml b/docs/models/release.yml index 0148142..80d90c3 100644 --- a/docs/models/release.yml +++ b/docs/models/release.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Release model.' +description: 'The Matrix release model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + release_type: + description: 'The release type of this release.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this release.' type: string @@ -22,14 +26,10 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this release.' + description: 'ID: a parent of this release.' type: string format: uuid nullable: true - release_type: - description: 'The release type of this release.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this release.' type: string @@ -50,6 +50,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this release.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this release.' type: string @@ -115,26 +120,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this release.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this release.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this release.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this release.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this release.' type: string @@ -150,8 +135,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this release.' + planned_end_at: + description: 'The planned end at date for this release.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this release.' type: string format: date-time nullable: true @@ -165,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this release.' + resolved_at: + description: 'The resolved at date for this release.' type: string format: date-time nullable: true @@ -175,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this release.' + suspended_at: + description: 'The suspended at date for this release.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this release.' + timer_end_at: + description: 'The timer end at date for this release.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this release.' type: string format: date-time nullable: true @@ -253,11 +248,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -274,6 +269,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -286,8 +284,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -295,6 +293,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the release.' + type: string + maxLength: 255 label: description: 'The label of the release.' type: string @@ -348,6 +350,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/models/roadmap.yml b/docs/models/roadmap.yml index 1930e54..092c299 100644 --- a/docs/models/roadmap.yml +++ b/docs/models/roadmap.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Roadmap model.' +description: 'The Matrix roadmap model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + roadmap_type: + description: 'The roadmap type of this roadmap.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this roadmap.' type: string @@ -22,14 +26,10 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this roadmap.' + description: 'ID: a parent of this roadmap.' type: string format: uuid nullable: true - roadmap_type: - description: 'The roadmap type of this roadmap.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this roadmap.' type: string @@ -50,6 +50,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this roadmap.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this roadmap.' type: string @@ -115,26 +120,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this roadmap.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this roadmap.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this roadmap.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this roadmap.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this roadmap.' type: string @@ -150,8 +135,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this roadmap.' + planned_end_at: + description: 'The planned end at date for this roadmap.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this roadmap.' type: string format: date-time nullable: true @@ -165,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this roadmap.' + resolved_at: + description: 'The resolved at date for this roadmap.' type: string format: date-time nullable: true @@ -175,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this roadmap.' + suspended_at: + description: 'The suspended at date for this roadmap.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this roadmap.' + timer_end_at: + description: 'The timer end at date for this roadmap.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this roadmap.' type: string format: date-time nullable: true @@ -253,11 +248,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -274,6 +269,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -286,8 +284,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -295,6 +293,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the roadmap.' + type: string + maxLength: 255 label: description: 'The label of the roadmap.' type: string @@ -348,6 +350,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/models/source.yml b/docs/models/source.yml index 28f8c55..1f8cac2 100644 --- a/docs/models/source.yml +++ b/docs/models/source.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Source model.' +description: 'The Matrix source model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + source_type: + description: 'The source type of this source.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this source.' type: string @@ -22,36 +26,12 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this source.' - type: string - format: uuid - nullable: true - source_type: - description: 'The source type of this source.' - type: string - nullable: true - backlog_id: - description: 'Foreign key: links a backlog to this source.' + description: 'ID: a parent of this source.' type: string format: uuid nullable: true - board_id: - description: 'Foreign key: links a board to this source.' - type: string - format: uuid - nullable: true - epic_id: - description: 'Foreign key: links an epic to this source.' - type: string - format: uuid - nullable: true - flow_id: - description: 'Foreign key: links a flow to this source.' - type: string - format: uuid - nullable: true - milestone_id: - description: 'Foreign key: links a milestone to this source.' + matrix_id: + description: 'Foreign key: links a matrix to this source.' type: string format: uuid nullable: true @@ -60,26 +40,6 @@ properties: type: string format: uuid nullable: true - project_id: - description: 'Foreign key: links a project to this source.' - type: string - format: uuid - nullable: true - release_id: - description: 'Foreign key: links a release to this source.' - type: string - format: uuid - nullable: true - roadmap_id: - description: 'Foreign key: links a roadmap to this source.' - type: string - format: uuid - nullable: true - sprint_id: - description: 'Foreign key: links a sprint to this source.' - type: string - format: uuid - nullable: true tag_id: description: 'Foreign key: links a tag to this source.' type: string @@ -90,16 +50,6 @@ properties: type: string format: uuid nullable: true - ticket_id: - description: 'Foreign key: links a ticket to this source.' - type: string - format: uuid - nullable: true - version_id: - description: 'Foreign key: links a version to this source.' - type: string - format: uuid - nullable: true created_at: description: 'Denotes the date and time, the source was created.' type: string @@ -115,26 +65,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this source.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this source.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this source.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this source.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this source.' type: string @@ -150,8 +80,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this source.' + planned_end_at: + description: 'The planned end at date for this source.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this source.' type: string format: date-time nullable: true @@ -165,8 +100,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this source.' + resolved_at: + description: 'The resolved at date for this source.' type: string format: date-time nullable: true @@ -175,13 +110,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this source.' + suspended_at: + description: 'The suspended at date for this source.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this source.' + timer_end_at: + description: 'The timer end at date for this source.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this source.' type: string format: date-time nullable: true @@ -253,11 +193,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -274,6 +214,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -286,8 +229,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -295,6 +238,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the source.' + type: string + maxLength: 255 label: description: 'The label of the source.' type: string @@ -336,18 +283,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -362,10 +297,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/models/sprint.yml b/docs/models/sprint.yml index 6f7bc47..db4f391 100644 --- a/docs/models/sprint.yml +++ b/docs/models/sprint.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Sprint model.' +description: 'The Matrix sprint model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + sprint_type: + description: 'The sprint type of this sprint.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this sprint.' type: string @@ -22,14 +26,10 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this sprint.' + description: 'ID: a parent of this sprint.' type: string format: uuid nullable: true - sprint_type: - description: 'The sprint type of this sprint.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this sprint.' type: string @@ -50,6 +50,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this sprint.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this sprint.' type: string @@ -115,26 +120,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this sprint.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this sprint.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this sprint.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this sprint.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this sprint.' type: string @@ -150,8 +135,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this sprint.' + planned_end_at: + description: 'The planned end at date for this sprint.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this sprint.' type: string format: date-time nullable: true @@ -165,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this sprint.' + resolved_at: + description: 'The resolved at date for this sprint.' type: string format: date-time nullable: true @@ -175,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this sprint.' + suspended_at: + description: 'The suspended at date for this sprint.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this sprint.' + timer_end_at: + description: 'The timer end at date for this sprint.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this sprint.' type: string format: date-time nullable: true @@ -253,11 +248,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -274,6 +269,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -286,8 +284,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -295,6 +293,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the sprint.' + type: string + maxLength: 255 label: description: 'The label of the sprint.' type: string @@ -348,6 +350,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/models/tag.yml b/docs/models/tag.yml index f6697ea..dfb1938 100644 --- a/docs/models/tag.yml +++ b/docs/models/tag.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Tag model.' +description: 'The Matrix tag model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + tag_type: + description: 'The tag type of this tag.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this tag.' type: string @@ -22,81 +26,12 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this tag.' - type: string - format: uuid - nullable: true - tag_type: - description: 'The tag type of this tag.' - type: string - nullable: true - backlog_id: - description: 'Foreign key: links a backlog to this tag.' - type: string - format: uuid - nullable: true - board_id: - description: 'Foreign key: links a board to this tag.' - type: string - format: uuid - nullable: true - epic_id: - description: 'Foreign key: links an epic to this tag.' - type: string - format: uuid - nullable: true - flow_id: - description: 'Foreign key: links a flow to this tag.' - type: string - format: uuid - nullable: true - milestone_id: - description: 'Foreign key: links a milestone to this tag.' - type: string - format: uuid - nullable: true - note_id: - description: 'Foreign key: links a note to this tag.' - type: string - format: uuid - nullable: true - project_id: - description: 'Foreign key: links a project to this tag.' - type: string - format: uuid - nullable: true - release_id: - description: 'Foreign key: links a release to this tag.' - type: string - format: uuid - nullable: true - roadmap_id: - description: 'Foreign key: links a roadmap to this tag.' - type: string - format: uuid - nullable: true - source_id: - description: 'Foreign key: links a source to this tag.' - type: string - format: uuid - nullable: true - sprint_id: - description: 'Foreign key: links a sprint to this tag.' + description: 'ID: a parent of this tag.' type: string format: uuid nullable: true - team_id: - description: 'Foreign key: links a team to this tag.' - type: string - format: uuid - nullable: true - ticket_id: - description: 'Foreign key: links a ticket to this tag.' - type: string - format: uuid - nullable: true - version_id: - description: 'Foreign key: links a version to this tag.' + matrix_id: + description: 'Foreign key: links a matrix to this tag.' type: string format: uuid nullable: true @@ -115,76 +50,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this tag.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this tag.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this tag.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this tag.' - type: string - format: date-time - nullable: true - canceled_at: - description: 'The canceled at date for this tag.' - type: string - format: date-time - nullable: true - closed_at: - description: 'The closed at date for this tag.' - type: string - format: date-time - nullable: true - embargo_at: - description: 'The embargo at date for this tag.' - type: string - format: date-time - nullable: true - fixed_at: - description: 'The fixed at date for this tag.' - type: string - format: date-time - nullable: true - postponed_at: - description: 'The postponed at date for this tag.' - type: string - format: date-time - nullable: true - published_at: - description: 'The published at date for this tag.' - type: string - format: date-time - nullable: true - released_at: - description: 'The released at date for this tag.' - type: string - format: date-time - nullable: true - resumed_at: - description: 'The resumed at date for this tag.' - type: string - format: date-time - nullable: true - resolved_at: - description: 'The resolved at date for this tag.' - type: string - format: date-time - nullable: true - suspended_at: - description: 'The suspended at date for this tag.' - type: string - format: date-time - nullable: true gids: description: 'Permissions: gids' type: integer @@ -244,20 +109,11 @@ properties: active: description: 'Flags: active' type: boolean - canceled: - description: 'Flags: canceled' - type: boolean - closed: - description: 'Flags: closed' - type: boolean - completed: - description: 'Flags: completed' - type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -268,33 +124,19 @@ properties: locked: description: 'Flags: locked' type: boolean - pending: - description: 'Flags: pending' - type: boolean - planned: - description: 'Flags: planned' - type: boolean - problem: - description: 'Flags: problem' - type: boolean - published: - description: 'Flags: published' - type: boolean - released: - description: 'Flags: released' - type: boolean retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' - type: boolean - suspended: - description: 'Flags: suspended' + special: + description: 'Flags: special' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the tag.' + type: string + maxLength: 255 label: description: 'The label of the tag.' type: string @@ -336,18 +178,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -362,10 +192,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/models/team.yml b/docs/models/team.yml index 0789e72..4d9d795 100644 --- a/docs/models/team.yml +++ b/docs/models/team.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Team model.' +description: 'The Matrix team model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + team_type: + description: 'The team type of this team.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this team.' type: string @@ -22,14 +26,10 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this team.' + description: 'ID: a parent of this team.' type: string format: uuid nullable: true - team_type: - description: 'The team type of this team.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this team.' type: string @@ -50,6 +50,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this team.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this team.' type: string @@ -115,26 +120,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this team.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this team.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this team.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this team.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this team.' type: string @@ -150,8 +135,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this team.' + planned_end_at: + description: 'The planned end at date for this team.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this team.' type: string format: date-time nullable: true @@ -165,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this team.' + resolved_at: + description: 'The resolved at date for this team.' type: string format: date-time nullable: true @@ -175,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this team.' + suspended_at: + description: 'The suspended at date for this team.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this team.' + timer_end_at: + description: 'The timer end at date for this team.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this team.' type: string format: date-time nullable: true @@ -253,11 +248,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -274,6 +269,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -286,8 +284,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -295,6 +293,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the team.' + type: string + maxLength: 255 label: description: 'The label of the team.' type: string @@ -348,6 +350,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/models/ticket.yml b/docs/models/ticket.yml index b94c289..01a2ec7 100644 --- a/docs/models/ticket.yml +++ b/docs/models/ticket.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Ticket model.' +description: 'The Matrix ticket model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + ticket_type: + description: 'The ticket type of this ticket.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this ticket.' type: string @@ -22,16 +26,7 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this ticket.' - type: string - format: uuid - nullable: true - ticket_type: - description: 'The ticket type of this ticket.' - type: string - nullable: true - duplicate_id: - description: 'Foreign key: links a duplicate to this ticket.' + description: 'ID: a parent of this ticket.' type: string format: uuid nullable: true @@ -45,11 +40,6 @@ properties: type: string format: uuid nullable: true - completed_by_id: - description: 'Foreign key: links a completed by user to this ticket.' - type: string - format: uuid - nullable: true epic_id: description: 'Foreign key: links an epic to this ticket.' type: string @@ -60,6 +50,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this ticket.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this ticket.' type: string @@ -80,11 +75,6 @@ properties: type: string format: uuid nullable: true - reported_by_id: - description: 'Foreign key: links a reported by user to this ticket.' - type: string - format: uuid - nullable: true roadmap_id: description: 'Foreign key: links a roadmap to this ticket.' type: string @@ -115,6 +105,26 @@ properties: type: string format: uuid nullable: true + completed_by_id: + description: 'Foreign key: links a completed by user to this ticket.' + type: string + format: uuid + nullable: true + duplicate_id: + description: 'Foreign key: links a duplicate to this ticket.' + type: string + format: uuid + nullable: true + fixed_by_id: + description: 'Foreign key: links a fixed by user to this ticket.' + type: string + format: uuid + nullable: true + reported_by_id: + description: 'Foreign key: links a reported by user to this ticket.' + type: string + format: uuid + nullable: true version_fixed_id: description: 'Foreign key: links a version fixed to this ticket.' type: string @@ -135,26 +145,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this ticket.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this ticket.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this ticket.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this ticket.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this ticket.' type: string @@ -175,6 +165,16 @@ properties: type: string format: date-time nullable: true + planned_end_at: + description: 'The planned end at date for this ticket.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this ticket.' + type: string + format: date-time + nullable: true postponed_at: description: 'The postponed at date for this ticket.' type: string @@ -185,8 +185,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this ticket.' + resolved_at: + description: 'The resolved at date for this ticket.' type: string format: date-time nullable: true @@ -195,13 +195,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this ticket.' + suspended_at: + description: 'The suspended at date for this ticket.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this ticket.' + timer_end_at: + description: 'The timer end at date for this ticket.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this ticket.' type: string format: date-time nullable: true @@ -273,9 +278,15 @@ properties: completed: description: 'Flags: completed' type: boolean + cron: + description: 'Flags: cron' + type: boolean duplicate: description: 'Flags: duplicate' type: boolean + featured: + description: 'Flags: featured' + type: boolean fixed: description: 'Flags: fixed' type: boolean @@ -294,6 +305,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -303,11 +317,14 @@ properties: released: description: 'Flags: released' type: boolean + resolved: + description: 'Flags: resolved' + type: boolean retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -315,6 +332,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the ticket.' + type: string + maxLength: 255 label: description: 'The label of the ticket.' type: string @@ -352,56 +373,70 @@ properties: description: 'The summary of the ticket. Allows HTML.' type: string nullable: true - key: - description: 'The key of the ticket.' - type: string - maxLength: 64 handler: description: 'The handler of the ticket.' type: string + nullable: true + key: + description: 'The key of the ticket.' + type: string maxLength: 32 + nullable: true code: description: 'The code of the ticket.' type: integer format: int64 + nullable: true key_code_hash: description: 'The key code hash of the ticket.' type: string - maxLength: 32 + nullable: true priority: description: 'The priority of the ticket.' type: string - maxLength: 32 + nullable: true severity: description: 'The severity of the ticket.' type: string - maxLength: 32 + nullable: true resolution: description: 'The resolution of the ticket.' type: string - maxLength: 32 + nullable: true step: description: 'The step of the ticket.' type: string - maxLength: 32 + nullable: true state: description: 'The state of the ticket.' type: string - maxLength: 32 + nullable: true workflow_type: description: 'The workflow type of the ticket.' type: string - maxLength: 128 + nullable: true points: description: 'The points of the ticket.' type: integer - format: int32 + format: int64 + actual: + description: 'The actual of the ticket.' + type: string + nullable: true + expected: + description: 'The expected of the ticket.' + type: string + nullable: true story: - description: 'The story of the ticket. Allows HTML.' + description: 'The story of the ticket.' + type: string + nullable: true + steps: + description: 'The steps of the ticket.' type: string nullable: true criteria: - description: 'The criteria of the ticket. Allows HTML.' + description: 'The criteria of the ticket.' type: string nullable: true reproducibility: diff --git a/docs/models/version.yml b/docs/models/version.yml index 5b0ea3c..4f5790c 100644 --- a/docs/models/version.yml +++ b/docs/models/version.yml @@ -1,4 +1,4 @@ -description: 'The Matrix Version model.' +description: 'The Matrix version model.' type: object properties: id: @@ -6,6 +6,10 @@ properties: type: string format: uuid readOnly: true + version_type: + description: 'The version type of this version.' + type: string + nullable: true created_by_id: description: 'Foreign key: links a created by user to this version.' type: string @@ -22,41 +26,12 @@ properties: format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this version.' - type: string - format: uuid - nullable: true - version_type: - description: 'The version type of this version.' - type: string - nullable: true - backlog_id: - description: 'Foreign key: links a backlog to this version.' + description: 'ID: a parent of this version.' type: string format: uuid nullable: true - board_id: - description: 'Foreign key: links a board to this version.' - type: string - format: uuid - nullable: true - epic_id: - description: 'Foreign key: links an epic to this version.' - type: string - format: uuid - nullable: true - flow_id: - description: 'Foreign key: links a flow to this version.' - type: string - format: uuid - nullable: true - milestone_id: - description: 'Foreign key: links a milestone to this version.' - type: string - format: uuid - nullable: true - note_id: - description: 'Foreign key: links a note to this version.' + matrix_id: + description: 'Foreign key: links a matrix to this version.' type: string format: uuid nullable: true @@ -65,26 +40,6 @@ properties: type: string format: uuid nullable: true - release_id: - description: 'Foreign key: links a release to this version.' - type: string - format: uuid - nullable: true - roadmap_id: - description: 'Foreign key: links a roadmap to this version.' - type: string - format: uuid - nullable: true - source_id: - description: 'Foreign key: links a source to this version.' - type: string - format: uuid - nullable: true - sprint_id: - description: 'Foreign key: links a sprint to this version.' - type: string - format: uuid - nullable: true tag_id: description: 'Foreign key: links a tag to this version.' type: string @@ -115,26 +70,6 @@ properties: type: string format: date-time nullable: true - start_at: - description: 'The start at date for this version.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this version.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this version.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this version.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this version.' type: string @@ -150,8 +85,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this version.' + planned_end_at: + description: 'The planned end at date for this version.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this version.' type: string format: date-time nullable: true @@ -165,8 +105,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this version.' + resolved_at: + description: 'The resolved at date for this version.' type: string format: date-time nullable: true @@ -175,13 +115,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this version.' + suspended_at: + description: 'The suspended at date for this version.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this version.' + timer_end_at: + description: 'The timer end at date for this version.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this version.' type: string format: date-time nullable: true @@ -253,8 +198,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' type: boolean fixed: description: 'Flags: fixed' @@ -274,6 +222,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -283,11 +234,14 @@ properties: released: description: 'Flags: released' type: boolean + resolved: + description: 'Flags: resolved' + type: boolean retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -295,6 +249,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the version.' + type: string + maxLength: 255 label: description: 'The label of the version.' type: string @@ -336,18 +294,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -362,10 +308,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/paths/backlogs/create.yml b/docs/paths/backlogs/create.yml new file mode 100644 index 0000000..72e61b0 --- /dev/null +++ b/docs/paths/backlogs/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Backlog + summary: 'Create a backlog form.' + operationId: create_backlog + responses: + 200: + description: 'The create backlog information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/backlog.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a backlog
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/backlogs/edit.yml b/docs/paths/backlogs/edit.yml new file mode 100644 index 0000000..bb66c26 --- /dev/null +++ b/docs/paths/backlogs/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The backlog id.' + schema: + type: string + format: uuid +get: + tags: + - Backlog + summary: 'Edit a backlog form.' + operationId: edit_backlog + responses: + 200: + description: 'The edit backlog information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/backlog.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a backlog
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/backlogs/id.yml b/docs/paths/backlogs/id.yml index be10541..edeef81 100644 --- a/docs/paths/backlogs/id.yml +++ b/docs/paths/backlogs/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Backlog - summary: 'Update a backlog by id.' + summary: 'Patch a backlog by id.' operationId: patch_backlog requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/backlog/patch.yml responses: 200: - description: 'The updated backlog.' + description: 'The backlog has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The backlog is locked. Unlock to patch.' diff --git a/docs/paths/backlogs/index-form.yml b/docs/paths/backlogs/index-form.yml new file mode 100644 index 0000000..0e045e3 --- /dev/null +++ b/docs/paths/backlogs/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Backlog + summary: 'Get backlogs from the index using POST.' + operationId: post_backlogs_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/backlog/form.yml + responses: + 200: + description: 'Get the backlogs from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/backlog.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/backlogs/index.yml b/docs/paths/backlogs/index.yml index 79e6a2a..606d9cf 100644 --- a/docs/paths/backlogs/index.yml +++ b/docs/paths/backlogs/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/backlog/post.yml responses: 200: - description: 'The created backlogs.' + description: 'The created backlog.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The backlog is locked. Unlock to patch.' diff --git a/docs/paths/backlogs/lock.yml b/docs/paths/backlogs/lock.yml index 7ae3356..473ee0d 100644 --- a/docs/paths/backlogs/lock.yml +++ b/docs/paths/backlogs/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Backlog - summary: 'Unlock a backlog by id.' - operationId: lock_backlog + summary: 'Delete a backlog by id.' + operationId: unlock_backlog responses: 204: description: 'The backlog has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Backlog - summary: 'Lock a backlog by id.' - operationId: unlock_backlog + summary: 'Lock a backlog by ID.' + operationId: lock_backlog responses: 200: description: 'The unlocked backlog.' diff --git a/docs/paths/backlogs/restore.yml b/docs/paths/backlogs/restore.yml index 0b81dfd..498e65c 100644 --- a/docs/paths/backlogs/restore.yml +++ b/docs/paths/backlogs/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Backlog - summary: 'Restore a backlog by id.' + summary: 'Restore a backlog from the trash by ID.' operationId: restore_backlog responses: 200: diff --git a/docs/paths/boards/create.yml b/docs/paths/boards/create.yml new file mode 100644 index 0000000..eaff3a4 --- /dev/null +++ b/docs/paths/boards/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Board + summary: 'Create a board form.' + operationId: create_board + responses: + 200: + description: 'The create board information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/board.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a board
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/boards/edit.yml b/docs/paths/boards/edit.yml new file mode 100644 index 0000000..3636509 --- /dev/null +++ b/docs/paths/boards/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The board id.' + schema: + type: string + format: uuid +get: + tags: + - Board + summary: 'Edit a board form.' + operationId: edit_board + responses: + 200: + description: 'The edit board information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/board.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a board
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/boards/id.yml b/docs/paths/boards/id.yml index 1c12f28..03f5b79 100644 --- a/docs/paths/boards/id.yml +++ b/docs/paths/boards/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Board - summary: 'Update a board by id.' + summary: 'Patch a board by id.' operationId: patch_board requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/board/patch.yml responses: 200: - description: 'The updated board.' + description: 'The board has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The board is locked. Unlock to patch.' diff --git a/docs/paths/boards/index-form.yml b/docs/paths/boards/index-form.yml new file mode 100644 index 0000000..70c24c6 --- /dev/null +++ b/docs/paths/boards/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Board + summary: 'Get boards from the index using POST.' + operationId: post_boards_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/board/form.yml + responses: + 200: + description: 'Get the boards from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/board.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/boards/index.yml b/docs/paths/boards/index.yml index c816cdc..00362ff 100644 --- a/docs/paths/boards/index.yml +++ b/docs/paths/boards/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/board/post.yml responses: 200: - description: 'The created boards.' + description: 'The created board.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The board is locked. Unlock to patch.' diff --git a/docs/paths/boards/lock.yml b/docs/paths/boards/lock.yml index aa4c3ce..720a9c8 100644 --- a/docs/paths/boards/lock.yml +++ b/docs/paths/boards/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Board - summary: 'Unlock a board by id.' - operationId: lock_board + summary: 'Delete a board by id.' + operationId: unlock_board responses: 204: description: 'The board has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Board - summary: 'Lock a board by id.' - operationId: unlock_board + summary: 'Lock a board by ID.' + operationId: lock_board responses: 200: description: 'The unlocked board.' diff --git a/docs/paths/boards/restore.yml b/docs/paths/boards/restore.yml index 4ced731..e67aad4 100644 --- a/docs/paths/boards/restore.yml +++ b/docs/paths/boards/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Board - summary: 'Restore a board by id.' + summary: 'Restore a board from the trash by ID.' operationId: restore_board responses: 200: diff --git a/docs/paths/epics/create.yml b/docs/paths/epics/create.yml new file mode 100644 index 0000000..7c298c9 --- /dev/null +++ b/docs/paths/epics/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Epic + summary: 'Create a epic form.' + operationId: create_epic + responses: + 200: + description: 'The create epic information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/epic.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a epic
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/epics/edit.yml b/docs/paths/epics/edit.yml new file mode 100644 index 0000000..f0e365c --- /dev/null +++ b/docs/paths/epics/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The epic id.' + schema: + type: string + format: uuid +get: + tags: + - Epic + summary: 'Edit a epic form.' + operationId: edit_epic + responses: + 200: + description: 'The edit epic information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/epic.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a epic
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/epics/id.yml b/docs/paths/epics/id.yml index d7208fd..89f0bd6 100644 --- a/docs/paths/epics/id.yml +++ b/docs/paths/epics/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Epic - summary: 'Update a epic by id.' + summary: 'Patch a epic by id.' operationId: patch_epic requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/epic/patch.yml responses: 200: - description: 'The updated epic.' + description: 'The epic has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The epic is locked. Unlock to patch.' diff --git a/docs/paths/epics/index-form.yml b/docs/paths/epics/index-form.yml new file mode 100644 index 0000000..f88e616 --- /dev/null +++ b/docs/paths/epics/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Epic + summary: 'Get epics from the index using POST.' + operationId: post_epics_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/epic/form.yml + responses: + 200: + description: 'Get the epics from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/epic.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/epics/index.yml b/docs/paths/epics/index.yml index 9a8cdb2..6642582 100644 --- a/docs/paths/epics/index.yml +++ b/docs/paths/epics/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/epic/post.yml responses: 200: - description: 'The created epics.' + description: 'The created epic.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The epic is locked. Unlock to patch.' diff --git a/docs/paths/epics/lock.yml b/docs/paths/epics/lock.yml index f65aaac..b95e058 100644 --- a/docs/paths/epics/lock.yml +++ b/docs/paths/epics/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Epic - summary: 'Unlock a epic by id.' - operationId: lock_epic + summary: 'Delete a epic by id.' + operationId: unlock_epic responses: 204: description: 'The epic has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Epic - summary: 'Lock a epic by id.' - operationId: unlock_epic + summary: 'Lock a epic by ID.' + operationId: lock_epic responses: 200: description: 'The unlocked epic.' diff --git a/docs/paths/epics/restore.yml b/docs/paths/epics/restore.yml index ed21d0e..f389f61 100644 --- a/docs/paths/epics/restore.yml +++ b/docs/paths/epics/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Epic - summary: 'Restore a epic by id.' + summary: 'Restore a epic from the trash by ID.' operationId: restore_epic responses: 200: diff --git a/docs/paths/flows/create.yml b/docs/paths/flows/create.yml new file mode 100644 index 0000000..1a2354f --- /dev/null +++ b/docs/paths/flows/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Flow + summary: 'Create a flow form.' + operationId: create_flow + responses: + 200: + description: 'The create flow information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/flow.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a flow
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/flows/edit.yml b/docs/paths/flows/edit.yml new file mode 100644 index 0000000..5bcf5a2 --- /dev/null +++ b/docs/paths/flows/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The flow id.' + schema: + type: string + format: uuid +get: + tags: + - Flow + summary: 'Edit a flow form.' + operationId: edit_flow + responses: + 200: + description: 'The edit flow information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/flow.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a flow
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/flows/id.yml b/docs/paths/flows/id.yml index a15ed75..7a609b6 100644 --- a/docs/paths/flows/id.yml +++ b/docs/paths/flows/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Flow - summary: 'Update a flow by id.' + summary: 'Patch a flow by id.' operationId: patch_flow requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/flow/patch.yml responses: 200: - description: 'The updated flow.' + description: 'The flow has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The flow is locked. Unlock to patch.' diff --git a/docs/paths/flows/index-form.yml b/docs/paths/flows/index-form.yml new file mode 100644 index 0000000..38bacc4 --- /dev/null +++ b/docs/paths/flows/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Flow + summary: 'Get flows from the index using POST.' + operationId: post_flows_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/flow/form.yml + responses: + 200: + description: 'Get the flows from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/flow.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/flows/index.yml b/docs/paths/flows/index.yml index 80b058c..767c47c 100644 --- a/docs/paths/flows/index.yml +++ b/docs/paths/flows/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/flow/post.yml responses: 200: - description: 'The created flows.' + description: 'The created flow.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The flow is locked. Unlock to patch.' diff --git a/docs/paths/flows/lock.yml b/docs/paths/flows/lock.yml index 0559919..2bb4a31 100644 --- a/docs/paths/flows/lock.yml +++ b/docs/paths/flows/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Flow - summary: 'Unlock a flow by id.' - operationId: lock_flow + summary: 'Delete a flow by id.' + operationId: unlock_flow responses: 204: description: 'The flow has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Flow - summary: 'Lock a flow by id.' - operationId: unlock_flow + summary: 'Lock a flow by ID.' + operationId: lock_flow responses: 200: description: 'The unlocked flow.' diff --git a/docs/paths/flows/restore.yml b/docs/paths/flows/restore.yml index a53aa98..5c776cf 100644 --- a/docs/paths/flows/restore.yml +++ b/docs/paths/flows/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Flow - summary: 'Restore a flow by id.' + summary: 'Restore a flow from the trash by ID.' operationId: restore_flow responses: 200: diff --git a/docs/paths/matrices/create.yml b/docs/paths/matrices/create.yml new file mode 100644 index 0000000..caef20d --- /dev/null +++ b/docs/paths/matrices/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Matrix + summary: 'Create a matrix form.' + operationId: create_matrix + responses: + 200: + description: 'The create matrix information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/matrix.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a matrix
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/matrices/edit.yml b/docs/paths/matrices/edit.yml new file mode 100644 index 0000000..5c92a95 --- /dev/null +++ b/docs/paths/matrices/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The matrix id.' + schema: + type: string + format: uuid +get: + tags: + - Matrix + summary: 'Edit a matrix form.' + operationId: edit_matrix + responses: + 200: + description: 'The edit matrix information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/matrix.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a matrix
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/matrices/id.yml b/docs/paths/matrices/id.yml new file mode 100644 index 0000000..2147b42 --- /dev/null +++ b/docs/paths/matrices/id.yml @@ -0,0 +1,87 @@ +parameters: + - + in: path + name: id + required: true + description: 'The matrix id.' + schema: + type: string + format: uuid +get: + tags: + - Matrix + summary: 'Get a matrix by id.' + operationId: get_matrix + responses: + 200: + description: 'The matrix data.' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/matrix.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden +delete: + tags: + - Matrix + summary: 'Delete a matrix by id.' + operationId: delete_matrix + responses: + 204: + description: 'The matrix has been deleted.' + 401: + description: Unauthorized + 403: + description: Forbidden + 423: + description: 'The matrix is locked. Unlock to delete.' +patch: + tags: + - Matrix + summary: 'Patch a matrix by id.' + operationId: patch_matrix + requestBody: + content: + application/json: + schema: + $ref: ../../requests/matrix/patch.yml + responses: + 200: + description: 'The matrix has been patched.' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/matrix.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden + 422: + description: 'Validation error' + content: + application/json: + schema: + type: object + properties: + errors: + type: object + properties: + title: + type: array + items: + type: string + example: 'The title field is required.' + 423: + description: 'The matrix is locked. Unlock to patch.' diff --git a/docs/paths/matrices/index-form.yml b/docs/paths/matrices/index-form.yml new file mode 100644 index 0000000..3ce56c9 --- /dev/null +++ b/docs/paths/matrices/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Matrix + summary: 'Get matrices from the index using POST.' + operationId: post_matrices_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/matrix/form.yml + responses: + 200: + description: 'Get the matrices from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/matrix.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/matrices/index.yml b/docs/paths/matrices/index.yml new file mode 100644 index 0000000..76f6008 --- /dev/null +++ b/docs/paths/matrices/index.yml @@ -0,0 +1,66 @@ +get: + tags: + - Matrix + summary: 'Get matrices from the index.' + operationId: get_matrices_index + responses: + 200: + description: 'Get the matrices from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/matrix.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden +post: + tags: + - Matrix + summary: 'Create a matrix.' + operationId: post_matrix + requestBody: + content: + application/json: + schema: + $ref: ../../requests/matrix/post.yml + responses: + 200: + description: 'The created matrix.' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/matrix.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden + 422: + description: 'Validation error' + content: + application/json: + schema: + type: object + properties: + errors: + type: object + properties: + title: + type: array + items: + type: string + example: 'The title field is required.' + 423: + description: 'The matrix is locked. Unlock to patch.' diff --git a/docs/paths/matrices/lock.yml b/docs/paths/matrices/lock.yml new file mode 100644 index 0000000..e09403a --- /dev/null +++ b/docs/paths/matrices/lock.yml @@ -0,0 +1,42 @@ +parameters: + - + in: path + name: id + required: true + description: 'The matrix id.' + schema: + type: string + format: uuid +delete: + tags: + - Matrix + summary: 'Delete a matrix by id.' + operationId: unlock_matrix + responses: + 204: + description: 'The matrix has been unlocked.' + 401: + description: Unauthorized + 403: + description: Forbidden +put: + tags: + - Matrix + summary: 'Lock a matrix by ID.' + operationId: lock_matrix + responses: + 200: + description: 'The unlocked matrix.' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/matrix.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/matrices/restore.yml b/docs/paths/matrices/restore.yml new file mode 100644 index 0000000..24f744c --- /dev/null +++ b/docs/paths/matrices/restore.yml @@ -0,0 +1,30 @@ +parameters: + - + in: path + name: id + required: true + description: 'The matrix id.' + schema: + type: string + format: uuid +put: + tags: + - Matrix + summary: 'Restore a matrix from the trash by ID.' + operationId: restore_matrix + responses: + 200: + description: 'The restored matrix.' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/matrix.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/milestones/create.yml b/docs/paths/milestones/create.yml new file mode 100644 index 0000000..5762bcc --- /dev/null +++ b/docs/paths/milestones/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Milestone + summary: 'Create a milestone form.' + operationId: create_milestone + responses: + 200: + description: 'The create milestone information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/milestone.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a milestone
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/milestones/edit.yml b/docs/paths/milestones/edit.yml new file mode 100644 index 0000000..383d081 --- /dev/null +++ b/docs/paths/milestones/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The milestone id.' + schema: + type: string + format: uuid +get: + tags: + - Milestone + summary: 'Edit a milestone form.' + operationId: edit_milestone + responses: + 200: + description: 'The edit milestone information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/milestone.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a milestone
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/milestones/id.yml b/docs/paths/milestones/id.yml index 19009fc..1cb4454 100644 --- a/docs/paths/milestones/id.yml +++ b/docs/paths/milestones/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Milestone - summary: 'Update a milestone by id.' + summary: 'Patch a milestone by id.' operationId: patch_milestone requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/milestone/patch.yml responses: 200: - description: 'The updated milestone.' + description: 'The milestone has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The milestone is locked. Unlock to patch.' diff --git a/docs/paths/milestones/index-form.yml b/docs/paths/milestones/index-form.yml new file mode 100644 index 0000000..4c8c90c --- /dev/null +++ b/docs/paths/milestones/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Milestone + summary: 'Get milestones from the index using POST.' + operationId: post_milestones_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/milestone/form.yml + responses: + 200: + description: 'Get the milestones from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/milestone.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/milestones/index.yml b/docs/paths/milestones/index.yml index 2461ed6..1b8c799 100644 --- a/docs/paths/milestones/index.yml +++ b/docs/paths/milestones/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/milestone/post.yml responses: 200: - description: 'The created milestones.' + description: 'The created milestone.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The milestone is locked. Unlock to patch.' diff --git a/docs/paths/milestones/lock.yml b/docs/paths/milestones/lock.yml index 48f8435..b1e9b6f 100644 --- a/docs/paths/milestones/lock.yml +++ b/docs/paths/milestones/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Milestone - summary: 'Unlock a milestone by id.' - operationId: lock_milestone + summary: 'Delete a milestone by id.' + operationId: unlock_milestone responses: 204: description: 'The milestone has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Milestone - summary: 'Lock a milestone by id.' - operationId: unlock_milestone + summary: 'Lock a milestone by ID.' + operationId: lock_milestone responses: 200: description: 'The unlocked milestone.' diff --git a/docs/paths/milestones/restore.yml b/docs/paths/milestones/restore.yml index 0451fdb..da700b1 100644 --- a/docs/paths/milestones/restore.yml +++ b/docs/paths/milestones/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Milestone - summary: 'Restore a milestone by id.' + summary: 'Restore a milestone from the trash by ID.' operationId: restore_milestone responses: 200: diff --git a/docs/paths/notes/create.yml b/docs/paths/notes/create.yml new file mode 100644 index 0000000..cba15f9 --- /dev/null +++ b/docs/paths/notes/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Note + summary: 'Create a note form.' + operationId: create_note + responses: + 200: + description: 'The create note information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/note.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a note
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/notes/edit.yml b/docs/paths/notes/edit.yml new file mode 100644 index 0000000..a4171b3 --- /dev/null +++ b/docs/paths/notes/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The note id.' + schema: + type: string + format: uuid +get: + tags: + - Note + summary: 'Edit a note form.' + operationId: edit_note + responses: + 200: + description: 'The edit note information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/note.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a note
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/notes/id.yml b/docs/paths/notes/id.yml index d9d6144..b67fb1a 100644 --- a/docs/paths/notes/id.yml +++ b/docs/paths/notes/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Note - summary: 'Update a note by id.' + summary: 'Patch a note by id.' operationId: patch_note requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/note/patch.yml responses: 200: - description: 'The updated note.' + description: 'The note has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The note is locked. Unlock to patch.' diff --git a/docs/paths/notes/index-form.yml b/docs/paths/notes/index-form.yml new file mode 100644 index 0000000..b4a898b --- /dev/null +++ b/docs/paths/notes/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Note + summary: 'Get notes from the index using POST.' + operationId: post_notes_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/note/form.yml + responses: + 200: + description: 'Get the notes from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/note.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/notes/index.yml b/docs/paths/notes/index.yml index e3f4ec3..0b93b81 100644 --- a/docs/paths/notes/index.yml +++ b/docs/paths/notes/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/note/post.yml responses: 200: - description: 'The created notes.' + description: 'The created note.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The note is locked. Unlock to patch.' diff --git a/docs/paths/notes/lock.yml b/docs/paths/notes/lock.yml index b505611..cd7633d 100644 --- a/docs/paths/notes/lock.yml +++ b/docs/paths/notes/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Note - summary: 'Unlock a note by id.' - operationId: lock_note + summary: 'Delete a note by id.' + operationId: unlock_note responses: 204: description: 'The note has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Note - summary: 'Lock a note by id.' - operationId: unlock_note + summary: 'Lock a note by ID.' + operationId: lock_note responses: 200: description: 'The unlocked note.' diff --git a/docs/paths/notes/restore.yml b/docs/paths/notes/restore.yml index b5bafc9..e9285b4 100644 --- a/docs/paths/notes/restore.yml +++ b/docs/paths/notes/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Note - summary: 'Restore a note by id.' + summary: 'Restore a note from the trash by ID.' operationId: restore_note responses: 200: diff --git a/docs/paths/projects/create.yml b/docs/paths/projects/create.yml new file mode 100644 index 0000000..09eae8f --- /dev/null +++ b/docs/paths/projects/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Project + summary: 'Create a project form.' + operationId: create_project + responses: + 200: + description: 'The create project information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/project.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a project
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/projects/edit.yml b/docs/paths/projects/edit.yml new file mode 100644 index 0000000..28d3731 --- /dev/null +++ b/docs/paths/projects/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The project id.' + schema: + type: string + format: uuid +get: + tags: + - Project + summary: 'Edit a project form.' + operationId: edit_project + responses: + 200: + description: 'The edit project information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/project.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a project
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/projects/id.yml b/docs/paths/projects/id.yml index e6db651..cf126b4 100644 --- a/docs/paths/projects/id.yml +++ b/docs/paths/projects/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Project - summary: 'Update a project by id.' + summary: 'Patch a project by id.' operationId: patch_project requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/project/patch.yml responses: 200: - description: 'The updated project.' + description: 'The project has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The project is locked. Unlock to patch.' diff --git a/docs/paths/projects/index-form.yml b/docs/paths/projects/index-form.yml new file mode 100644 index 0000000..53a24f5 --- /dev/null +++ b/docs/paths/projects/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Project + summary: 'Get projects from the index using POST.' + operationId: post_projects_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/project/form.yml + responses: + 200: + description: 'Get the projects from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/project.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/projects/index.yml b/docs/paths/projects/index.yml index 98ef8ec..832194d 100644 --- a/docs/paths/projects/index.yml +++ b/docs/paths/projects/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/project/post.yml responses: 200: - description: 'The created projects.' + description: 'The created project.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The project is locked. Unlock to patch.' diff --git a/docs/paths/projects/lock.yml b/docs/paths/projects/lock.yml index 2eeaced..a583976 100644 --- a/docs/paths/projects/lock.yml +++ b/docs/paths/projects/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Project - summary: 'Unlock a project by id.' - operationId: lock_project + summary: 'Delete a project by id.' + operationId: unlock_project responses: 204: description: 'The project has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Project - summary: 'Lock a project by id.' - operationId: unlock_project + summary: 'Lock a project by ID.' + operationId: lock_project responses: 200: description: 'The unlocked project.' diff --git a/docs/paths/projects/restore.yml b/docs/paths/projects/restore.yml index 2e9f3a5..cc11193 100644 --- a/docs/paths/projects/restore.yml +++ b/docs/paths/projects/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Project - summary: 'Restore a project by id.' + summary: 'Restore a project from the trash by ID.' operationId: restore_project responses: 200: diff --git a/docs/paths/releases/create.yml b/docs/paths/releases/create.yml new file mode 100644 index 0000000..73df620 --- /dev/null +++ b/docs/paths/releases/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Release + summary: 'Create a release form.' + operationId: create_release + responses: + 200: + description: 'The create release information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/release.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a release
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/releases/edit.yml b/docs/paths/releases/edit.yml new file mode 100644 index 0000000..b011a5d --- /dev/null +++ b/docs/paths/releases/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The release id.' + schema: + type: string + format: uuid +get: + tags: + - Release + summary: 'Edit a release form.' + operationId: edit_release + responses: + 200: + description: 'The edit release information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/release.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a release
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/releases/id.yml b/docs/paths/releases/id.yml index addc40c..f3a8995 100644 --- a/docs/paths/releases/id.yml +++ b/docs/paths/releases/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Release - summary: 'Update a release by id.' + summary: 'Patch a release by id.' operationId: patch_release requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/release/patch.yml responses: 200: - description: 'The updated release.' + description: 'The release has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The release is locked. Unlock to patch.' diff --git a/docs/paths/releases/index-form.yml b/docs/paths/releases/index-form.yml new file mode 100644 index 0000000..9c3b835 --- /dev/null +++ b/docs/paths/releases/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Release + summary: 'Get releases from the index using POST.' + operationId: post_releases_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/release/form.yml + responses: + 200: + description: 'Get the releases from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/release.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/releases/index.yml b/docs/paths/releases/index.yml index b7028c7..0938130 100644 --- a/docs/paths/releases/index.yml +++ b/docs/paths/releases/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/release/post.yml responses: 200: - description: 'The created releases.' + description: 'The created release.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The release is locked. Unlock to patch.' diff --git a/docs/paths/releases/lock.yml b/docs/paths/releases/lock.yml index 0f8f5ca..ac78d24 100644 --- a/docs/paths/releases/lock.yml +++ b/docs/paths/releases/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Release - summary: 'Unlock a release by id.' - operationId: lock_release + summary: 'Delete a release by id.' + operationId: unlock_release responses: 204: description: 'The release has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Release - summary: 'Lock a release by id.' - operationId: unlock_release + summary: 'Lock a release by ID.' + operationId: lock_release responses: 200: description: 'The unlocked release.' diff --git a/docs/paths/releases/restore.yml b/docs/paths/releases/restore.yml index 46ab146..913d38b 100644 --- a/docs/paths/releases/restore.yml +++ b/docs/paths/releases/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Release - summary: 'Restore a release by id.' + summary: 'Restore a release from the trash by ID.' operationId: restore_release responses: 200: diff --git a/docs/paths/roadmaps/create.yml b/docs/paths/roadmaps/create.yml new file mode 100644 index 0000000..49d17ef --- /dev/null +++ b/docs/paths/roadmaps/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Roadmap + summary: 'Create a roadmap form.' + operationId: create_roadmap + responses: + 200: + description: 'The create roadmap information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/roadmap.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a roadmap
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/roadmaps/edit.yml b/docs/paths/roadmaps/edit.yml new file mode 100644 index 0000000..c6eb27d --- /dev/null +++ b/docs/paths/roadmaps/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The roadmap id.' + schema: + type: string + format: uuid +get: + tags: + - Roadmap + summary: 'Edit a roadmap form.' + operationId: edit_roadmap + responses: + 200: + description: 'The edit roadmap information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/roadmap.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a roadmap
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/roadmaps/id.yml b/docs/paths/roadmaps/id.yml index 8ab8ce3..60b3c1b 100644 --- a/docs/paths/roadmaps/id.yml +++ b/docs/paths/roadmaps/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Roadmap - summary: 'Update a roadmap by id.' + summary: 'Patch a roadmap by id.' operationId: patch_roadmap requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/roadmap/patch.yml responses: 200: - description: 'The updated roadmap.' + description: 'The roadmap has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The roadmap is locked. Unlock to patch.' diff --git a/docs/paths/roadmaps/index-form.yml b/docs/paths/roadmaps/index-form.yml new file mode 100644 index 0000000..4eb8e50 --- /dev/null +++ b/docs/paths/roadmaps/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Roadmap + summary: 'Get roadmaps from the index using POST.' + operationId: post_roadmaps_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/roadmap/form.yml + responses: + 200: + description: 'Get the roadmaps from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/roadmap.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/roadmaps/index.yml b/docs/paths/roadmaps/index.yml index 5a0b360..9233f25 100644 --- a/docs/paths/roadmaps/index.yml +++ b/docs/paths/roadmaps/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/roadmap/post.yml responses: 200: - description: 'The created roadmaps.' + description: 'The created roadmap.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The roadmap is locked. Unlock to patch.' diff --git a/docs/paths/roadmaps/lock.yml b/docs/paths/roadmaps/lock.yml index a278188..c65a781 100644 --- a/docs/paths/roadmaps/lock.yml +++ b/docs/paths/roadmaps/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Roadmap - summary: 'Unlock a roadmap by id.' - operationId: lock_roadmap + summary: 'Delete a roadmap by id.' + operationId: unlock_roadmap responses: 204: description: 'The roadmap has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Roadmap - summary: 'Lock a roadmap by id.' - operationId: unlock_roadmap + summary: 'Lock a roadmap by ID.' + operationId: lock_roadmap responses: 200: description: 'The unlocked roadmap.' diff --git a/docs/paths/roadmaps/restore.yml b/docs/paths/roadmaps/restore.yml index 5f8d86d..3d95db0 100644 --- a/docs/paths/roadmaps/restore.yml +++ b/docs/paths/roadmaps/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Roadmap - summary: 'Restore a roadmap by id.' + summary: 'Restore a roadmap from the trash by ID.' operationId: restore_roadmap responses: 200: diff --git a/docs/paths/sources/create.yml b/docs/paths/sources/create.yml new file mode 100644 index 0000000..c3cb8b6 --- /dev/null +++ b/docs/paths/sources/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Source + summary: 'Create a source form.' + operationId: create_source + responses: + 200: + description: 'The create source information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/source.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a source
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/sources/edit.yml b/docs/paths/sources/edit.yml new file mode 100644 index 0000000..f359256 --- /dev/null +++ b/docs/paths/sources/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The source id.' + schema: + type: string + format: uuid +get: + tags: + - Source + summary: 'Edit a source form.' + operationId: edit_source + responses: + 200: + description: 'The edit source information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/source.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a source
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/sources/id.yml b/docs/paths/sources/id.yml index 8a85009..a94d0e0 100644 --- a/docs/paths/sources/id.yml +++ b/docs/paths/sources/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Source - summary: 'Update a source by id.' + summary: 'Patch a source by id.' operationId: patch_source requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/source/patch.yml responses: 200: - description: 'The updated source.' + description: 'The source has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The source is locked. Unlock to patch.' diff --git a/docs/paths/sources/index-form.yml b/docs/paths/sources/index-form.yml new file mode 100644 index 0000000..8af82e1 --- /dev/null +++ b/docs/paths/sources/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Source + summary: 'Get sources from the index using POST.' + operationId: post_sources_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/source/form.yml + responses: + 200: + description: 'Get the sources from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/source.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/sources/index.yml b/docs/paths/sources/index.yml index 32a93d0..2594790 100644 --- a/docs/paths/sources/index.yml +++ b/docs/paths/sources/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/source/post.yml responses: 200: - description: 'The created sources.' + description: 'The created source.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The source is locked. Unlock to patch.' diff --git a/docs/paths/sources/lock.yml b/docs/paths/sources/lock.yml index 3299d9d..7030c5d 100644 --- a/docs/paths/sources/lock.yml +++ b/docs/paths/sources/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Source - summary: 'Unlock a source by id.' - operationId: lock_source + summary: 'Delete a source by id.' + operationId: unlock_source responses: 204: description: 'The source has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Source - summary: 'Lock a source by id.' - operationId: unlock_source + summary: 'Lock a source by ID.' + operationId: lock_source responses: 200: description: 'The unlocked source.' diff --git a/docs/paths/sources/restore.yml b/docs/paths/sources/restore.yml index 3a9e251..98e5bea 100644 --- a/docs/paths/sources/restore.yml +++ b/docs/paths/sources/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Source - summary: 'Restore a source by id.' + summary: 'Restore a source from the trash by ID.' operationId: restore_source responses: 200: diff --git a/docs/paths/sprints/create.yml b/docs/paths/sprints/create.yml new file mode 100644 index 0000000..886455b --- /dev/null +++ b/docs/paths/sprints/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Sprint + summary: 'Create a sprint form.' + operationId: create_sprint + responses: + 200: + description: 'The create sprint information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/sprint.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a sprint
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/sprints/edit.yml b/docs/paths/sprints/edit.yml new file mode 100644 index 0000000..979c262 --- /dev/null +++ b/docs/paths/sprints/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The sprint id.' + schema: + type: string + format: uuid +get: + tags: + - Sprint + summary: 'Edit a sprint form.' + operationId: edit_sprint + responses: + 200: + description: 'The edit sprint information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/sprint.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a sprint
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/sprints/id.yml b/docs/paths/sprints/id.yml index 60a088b..2334dd7 100644 --- a/docs/paths/sprints/id.yml +++ b/docs/paths/sprints/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Sprint - summary: 'Update a sprint by id.' + summary: 'Patch a sprint by id.' operationId: patch_sprint requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/sprint/patch.yml responses: 200: - description: 'The updated sprint.' + description: 'The sprint has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The sprint is locked. Unlock to patch.' diff --git a/docs/paths/sprints/index-form.yml b/docs/paths/sprints/index-form.yml new file mode 100644 index 0000000..72f7942 --- /dev/null +++ b/docs/paths/sprints/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Sprint + summary: 'Get sprints from the index using POST.' + operationId: post_sprints_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/sprint/form.yml + responses: + 200: + description: 'Get the sprints from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/sprint.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/sprints/index.yml b/docs/paths/sprints/index.yml index 6f923f5..3f62215 100644 --- a/docs/paths/sprints/index.yml +++ b/docs/paths/sprints/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/sprint/post.yml responses: 200: - description: 'The created sprints.' + description: 'The created sprint.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The sprint is locked. Unlock to patch.' diff --git a/docs/paths/sprints/lock.yml b/docs/paths/sprints/lock.yml index 0aba519..c51e25e 100644 --- a/docs/paths/sprints/lock.yml +++ b/docs/paths/sprints/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Sprint - summary: 'Unlock a sprint by id.' - operationId: lock_sprint + summary: 'Delete a sprint by id.' + operationId: unlock_sprint responses: 204: description: 'The sprint has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Sprint - summary: 'Lock a sprint by id.' - operationId: unlock_sprint + summary: 'Lock a sprint by ID.' + operationId: lock_sprint responses: 200: description: 'The unlocked sprint.' diff --git a/docs/paths/sprints/restore.yml b/docs/paths/sprints/restore.yml index 0fe6509..27a1a3a 100644 --- a/docs/paths/sprints/restore.yml +++ b/docs/paths/sprints/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Sprint - summary: 'Restore a sprint by id.' + summary: 'Restore a sprint from the trash by ID.' operationId: restore_sprint responses: 200: diff --git a/docs/paths/tags/create.yml b/docs/paths/tags/create.yml new file mode 100644 index 0000000..a87406f --- /dev/null +++ b/docs/paths/tags/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Tag + summary: 'Create a tag form.' + operationId: create_tag + responses: + 200: + description: 'The create tag information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/tag.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a tag
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/tags/edit.yml b/docs/paths/tags/edit.yml new file mode 100644 index 0000000..16a8571 --- /dev/null +++ b/docs/paths/tags/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The tag id.' + schema: + type: string + format: uuid +get: + tags: + - Tag + summary: 'Edit a tag form.' + operationId: edit_tag + responses: + 200: + description: 'The edit tag information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/tag.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a tag
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/tags/id.yml b/docs/paths/tags/id.yml index 5f6434f..85b3755 100644 --- a/docs/paths/tags/id.yml +++ b/docs/paths/tags/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Tag - summary: 'Update a tag by id.' + summary: 'Patch a tag by id.' operationId: patch_tag requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/tag/patch.yml responses: 200: - description: 'The updated tag.' + description: 'The tag has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The tag is locked. Unlock to patch.' diff --git a/docs/paths/tags/index-form.yml b/docs/paths/tags/index-form.yml new file mode 100644 index 0000000..695e19e --- /dev/null +++ b/docs/paths/tags/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Tag + summary: 'Get tags from the index using POST.' + operationId: post_tags_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/tag/form.yml + responses: + 200: + description: 'Get the tags from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/tag.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/tags/index.yml b/docs/paths/tags/index.yml index df1e5f0..c196e46 100644 --- a/docs/paths/tags/index.yml +++ b/docs/paths/tags/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/tag/post.yml responses: 200: - description: 'The created tags.' + description: 'The created tag.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The tag is locked. Unlock to patch.' diff --git a/docs/paths/tags/lock.yml b/docs/paths/tags/lock.yml index f17e8d9..92dca58 100644 --- a/docs/paths/tags/lock.yml +++ b/docs/paths/tags/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Tag - summary: 'Unlock a tag by id.' - operationId: lock_tag + summary: 'Delete a tag by id.' + operationId: unlock_tag responses: 204: description: 'The tag has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Tag - summary: 'Lock a tag by id.' - operationId: unlock_tag + summary: 'Lock a tag by ID.' + operationId: lock_tag responses: 200: description: 'The unlocked tag.' diff --git a/docs/paths/tags/restore.yml b/docs/paths/tags/restore.yml index 75cc3dd..c5c0eb9 100644 --- a/docs/paths/tags/restore.yml +++ b/docs/paths/tags/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Tag - summary: 'Restore a tag by id.' + summary: 'Restore a tag from the trash by ID.' operationId: restore_tag responses: 200: diff --git a/docs/paths/teams/create.yml b/docs/paths/teams/create.yml new file mode 100644 index 0000000..7a756f9 --- /dev/null +++ b/docs/paths/teams/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Team + summary: 'Create a team form.' + operationId: create_team + responses: + 200: + description: 'The create team information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/team.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a team
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/teams/edit.yml b/docs/paths/teams/edit.yml new file mode 100644 index 0000000..ab66ff8 --- /dev/null +++ b/docs/paths/teams/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The team id.' + schema: + type: string + format: uuid +get: + tags: + - Team + summary: 'Edit a team form.' + operationId: edit_team + responses: + 200: + description: 'The edit team information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/team.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a team
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/teams/id.yml b/docs/paths/teams/id.yml index b7566fb..4e4a125 100644 --- a/docs/paths/teams/id.yml +++ b/docs/paths/teams/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Team - summary: 'Update a team by id.' + summary: 'Patch a team by id.' operationId: patch_team requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/team/patch.yml responses: 200: - description: 'The updated team.' + description: 'The team has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The team is locked. Unlock to patch.' diff --git a/docs/paths/teams/index-form.yml b/docs/paths/teams/index-form.yml new file mode 100644 index 0000000..44b21a4 --- /dev/null +++ b/docs/paths/teams/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Team + summary: 'Get teams from the index using POST.' + operationId: post_teams_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/team/form.yml + responses: + 200: + description: 'Get the teams from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/team.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/teams/index.yml b/docs/paths/teams/index.yml index 8b4a7fb..8b17ddb 100644 --- a/docs/paths/teams/index.yml +++ b/docs/paths/teams/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/team/post.yml responses: 200: - description: 'The created teams.' + description: 'The created team.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The team is locked. Unlock to patch.' diff --git a/docs/paths/teams/lock.yml b/docs/paths/teams/lock.yml index c9124ff..cd65b03 100644 --- a/docs/paths/teams/lock.yml +++ b/docs/paths/teams/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Team - summary: 'Unlock a team by id.' - operationId: lock_team + summary: 'Delete a team by id.' + operationId: unlock_team responses: 204: description: 'The team has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Team - summary: 'Lock a team by id.' - operationId: unlock_team + summary: 'Lock a team by ID.' + operationId: lock_team responses: 200: description: 'The unlocked team.' diff --git a/docs/paths/teams/restore.yml b/docs/paths/teams/restore.yml index 1f2bd62..b64f104 100644 --- a/docs/paths/teams/restore.yml +++ b/docs/paths/teams/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Team - summary: 'Restore a team by id.' + summary: 'Restore a team from the trash by ID.' operationId: restore_team responses: 200: diff --git a/docs/paths/tickets/create.yml b/docs/paths/tickets/create.yml new file mode 100644 index 0000000..5f837b6 --- /dev/null +++ b/docs/paths/tickets/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Ticket + summary: 'Create a ticket form.' + operationId: create_ticket + responses: + 200: + description: 'The create ticket information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/ticket.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a ticket
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/tickets/edit.yml b/docs/paths/tickets/edit.yml new file mode 100644 index 0000000..2b764d1 --- /dev/null +++ b/docs/paths/tickets/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The ticket id.' + schema: + type: string + format: uuid +get: + tags: + - Ticket + summary: 'Edit a ticket form.' + operationId: edit_ticket + responses: + 200: + description: 'The edit ticket information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/ticket.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a ticket
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/tickets/id.yml b/docs/paths/tickets/id.yml index 25b0930..0ef6bc1 100644 --- a/docs/paths/tickets/id.yml +++ b/docs/paths/tickets/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Ticket - summary: 'Update a ticket by id.' + summary: 'Patch a ticket by id.' operationId: patch_ticket requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/ticket/patch.yml responses: 200: - description: 'The updated ticket.' + description: 'The ticket has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The ticket is locked. Unlock to patch.' diff --git a/docs/paths/tickets/index-form.yml b/docs/paths/tickets/index-form.yml new file mode 100644 index 0000000..2260ae1 --- /dev/null +++ b/docs/paths/tickets/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Ticket + summary: 'Get tickets from the index using POST.' + operationId: post_tickets_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/ticket/form.yml + responses: + 200: + description: 'Get the tickets from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/ticket.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/tickets/index.yml b/docs/paths/tickets/index.yml index b843c2f..b0339fd 100644 --- a/docs/paths/tickets/index.yml +++ b/docs/paths/tickets/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/ticket/post.yml responses: 200: - description: 'The created tickets.' + description: 'The created ticket.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The ticket is locked. Unlock to patch.' diff --git a/docs/paths/tickets/lock.yml b/docs/paths/tickets/lock.yml index 02ea902..ea6a358 100644 --- a/docs/paths/tickets/lock.yml +++ b/docs/paths/tickets/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Ticket - summary: 'Unlock a ticket by id.' - operationId: lock_ticket + summary: 'Delete a ticket by id.' + operationId: unlock_ticket responses: 204: description: 'The ticket has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Ticket - summary: 'Lock a ticket by id.' - operationId: unlock_ticket + summary: 'Lock a ticket by ID.' + operationId: lock_ticket responses: 200: description: 'The unlocked ticket.' diff --git a/docs/paths/tickets/restore.yml b/docs/paths/tickets/restore.yml index 693f84b..b31db13 100644 --- a/docs/paths/tickets/restore.yml +++ b/docs/paths/tickets/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Ticket - summary: 'Restore a ticket by id.' + summary: 'Restore a ticket from the trash by ID.' operationId: restore_ticket responses: 200: diff --git a/docs/paths/versions/create.yml b/docs/paths/versions/create.yml new file mode 100644 index 0000000..21093a8 --- /dev/null +++ b/docs/paths/versions/create.yml @@ -0,0 +1,25 @@ +get: + tags: + - Version + summary: 'Create a version form.' + operationId: create_version + responses: + 200: + description: 'The create version information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/version.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Create a version
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/versions/edit.yml b/docs/paths/versions/edit.yml new file mode 100644 index 0000000..c3f4fd0 --- /dev/null +++ b/docs/paths/versions/edit.yml @@ -0,0 +1,34 @@ +parameters: + - + in: path + name: id + required: true + description: 'The version id.' + schema: + type: string + format: uuid +get: + tags: + - Version + summary: 'Edit a version form.' + operationId: edit_version + responses: + 200: + description: 'The edit version information (JSON) or (HTML).' + content: + application/json: + schema: + type: object + properties: + data: + $ref: ../../models/version.yml + meta: + type: object + text/html: + schema: + type: string + example: '
Edit a version
' + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/versions/id.yml b/docs/paths/versions/id.yml index 3f30378..88591e4 100644 --- a/docs/paths/versions/id.yml +++ b/docs/paths/versions/id.yml @@ -45,7 +45,7 @@ delete: patch: tags: - Version - summary: 'Update a version by id.' + summary: 'Patch a version by id.' operationId: patch_version requestBody: content: @@ -54,7 +54,7 @@ patch: $ref: ../../requests/version/patch.yml responses: 200: - description: 'The updated version.' + description: 'The version has been patched.' content: application/json: schema: @@ -78,8 +78,10 @@ patch: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The version is locked. Unlock to patch.' diff --git a/docs/paths/versions/index-form.yml b/docs/paths/versions/index-form.yml new file mode 100644 index 0000000..bf947d5 --- /dev/null +++ b/docs/paths/versions/index-form.yml @@ -0,0 +1,28 @@ +post: + tags: + - Version + summary: 'Get versions from the index using POST.' + operationId: post_versions_index + requestBody: + content: + application/json: + schema: + $ref: ../../requests/version/form.yml + responses: + 200: + description: 'Get the versions from the index.' + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: ../../models/version.yml + meta: + type: object + 401: + description: Unauthorized + 403: + description: Forbidden diff --git a/docs/paths/versions/index.yml b/docs/paths/versions/index.yml index 95dfff9..a6be80f 100644 --- a/docs/paths/versions/index.yml +++ b/docs/paths/versions/index.yml @@ -33,7 +33,7 @@ post: $ref: ../../requests/version/post.yml responses: 200: - description: 'The created versions.' + description: 'The created version.' content: application/json: schema: @@ -57,8 +57,10 @@ post: errors: type: object properties: - label: + title: type: array items: type: string - example: 'The label field is required.' + example: 'The title field is required.' + 423: + description: 'The version is locked. Unlock to patch.' diff --git a/docs/paths/versions/lock.yml b/docs/paths/versions/lock.yml index 9ea981c..93acd58 100644 --- a/docs/paths/versions/lock.yml +++ b/docs/paths/versions/lock.yml @@ -10,8 +10,8 @@ parameters: delete: tags: - Version - summary: 'Unlock a version by id.' - operationId: lock_version + summary: 'Delete a version by id.' + operationId: unlock_version responses: 204: description: 'The version has been unlocked.' @@ -22,8 +22,8 @@ delete: put: tags: - Version - summary: 'Lock a version by id.' - operationId: unlock_version + summary: 'Lock a version by ID.' + operationId: lock_version responses: 200: description: 'The unlocked version.' diff --git a/docs/paths/versions/restore.yml b/docs/paths/versions/restore.yml index f23797c..f5e33d6 100644 --- a/docs/paths/versions/restore.yml +++ b/docs/paths/versions/restore.yml @@ -10,7 +10,7 @@ parameters: put: tags: - Version - summary: 'Restore a version by id.' + summary: 'Restore a version from the trash by ID.' operationId: restore_version responses: 200: diff --git a/docs/requests/backlog/form.yml b/docs/requests/backlog/form.yml new file mode 100644 index 0000000..7ca5b3f --- /dev/null +++ b/docs/requests/backlog/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Backlog index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Backlog.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Backlog type of this Backlog.' + type: integer + example: 1 diff --git a/docs/requests/backlog/patch.yml b/docs/requests/backlog/patch.yml index bd27f2c..b6749e0 100644 --- a/docs/requests/backlog/patch.yml +++ b/docs/requests/backlog/patch.yml @@ -1,20 +1,20 @@ description: 'The Matrix Backlog fillable properties.' type: object properties: + backlog_type: + description: 'The backlog type of this backlog.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this backlog.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this backlog.' + description: 'ID: a parent of this backlog.' type: string format: uuid nullable: true - backlog_type: - description: 'The backlog type of this backlog.' - type: string - nullable: true board_id: description: 'Foreign key: links a board to this backlog.' type: string @@ -30,6 +30,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this backlog.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this backlog.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this backlog.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this backlog.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this backlog.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this backlog.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this backlog.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this backlog.' + planned_end_at: + description: 'The planned end at date for this backlog.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this backlog.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this backlog.' + resolved_at: + description: 'The resolved at date for this backlog.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this backlog.' + suspended_at: + description: 'The suspended at date for this backlog.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this backlog.' + timer_end_at: + description: 'The timer end at date for this backlog.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this backlog.' type: string format: date-time nullable: true @@ -223,11 +218,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -244,6 +239,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -256,8 +254,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -265,6 +263,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the backlog.' + type: string + maxLength: 255 label: description: 'The label of the backlog.' type: string @@ -318,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/backlog/post.yml b/docs/requests/backlog/post.yml index bd27f2c..b6749e0 100644 --- a/docs/requests/backlog/post.yml +++ b/docs/requests/backlog/post.yml @@ -1,20 +1,20 @@ description: 'The Matrix Backlog fillable properties.' type: object properties: + backlog_type: + description: 'The backlog type of this backlog.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this backlog.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this backlog.' + description: 'ID: a parent of this backlog.' type: string format: uuid nullable: true - backlog_type: - description: 'The backlog type of this backlog.' - type: string - nullable: true board_id: description: 'Foreign key: links a board to this backlog.' type: string @@ -30,6 +30,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this backlog.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this backlog.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this backlog.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this backlog.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this backlog.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this backlog.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this backlog.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this backlog.' + planned_end_at: + description: 'The planned end at date for this backlog.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this backlog.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this backlog.' + resolved_at: + description: 'The resolved at date for this backlog.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this backlog.' + suspended_at: + description: 'The suspended at date for this backlog.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this backlog.' + timer_end_at: + description: 'The timer end at date for this backlog.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this backlog.' type: string format: date-time nullable: true @@ -223,11 +218,11 @@ properties: completed: description: 'Flags: completed' type: boolean - duplicate: - description: 'Flags: duplicate' + cron: + description: 'Flags: cron' type: boolean - fixed: - description: 'Flags: fixed' + featured: + description: 'Flags: featured' type: boolean flagged: description: 'Flags: flagged' @@ -244,6 +239,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -256,8 +254,8 @@ properties: retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -265,6 +263,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the backlog.' + type: string + maxLength: 255 label: description: 'The label of the backlog.' type: string @@ -318,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/board/form.yml b/docs/requests/board/form.yml new file mode 100644 index 0000000..08ad161 --- /dev/null +++ b/docs/requests/board/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Board index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Board.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Board type of this Board.' + type: integer + example: 1 diff --git a/docs/requests/board/patch.yml b/docs/requests/board/patch.yml index c848f1a..12ca9d0 100644 --- a/docs/requests/board/patch.yml +++ b/docs/requests/board/patch.yml @@ -1,19 +1,24 @@ description: 'The Matrix Board fillable properties.' type: object properties: + board_type: + description: 'The board type of this board.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this board.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this board.' + description: 'ID: a parent of this board.' type: string format: uuid nullable: true - board_type: - description: 'The board type of this board.' + backlog_id: + description: 'Foreign key: links a backlog to this board.' type: string + format: uuid nullable: true epic_id: description: 'Foreign key: links an epic to this board.' @@ -25,6 +30,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this board.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this board.' type: string @@ -80,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this board.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this board.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this board.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this board.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this board.' type: string @@ -115,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this board.' + planned_end_at: + description: 'The planned end at date for this board.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this board.' type: string format: date-time nullable: true @@ -130,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this board.' + resolved_at: + description: 'The resolved at date for this board.' type: string format: date-time nullable: true @@ -140,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this board.' + suspended_at: + description: 'The suspended at date for this board.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this board.' + timer_end_at: + description: 'The timer end at date for this board.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this board.' type: string format: date-time nullable: true @@ -209,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -224,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the board.' + type: string + maxLength: 255 label: description: 'The label of the board.' type: string maxLength: 128 + title: + description: 'The title of the board.' + type: string + maxLength: 255 byline: description: 'The byline of the board.' type: string @@ -288,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/board/post.yml b/docs/requests/board/post.yml index c848f1a..12ca9d0 100644 --- a/docs/requests/board/post.yml +++ b/docs/requests/board/post.yml @@ -1,19 +1,24 @@ description: 'The Matrix Board fillable properties.' type: object properties: + board_type: + description: 'The board type of this board.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this board.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this board.' + description: 'ID: a parent of this board.' type: string format: uuid nullable: true - board_type: - description: 'The board type of this board.' + backlog_id: + description: 'Foreign key: links a backlog to this board.' type: string + format: uuid nullable: true epic_id: description: 'Foreign key: links an epic to this board.' @@ -25,6 +30,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this board.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this board.' type: string @@ -80,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this board.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this board.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this board.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this board.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this board.' type: string @@ -115,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this board.' + planned_end_at: + description: 'The planned end at date for this board.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this board.' type: string format: date-time nullable: true @@ -130,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this board.' + resolved_at: + description: 'The resolved at date for this board.' type: string format: date-time nullable: true @@ -140,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this board.' + suspended_at: + description: 'The suspended at date for this board.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this board.' + timer_end_at: + description: 'The timer end at date for this board.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this board.' type: string format: date-time nullable: true @@ -209,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -224,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the board.' + type: string + maxLength: 255 label: description: 'The label of the board.' type: string maxLength: 128 + title: + description: 'The title of the board.' + type: string + maxLength: 255 byline: description: 'The byline of the board.' type: string @@ -288,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/epic/form.yml b/docs/requests/epic/form.yml new file mode 100644 index 0000000..f33b203 --- /dev/null +++ b/docs/requests/epic/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Epic index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Epic.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Epic type of this Epic.' + type: integer + example: 1 diff --git a/docs/requests/epic/patch.yml b/docs/requests/epic/patch.yml index 3180356..4be3bb2 100644 --- a/docs/requests/epic/patch.yml +++ b/docs/requests/epic/patch.yml @@ -1,19 +1,24 @@ description: 'The Matrix Epic fillable properties.' type: object properties: + epic_type: + description: 'The epic type of this epic.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this epic.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this epic.' + description: 'ID: a parent of this epic.' type: string format: uuid nullable: true - epic_type: - description: 'The epic type of this epic.' + backlog_id: + description: 'Foreign key: links a backlog to this epic.' type: string + format: uuid nullable: true board_id: description: 'Foreign key: links a board to this epic.' @@ -25,6 +30,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this epic.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this epic.' type: string @@ -80,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this epic.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this epic.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this epic.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this epic.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this epic.' type: string @@ -115,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this epic.' + planned_end_at: + description: 'The planned end at date for this epic.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this epic.' type: string format: date-time nullable: true @@ -130,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this epic.' + resolved_at: + description: 'The resolved at date for this epic.' type: string format: date-time nullable: true @@ -140,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this epic.' + suspended_at: + description: 'The suspended at date for this epic.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this epic.' + timer_end_at: + description: 'The timer end at date for this epic.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this epic.' type: string format: date-time nullable: true @@ -209,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -224,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the epic.' + type: string + maxLength: 255 label: description: 'The label of the epic.' type: string maxLength: 128 + title: + description: 'The title of the epic.' + type: string + maxLength: 255 byline: description: 'The byline of the epic.' type: string @@ -288,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/epic/post.yml b/docs/requests/epic/post.yml index 3180356..4be3bb2 100644 --- a/docs/requests/epic/post.yml +++ b/docs/requests/epic/post.yml @@ -1,19 +1,24 @@ description: 'The Matrix Epic fillable properties.' type: object properties: + epic_type: + description: 'The epic type of this epic.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this epic.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this epic.' + description: 'ID: a parent of this epic.' type: string format: uuid nullable: true - epic_type: - description: 'The epic type of this epic.' + backlog_id: + description: 'Foreign key: links a backlog to this epic.' type: string + format: uuid nullable: true board_id: description: 'Foreign key: links a board to this epic.' @@ -25,6 +30,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this epic.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this epic.' type: string @@ -80,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this epic.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this epic.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this epic.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this epic.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this epic.' type: string @@ -115,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this epic.' + planned_end_at: + description: 'The planned end at date for this epic.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this epic.' type: string format: date-time nullable: true @@ -130,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this epic.' + resolved_at: + description: 'The resolved at date for this epic.' type: string format: date-time nullable: true @@ -140,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this epic.' + suspended_at: + description: 'The suspended at date for this epic.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this epic.' + timer_end_at: + description: 'The timer end at date for this epic.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this epic.' type: string format: date-time nullable: true @@ -209,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -224,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the epic.' + type: string + maxLength: 255 label: description: 'The label of the epic.' type: string maxLength: 128 + title: + description: 'The title of the epic.' + type: string + maxLength: 255 byline: description: 'The byline of the epic.' type: string @@ -288,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/flow/form.yml b/docs/requests/flow/form.yml new file mode 100644 index 0000000..1d8b5bc --- /dev/null +++ b/docs/requests/flow/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Flow index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Flow.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Flow type of this Flow.' + type: integer + example: 1 diff --git a/docs/requests/flow/patch.yml b/docs/requests/flow/patch.yml index f90071f..5a4e2bb 100644 --- a/docs/requests/flow/patch.yml +++ b/docs/requests/flow/patch.yml @@ -1,19 +1,24 @@ description: 'The Matrix Flow fillable properties.' type: object properties: + flow_type: + description: 'The flow type of this flow.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this flow.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this flow.' + description: 'ID: a parent of this flow.' type: string format: uuid nullable: true - flow_type: - description: 'The flow type of this flow.' + matrix_id: + description: 'Foreign key: links a matrix to this flow.' type: string + format: uuid nullable: true note_id: description: 'Foreign key: links a note to this flow.' @@ -30,18 +35,18 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this flow.' + canceled_at: + description: 'The canceled at date for this flow.' type: string format: date-time nullable: true - planned_start_at: - description: 'The planned start at date for this flow.' + closed_at: + description: 'The closed at date for this flow.' type: string format: date-time nullable: true - end_at: - description: 'The end at date for this flow.' + embargo_at: + description: 'The embargo at date for this flow.' type: string format: date-time nullable: true @@ -50,18 +55,8 @@ properties: type: string format: date-time nullable: true - canceled_at: - description: 'The canceled at date for this flow.' - type: string - format: date-time - nullable: true - closed_at: - description: 'The closed at date for this flow.' - type: string - format: date-time - nullable: true - embargo_at: - description: 'The embargo at date for this flow.' + planned_start_at: + description: 'The planned start at date for this flow.' type: string format: date-time nullable: true @@ -75,8 +70,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this flow.' + resolved_at: + description: 'The resolved at date for this flow.' type: string format: date-time nullable: true @@ -90,6 +85,16 @@ properties: type: string format: date-time nullable: true + timer_end_at: + description: 'The timer end at date for this flow.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this flow.' + type: string + format: date-time + nullable: true gids: description: 'Permissions: gids' type: integer @@ -149,6 +154,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -164,25 +184,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the flow.' + type: string + maxLength: 255 label: description: 'The label of the flow.' type: string maxLength: 128 + title: + description: 'The title of the flow.' + type: string + maxLength: 255 byline: description: 'The byline of the flow.' type: string @@ -216,10 +253,6 @@ properties: description: 'JSON: assets' type: object nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -228,3 +261,7 @@ properties: description: 'JSON: options' type: object nullable: true + sources: + description: 'JSON: sources' + type: object + nullable: true diff --git a/docs/requests/flow/post.yml b/docs/requests/flow/post.yml index f90071f..5a4e2bb 100644 --- a/docs/requests/flow/post.yml +++ b/docs/requests/flow/post.yml @@ -1,19 +1,24 @@ description: 'The Matrix Flow fillable properties.' type: object properties: + flow_type: + description: 'The flow type of this flow.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this flow.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this flow.' + description: 'ID: a parent of this flow.' type: string format: uuid nullable: true - flow_type: - description: 'The flow type of this flow.' + matrix_id: + description: 'Foreign key: links a matrix to this flow.' type: string + format: uuid nullable: true note_id: description: 'Foreign key: links a note to this flow.' @@ -30,18 +35,18 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this flow.' + canceled_at: + description: 'The canceled at date for this flow.' type: string format: date-time nullable: true - planned_start_at: - description: 'The planned start at date for this flow.' + closed_at: + description: 'The closed at date for this flow.' type: string format: date-time nullable: true - end_at: - description: 'The end at date for this flow.' + embargo_at: + description: 'The embargo at date for this flow.' type: string format: date-time nullable: true @@ -50,18 +55,8 @@ properties: type: string format: date-time nullable: true - canceled_at: - description: 'The canceled at date for this flow.' - type: string - format: date-time - nullable: true - closed_at: - description: 'The closed at date for this flow.' - type: string - format: date-time - nullable: true - embargo_at: - description: 'The embargo at date for this flow.' + planned_start_at: + description: 'The planned start at date for this flow.' type: string format: date-time nullable: true @@ -75,8 +70,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this flow.' + resolved_at: + description: 'The resolved at date for this flow.' type: string format: date-time nullable: true @@ -90,6 +85,16 @@ properties: type: string format: date-time nullable: true + timer_end_at: + description: 'The timer end at date for this flow.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this flow.' + type: string + format: date-time + nullable: true gids: description: 'Permissions: gids' type: integer @@ -149,6 +154,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -164,25 +184,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the flow.' + type: string + maxLength: 255 label: description: 'The label of the flow.' type: string maxLength: 128 + title: + description: 'The title of the flow.' + type: string + maxLength: 255 byline: description: 'The byline of the flow.' type: string @@ -216,10 +253,6 @@ properties: description: 'JSON: assets' type: object nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -228,3 +261,7 @@ properties: description: 'JSON: options' type: object nullable: true + sources: + description: 'JSON: sources' + type: object + nullable: true diff --git a/docs/requests/matrix/form.yml b/docs/requests/matrix/form.yml new file mode 100644 index 0000000..112517d --- /dev/null +++ b/docs/requests/matrix/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Matrix index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Matrix.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Matrix type of this Matrix.' + type: integer + example: 1 diff --git a/docs/requests/matrix/patch.yml b/docs/requests/matrix/patch.yml new file mode 100644 index 0000000..e8617a0 --- /dev/null +++ b/docs/requests/matrix/patch.yml @@ -0,0 +1,247 @@ +description: 'The Matrix Matrix fillable properties.' +type: object +properties: + matrix_type: + description: 'The matrix type of this matrix.' + type: string + nullable: true + owned_by_id: + description: 'Foreign key: links an owned by user to this matrix.' + type: string + format: uuid + nullable: true + parent_id: + description: 'ID: a parent of this matrix.' + type: string + format: uuid + nullable: true + canceled_at: + description: 'The canceled at date for this matrix.' + type: string + format: date-time + nullable: true + closed_at: + description: 'The closed at date for this matrix.' + type: string + format: date-time + nullable: true + embargo_at: + description: 'The embargo at date for this matrix.' + type: string + format: date-time + nullable: true + planned_end_at: + description: 'The planned end at date for this matrix.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this matrix.' + type: string + format: date-time + nullable: true + postponed_at: + description: 'The postponed at date for this matrix.' + type: string + format: date-time + nullable: true + published_at: + description: 'The published at date for this matrix.' + type: string + format: date-time + nullable: true + resolved_at: + description: 'The resolved at date for this matrix.' + type: string + format: date-time + nullable: true + resumed_at: + description: 'The resumed at date for this matrix.' + type: string + format: date-time + nullable: true + suspended_at: + description: 'The suspended at date for this matrix.' + type: string + format: date-time + nullable: true + timer_end_at: + description: 'The timer end at date for this matrix.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this matrix.' + type: string + format: date-time + nullable: true + gids: + description: 'Permissions: gids' + type: integer + format: int64 + po: + description: 'Permissions: po' + type: integer + format: int32 + pg: + description: 'Permissions: pg' + type: integer + format: int32 + pw: + description: 'Permissions: pw' + type: integer + format: int32 + only_admin: + description: 'Permissions: only admin' + type: boolean + only_user: + description: 'Permissions: only user' + type: boolean + only_guest: + description: 'Permissions: only guest' + type: boolean + allow_public: + description: 'Permissions: allow public' + type: boolean + status: + description: 'The status of the matrix.' + type: integer + format: int64 + rank: + description: 'Status: rank' + type: integer + format: int64 + size: + description: 'Status: size' + type: integer + format: int64 + icon: + description: 'Ui: icon' + type: string + maxLength: 128 + image: + description: 'Ui: image' + type: string + maxLength: 512 + avatar: + description: 'Ui: avatar' + type: string + maxLength: 512 + ui: + description: 'The ui of the matrix.' + type: object + nullable: true + active: + description: 'Flags: active' + type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean + flagged: + description: 'Flags: flagged' + type: boolean + internal: + description: 'Flags: internal' + type: boolean + locked: + description: 'Flags: locked' + type: boolean + pending: + description: 'Flags: pending' + type: boolean + planned: + description: 'Flags: planned' + type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean + problem: + description: 'Flags: problem' + type: boolean + published: + description: 'Flags: published' + type: boolean + released: + description: 'Flags: released' + type: boolean + retired: + description: 'Flags: retired' + type: boolean + special: + description: 'Flags: special' + type: boolean + suspended: + description: 'Flags: suspended' + type: boolean + unknown: + description: 'Flags: unknown' + type: boolean + locale: + description: 'The locale of the matrix.' + type: string + maxLength: 255 + label: + description: 'The label of the matrix.' + type: string + maxLength: 128 + title: + description: 'The title of the matrix.' + type: string + maxLength: 255 + byline: + description: 'The byline of the matrix.' + type: string + maxLength: 255 + slug: + description: 'The slug of the matrix.' + type: string + maxLength: 128 + nullable: true + url: + description: 'The url of the matrix.' + type: string + maxLength: 512 + description: + description: 'The description of the matrix.' + type: string + maxLength: 512 + introduction: + description: 'The introduction of the matrix.' + type: string + maxLength: 512 + content: + description: 'The content of the matrix. Allows HTML.' + type: string + nullable: true + summary: + description: 'The summary of the matrix. Allows HTML.' + type: string + nullable: true + assets: + description: 'JSON: assets' + type: object + nullable: true + meta: + description: 'JSON: meta' + type: object + nullable: true + options: + description: 'JSON: options' + type: object + nullable: true + sources: + description: 'JSON: sources' + type: object + nullable: true diff --git a/docs/requests/matrix/post.yml b/docs/requests/matrix/post.yml new file mode 100644 index 0000000..e8617a0 --- /dev/null +++ b/docs/requests/matrix/post.yml @@ -0,0 +1,247 @@ +description: 'The Matrix Matrix fillable properties.' +type: object +properties: + matrix_type: + description: 'The matrix type of this matrix.' + type: string + nullable: true + owned_by_id: + description: 'Foreign key: links an owned by user to this matrix.' + type: string + format: uuid + nullable: true + parent_id: + description: 'ID: a parent of this matrix.' + type: string + format: uuid + nullable: true + canceled_at: + description: 'The canceled at date for this matrix.' + type: string + format: date-time + nullable: true + closed_at: + description: 'The closed at date for this matrix.' + type: string + format: date-time + nullable: true + embargo_at: + description: 'The embargo at date for this matrix.' + type: string + format: date-time + nullable: true + planned_end_at: + description: 'The planned end at date for this matrix.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this matrix.' + type: string + format: date-time + nullable: true + postponed_at: + description: 'The postponed at date for this matrix.' + type: string + format: date-time + nullable: true + published_at: + description: 'The published at date for this matrix.' + type: string + format: date-time + nullable: true + resolved_at: + description: 'The resolved at date for this matrix.' + type: string + format: date-time + nullable: true + resumed_at: + description: 'The resumed at date for this matrix.' + type: string + format: date-time + nullable: true + suspended_at: + description: 'The suspended at date for this matrix.' + type: string + format: date-time + nullable: true + timer_end_at: + description: 'The timer end at date for this matrix.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this matrix.' + type: string + format: date-time + nullable: true + gids: + description: 'Permissions: gids' + type: integer + format: int64 + po: + description: 'Permissions: po' + type: integer + format: int32 + pg: + description: 'Permissions: pg' + type: integer + format: int32 + pw: + description: 'Permissions: pw' + type: integer + format: int32 + only_admin: + description: 'Permissions: only admin' + type: boolean + only_user: + description: 'Permissions: only user' + type: boolean + only_guest: + description: 'Permissions: only guest' + type: boolean + allow_public: + description: 'Permissions: allow public' + type: boolean + status: + description: 'The status of the matrix.' + type: integer + format: int64 + rank: + description: 'Status: rank' + type: integer + format: int64 + size: + description: 'Status: size' + type: integer + format: int64 + icon: + description: 'Ui: icon' + type: string + maxLength: 128 + image: + description: 'Ui: image' + type: string + maxLength: 512 + avatar: + description: 'Ui: avatar' + type: string + maxLength: 512 + ui: + description: 'The ui of the matrix.' + type: object + nullable: true + active: + description: 'Flags: active' + type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean + flagged: + description: 'Flags: flagged' + type: boolean + internal: + description: 'Flags: internal' + type: boolean + locked: + description: 'Flags: locked' + type: boolean + pending: + description: 'Flags: pending' + type: boolean + planned: + description: 'Flags: planned' + type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean + problem: + description: 'Flags: problem' + type: boolean + published: + description: 'Flags: published' + type: boolean + released: + description: 'Flags: released' + type: boolean + retired: + description: 'Flags: retired' + type: boolean + special: + description: 'Flags: special' + type: boolean + suspended: + description: 'Flags: suspended' + type: boolean + unknown: + description: 'Flags: unknown' + type: boolean + locale: + description: 'The locale of the matrix.' + type: string + maxLength: 255 + label: + description: 'The label of the matrix.' + type: string + maxLength: 128 + title: + description: 'The title of the matrix.' + type: string + maxLength: 255 + byline: + description: 'The byline of the matrix.' + type: string + maxLength: 255 + slug: + description: 'The slug of the matrix.' + type: string + maxLength: 128 + nullable: true + url: + description: 'The url of the matrix.' + type: string + maxLength: 512 + description: + description: 'The description of the matrix.' + type: string + maxLength: 512 + introduction: + description: 'The introduction of the matrix.' + type: string + maxLength: 512 + content: + description: 'The content of the matrix. Allows HTML.' + type: string + nullable: true + summary: + description: 'The summary of the matrix. Allows HTML.' + type: string + nullable: true + assets: + description: 'JSON: assets' + type: object + nullable: true + meta: + description: 'JSON: meta' + type: object + nullable: true + options: + description: 'JSON: options' + type: object + nullable: true + sources: + description: 'JSON: sources' + type: object + nullable: true diff --git a/docs/requests/milestone/form.yml b/docs/requests/milestone/form.yml new file mode 100644 index 0000000..d908c6e --- /dev/null +++ b/docs/requests/milestone/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Milestone index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Milestone.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Milestone type of this Milestone.' + type: integer + example: 1 diff --git a/docs/requests/milestone/patch.yml b/docs/requests/milestone/patch.yml index 0795416..c54fae3 100644 --- a/docs/requests/milestone/patch.yml +++ b/docs/requests/milestone/patch.yml @@ -1,20 +1,20 @@ description: 'The Matrix Milestone fillable properties.' type: object properties: + milestone_type: + description: 'The milestone type of this milestone.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this milestone.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this milestone.' + description: 'ID: a parent of this milestone.' type: string format: uuid nullable: true - milestone_type: - description: 'The milestone type of this milestone.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this milestone.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this milestone.' + type: string + format: uuid + nullable: true note_id: description: 'Foreign key: links a note to this milestone.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this milestone.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this milestone.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this milestone.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this milestone.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this milestone.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this milestone.' + planned_end_at: + description: 'The planned end at date for this milestone.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this milestone.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this milestone.' + resolved_at: + description: 'The resolved at date for this milestone.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this milestone.' + suspended_at: + description: 'The suspended at date for this milestone.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this milestone.' + timer_end_at: + description: 'The timer end at date for this milestone.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this milestone.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the milestone.' + type: string + maxLength: 255 label: description: 'The label of the milestone.' type: string maxLength: 128 + title: + description: 'The title of the milestone.' + type: string + maxLength: 255 byline: description: 'The byline of the milestone.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/milestone/post.yml b/docs/requests/milestone/post.yml index 0795416..c54fae3 100644 --- a/docs/requests/milestone/post.yml +++ b/docs/requests/milestone/post.yml @@ -1,20 +1,20 @@ description: 'The Matrix Milestone fillable properties.' type: object properties: + milestone_type: + description: 'The milestone type of this milestone.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this milestone.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this milestone.' + description: 'ID: a parent of this milestone.' type: string format: uuid nullable: true - milestone_type: - description: 'The milestone type of this milestone.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this milestone.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this milestone.' + type: string + format: uuid + nullable: true note_id: description: 'Foreign key: links a note to this milestone.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this milestone.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this milestone.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this milestone.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this milestone.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this milestone.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this milestone.' + planned_end_at: + description: 'The planned end at date for this milestone.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this milestone.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this milestone.' + resolved_at: + description: 'The resolved at date for this milestone.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this milestone.' + suspended_at: + description: 'The suspended at date for this milestone.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this milestone.' + timer_end_at: + description: 'The timer end at date for this milestone.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this milestone.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the milestone.' + type: string + maxLength: 255 label: description: 'The label of the milestone.' type: string maxLength: 128 + title: + description: 'The title of the milestone.' + type: string + maxLength: 255 byline: description: 'The byline of the milestone.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/note/form.yml b/docs/requests/note/form.yml new file mode 100644 index 0000000..2f14531 --- /dev/null +++ b/docs/requests/note/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Note index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Note.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Note type of this Note.' + type: integer + example: 1 diff --git a/docs/requests/note/patch.yml b/docs/requests/note/patch.yml index e811da6..d10a871 100644 --- a/docs/requests/note/patch.yml +++ b/docs/requests/note/patch.yml @@ -1,89 +1,29 @@ description: 'The Matrix Note fillable properties.' type: object properties: + note_type: + description: 'The note type of this note.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this note.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this note.' + description: 'ID: a parent of this note.' type: string format: uuid nullable: true - note_type: - description: 'The note type of this note.' - type: string - nullable: true - start_at: - description: 'The start at date for this note.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this note.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this note.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this note.' - type: string - format: date-time - nullable: true - canceled_at: - description: 'The canceled at date for this note.' - type: string - format: date-time - nullable: true - closed_at: - description: 'The closed at date for this note.' - type: string - format: date-time - nullable: true - embargo_at: - description: 'The embargo at date for this note.' - type: string - format: date-time - nullable: true - fixed_at: - description: 'The fixed at date for this note.' - type: string - format: date-time - nullable: true - postponed_at: - description: 'The postponed at date for this note.' - type: string - format: date-time - nullable: true - published_at: - description: 'The published at date for this note.' - type: string - format: date-time - nullable: true - released_at: - description: 'The released at date for this note.' - type: string - format: date-time - nullable: true - resumed_at: - description: 'The resumed at date for this note.' + matrix_id: + description: 'Foreign key: links a matrix to this note.' type: string - format: date-time - nullable: true - resolved_at: - description: 'The resolved at date for this note.' - type: string - format: date-time + format: uuid nullable: true - suspended_at: - description: 'The suspended at date for this note.' + tag_id: + description: 'Foreign key: links a tag to this note.' type: string - format: date-time + format: uuid nullable: true gids: description: 'Permissions: gids' @@ -144,6 +84,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -159,25 +114,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the note.' + type: string + maxLength: 255 label: description: 'The label of the note.' type: string maxLength: 128 + title: + description: 'The title of the note.' + type: string + maxLength: 255 byline: description: 'The byline of the note.' type: string @@ -211,18 +183,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -231,10 +191,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/requests/note/post.yml b/docs/requests/note/post.yml index e811da6..d10a871 100644 --- a/docs/requests/note/post.yml +++ b/docs/requests/note/post.yml @@ -1,89 +1,29 @@ description: 'The Matrix Note fillable properties.' type: object properties: + note_type: + description: 'The note type of this note.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this note.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this note.' + description: 'ID: a parent of this note.' type: string format: uuid nullable: true - note_type: - description: 'The note type of this note.' - type: string - nullable: true - start_at: - description: 'The start at date for this note.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this note.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this note.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this note.' - type: string - format: date-time - nullable: true - canceled_at: - description: 'The canceled at date for this note.' - type: string - format: date-time - nullable: true - closed_at: - description: 'The closed at date for this note.' - type: string - format: date-time - nullable: true - embargo_at: - description: 'The embargo at date for this note.' - type: string - format: date-time - nullable: true - fixed_at: - description: 'The fixed at date for this note.' - type: string - format: date-time - nullable: true - postponed_at: - description: 'The postponed at date for this note.' - type: string - format: date-time - nullable: true - published_at: - description: 'The published at date for this note.' - type: string - format: date-time - nullable: true - released_at: - description: 'The released at date for this note.' - type: string - format: date-time - nullable: true - resumed_at: - description: 'The resumed at date for this note.' + matrix_id: + description: 'Foreign key: links a matrix to this note.' type: string - format: date-time - nullable: true - resolved_at: - description: 'The resolved at date for this note.' - type: string - format: date-time + format: uuid nullable: true - suspended_at: - description: 'The suspended at date for this note.' + tag_id: + description: 'Foreign key: links a tag to this note.' type: string - format: date-time + format: uuid nullable: true gids: description: 'Permissions: gids' @@ -144,6 +84,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -159,25 +114,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the note.' + type: string + maxLength: 255 label: description: 'The label of the note.' type: string maxLength: 128 + title: + description: 'The title of the note.' + type: string + maxLength: 255 byline: description: 'The byline of the note.' type: string @@ -211,18 +183,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -231,10 +191,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/requests/project/form.yml b/docs/requests/project/form.yml new file mode 100644 index 0000000..5b141fe --- /dev/null +++ b/docs/requests/project/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Project index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Project.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Project type of this Project.' + type: integer + example: 1 diff --git a/docs/requests/project/patch.yml b/docs/requests/project/patch.yml index df15e70..41994bb 100644 --- a/docs/requests/project/patch.yml +++ b/docs/requests/project/patch.yml @@ -1,20 +1,20 @@ description: 'The Matrix Project fillable properties.' type: object properties: + project_type: + description: 'The project type of this project.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this project.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this project.' + description: 'ID: a parent of this project.' type: string format: uuid nullable: true - project_type: - description: 'The project type of this project.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this project.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this project.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this project.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this project.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this project.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this project.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this project.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this project.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this project.' + planned_end_at: + description: 'The planned end at date for this project.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this project.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this project.' + resolved_at: + description: 'The resolved at date for this project.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this project.' + suspended_at: + description: 'The suspended at date for this project.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this project.' + timer_end_at: + description: 'The timer end at date for this project.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this project.' type: string format: date-time nullable: true @@ -214,6 +209,27 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + duplicate: + description: 'Flags: duplicate' + type: boolean + featured: + description: 'Flags: featured' + type: boolean + fixed: + description: 'Flags: fixed' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +245,45 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean + resolved: + description: 'Flags: resolved' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the project.' + type: string + maxLength: 255 label: description: 'The label of the project.' type: string maxLength: 128 + title: + description: 'The title of the project.' + type: string + maxLength: 255 byline: description: 'The byline of the project.' type: string @@ -277,6 +313,16 @@ properties: description: 'The summary of the project. Allows HTML.' type: string nullable: true + key: + description: 'The key of the project.' + type: string + maxLength: 32 + nullable: true + code_name: + description: 'The code name of the project.' + type: string + maxLength: 128 + nullable: true assets: description: 'JSON: assets' type: object @@ -293,6 +339,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/project/post.yml b/docs/requests/project/post.yml index df15e70..41994bb 100644 --- a/docs/requests/project/post.yml +++ b/docs/requests/project/post.yml @@ -1,20 +1,20 @@ description: 'The Matrix Project fillable properties.' type: object properties: + project_type: + description: 'The project type of this project.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this project.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this project.' + description: 'ID: a parent of this project.' type: string format: uuid nullable: true - project_type: - description: 'The project type of this project.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this project.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this project.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this project.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this project.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this project.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this project.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this project.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this project.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this project.' + planned_end_at: + description: 'The planned end at date for this project.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this project.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this project.' + resolved_at: + description: 'The resolved at date for this project.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this project.' + suspended_at: + description: 'The suspended at date for this project.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this project.' + timer_end_at: + description: 'The timer end at date for this project.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this project.' type: string format: date-time nullable: true @@ -214,6 +209,27 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + duplicate: + description: 'Flags: duplicate' + type: boolean + featured: + description: 'Flags: featured' + type: boolean + fixed: + description: 'Flags: fixed' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +245,45 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean + resolved: + description: 'Flags: resolved' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the project.' + type: string + maxLength: 255 label: description: 'The label of the project.' type: string maxLength: 128 + title: + description: 'The title of the project.' + type: string + maxLength: 255 byline: description: 'The byline of the project.' type: string @@ -277,6 +313,16 @@ properties: description: 'The summary of the project. Allows HTML.' type: string nullable: true + key: + description: 'The key of the project.' + type: string + maxLength: 32 + nullable: true + code_name: + description: 'The code name of the project.' + type: string + maxLength: 128 + nullable: true assets: description: 'JSON: assets' type: object @@ -293,6 +339,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/release/form.yml b/docs/requests/release/form.yml new file mode 100644 index 0000000..dab8759 --- /dev/null +++ b/docs/requests/release/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Release index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Release.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Release type of this Release.' + type: integer + example: 1 diff --git a/docs/requests/release/patch.yml b/docs/requests/release/patch.yml index 9d5ae62..7d67263 100644 --- a/docs/requests/release/patch.yml +++ b/docs/requests/release/patch.yml @@ -1,20 +1,20 @@ description: 'The Matrix Release fillable properties.' type: object properties: + release_type: + description: 'The release type of this release.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this release.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this release.' + description: 'ID: a parent of this release.' type: string format: uuid nullable: true - release_type: - description: 'The release type of this release.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this release.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this release.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this release.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this release.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this release.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this release.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this release.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this release.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this release.' + planned_end_at: + description: 'The planned end at date for this release.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this release.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this release.' + resolved_at: + description: 'The resolved at date for this release.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this release.' + suspended_at: + description: 'The suspended at date for this release.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this release.' + timer_end_at: + description: 'The timer end at date for this release.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this release.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the release.' + type: string + maxLength: 255 label: description: 'The label of the release.' type: string maxLength: 128 + title: + description: 'The title of the release.' + type: string + maxLength: 255 byline: description: 'The byline of the release.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/release/post.yml b/docs/requests/release/post.yml index 9d5ae62..7d67263 100644 --- a/docs/requests/release/post.yml +++ b/docs/requests/release/post.yml @@ -1,20 +1,20 @@ description: 'The Matrix Release fillable properties.' type: object properties: + release_type: + description: 'The release type of this release.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this release.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this release.' + description: 'ID: a parent of this release.' type: string format: uuid nullable: true - release_type: - description: 'The release type of this release.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this release.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this release.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this release.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this release.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this release.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this release.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this release.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this release.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this release.' + planned_end_at: + description: 'The planned end at date for this release.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this release.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this release.' + resolved_at: + description: 'The resolved at date for this release.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this release.' + suspended_at: + description: 'The suspended at date for this release.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this release.' + timer_end_at: + description: 'The timer end at date for this release.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this release.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the release.' + type: string + maxLength: 255 label: description: 'The label of the release.' type: string maxLength: 128 + title: + description: 'The title of the release.' + type: string + maxLength: 255 byline: description: 'The byline of the release.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/roadmap/form.yml b/docs/requests/roadmap/form.yml new file mode 100644 index 0000000..fb327a7 --- /dev/null +++ b/docs/requests/roadmap/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Roadmap index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Roadmap.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Roadmap type of this Roadmap.' + type: integer + example: 1 diff --git a/docs/requests/roadmap/patch.yml b/docs/requests/roadmap/patch.yml index 97d4e9c..ced8675 100644 --- a/docs/requests/roadmap/patch.yml +++ b/docs/requests/roadmap/patch.yml @@ -1,20 +1,20 @@ description: 'The Matrix Roadmap fillable properties.' type: object properties: + roadmap_type: + description: 'The roadmap type of this roadmap.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this roadmap.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this roadmap.' + description: 'ID: a parent of this roadmap.' type: string format: uuid nullable: true - roadmap_type: - description: 'The roadmap type of this roadmap.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this roadmap.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this roadmap.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this roadmap.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this roadmap.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this roadmap.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this roadmap.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this roadmap.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this roadmap.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this roadmap.' + planned_end_at: + description: 'The planned end at date for this roadmap.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this roadmap.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this roadmap.' + resolved_at: + description: 'The resolved at date for this roadmap.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this roadmap.' + suspended_at: + description: 'The suspended at date for this roadmap.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this roadmap.' + timer_end_at: + description: 'The timer end at date for this roadmap.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this roadmap.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the roadmap.' + type: string + maxLength: 255 label: description: 'The label of the roadmap.' type: string maxLength: 128 + title: + description: 'The title of the roadmap.' + type: string + maxLength: 255 byline: description: 'The byline of the roadmap.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/roadmap/post.yml b/docs/requests/roadmap/post.yml index 97d4e9c..ced8675 100644 --- a/docs/requests/roadmap/post.yml +++ b/docs/requests/roadmap/post.yml @@ -1,20 +1,20 @@ description: 'The Matrix Roadmap fillable properties.' type: object properties: + roadmap_type: + description: 'The roadmap type of this roadmap.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this roadmap.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this roadmap.' + description: 'ID: a parent of this roadmap.' type: string format: uuid nullable: true - roadmap_type: - description: 'The roadmap type of this roadmap.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this roadmap.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this roadmap.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this roadmap.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this roadmap.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this roadmap.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this roadmap.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this roadmap.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this roadmap.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this roadmap.' + planned_end_at: + description: 'The planned end at date for this roadmap.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this roadmap.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this roadmap.' + resolved_at: + description: 'The resolved at date for this roadmap.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this roadmap.' + suspended_at: + description: 'The suspended at date for this roadmap.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this roadmap.' + timer_end_at: + description: 'The timer end at date for this roadmap.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this roadmap.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the roadmap.' + type: string + maxLength: 255 label: description: 'The label of the roadmap.' type: string maxLength: 128 + title: + description: 'The title of the roadmap.' + type: string + maxLength: 255 byline: description: 'The byline of the roadmap.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/source/form.yml b/docs/requests/source/form.yml new file mode 100644 index 0000000..9810cd0 --- /dev/null +++ b/docs/requests/source/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Source index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Source.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Source type of this Source.' + type: integer + example: 1 diff --git a/docs/requests/source/patch.yml b/docs/requests/source/patch.yml index daee1a9..df85e47 100644 --- a/docs/requests/source/patch.yml +++ b/docs/requests/source/patch.yml @@ -1,42 +1,22 @@ description: 'The Matrix Source fillable properties.' type: object properties: - owned_by_id: - description: 'Foreign key: links an owned by user to this source.' - type: string - format: uuid - nullable: true - parent_id: - description: 'Foreign key: links a parent to this source.' - type: string - format: uuid - nullable: true source_type: description: 'The source type of this source.' type: string nullable: true - backlog_id: - description: 'Foreign key: links a backlog to this source.' - type: string - format: uuid - nullable: true - board_id: - description: 'Foreign key: links a board to this source.' - type: string - format: uuid - nullable: true - epic_id: - description: 'Foreign key: links an epic to this source.' + owned_by_id: + description: 'Foreign key: links an owned by user to this source.' type: string format: uuid nullable: true - flow_id: - description: 'Foreign key: links a flow to this source.' + parent_id: + description: 'ID: a parent of this source.' type: string format: uuid nullable: true - milestone_id: - description: 'Foreign key: links a milestone to this source.' + matrix_id: + description: 'Foreign key: links a matrix to this source.' type: string format: uuid nullable: true @@ -45,26 +25,6 @@ properties: type: string format: uuid nullable: true - project_id: - description: 'Foreign key: links a project to this source.' - type: string - format: uuid - nullable: true - release_id: - description: 'Foreign key: links a release to this source.' - type: string - format: uuid - nullable: true - roadmap_id: - description: 'Foreign key: links a roadmap to this source.' - type: string - format: uuid - nullable: true - sprint_id: - description: 'Foreign key: links a sprint to this source.' - type: string - format: uuid - nullable: true tag_id: description: 'Foreign key: links a tag to this source.' type: string @@ -75,36 +35,6 @@ properties: type: string format: uuid nullable: true - ticket_id: - description: 'Foreign key: links a ticket to this source.' - type: string - format: uuid - nullable: true - version_id: - description: 'Foreign key: links a version to this source.' - type: string - format: uuid - nullable: true - start_at: - description: 'The start at date for this source.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this source.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this source.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this source.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this source.' type: string @@ -120,8 +50,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this source.' + planned_end_at: + description: 'The planned end at date for this source.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this source.' type: string format: date-time nullable: true @@ -135,8 +70,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this source.' + resolved_at: + description: 'The resolved at date for this source.' type: string format: date-time nullable: true @@ -145,13 +80,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this source.' + suspended_at: + description: 'The suspended at date for this source.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this source.' + timer_end_at: + description: 'The timer end at date for this source.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this source.' type: string format: date-time nullable: true @@ -214,6 +154,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +184,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the source.' + type: string + maxLength: 255 label: description: 'The label of the source.' type: string maxLength: 128 + title: + description: 'The title of the source.' + type: string + maxLength: 255 byline: description: 'The byline of the source.' type: string @@ -281,18 +253,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -301,10 +261,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/requests/source/post.yml b/docs/requests/source/post.yml index daee1a9..df85e47 100644 --- a/docs/requests/source/post.yml +++ b/docs/requests/source/post.yml @@ -1,42 +1,22 @@ description: 'The Matrix Source fillable properties.' type: object properties: - owned_by_id: - description: 'Foreign key: links an owned by user to this source.' - type: string - format: uuid - nullable: true - parent_id: - description: 'Foreign key: links a parent to this source.' - type: string - format: uuid - nullable: true source_type: description: 'The source type of this source.' type: string nullable: true - backlog_id: - description: 'Foreign key: links a backlog to this source.' - type: string - format: uuid - nullable: true - board_id: - description: 'Foreign key: links a board to this source.' - type: string - format: uuid - nullable: true - epic_id: - description: 'Foreign key: links an epic to this source.' + owned_by_id: + description: 'Foreign key: links an owned by user to this source.' type: string format: uuid nullable: true - flow_id: - description: 'Foreign key: links a flow to this source.' + parent_id: + description: 'ID: a parent of this source.' type: string format: uuid nullable: true - milestone_id: - description: 'Foreign key: links a milestone to this source.' + matrix_id: + description: 'Foreign key: links a matrix to this source.' type: string format: uuid nullable: true @@ -45,26 +25,6 @@ properties: type: string format: uuid nullable: true - project_id: - description: 'Foreign key: links a project to this source.' - type: string - format: uuid - nullable: true - release_id: - description: 'Foreign key: links a release to this source.' - type: string - format: uuid - nullable: true - roadmap_id: - description: 'Foreign key: links a roadmap to this source.' - type: string - format: uuid - nullable: true - sprint_id: - description: 'Foreign key: links a sprint to this source.' - type: string - format: uuid - nullable: true tag_id: description: 'Foreign key: links a tag to this source.' type: string @@ -75,36 +35,6 @@ properties: type: string format: uuid nullable: true - ticket_id: - description: 'Foreign key: links a ticket to this source.' - type: string - format: uuid - nullable: true - version_id: - description: 'Foreign key: links a version to this source.' - type: string - format: uuid - nullable: true - start_at: - description: 'The start at date for this source.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this source.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this source.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this source.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this source.' type: string @@ -120,8 +50,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this source.' + planned_end_at: + description: 'The planned end at date for this source.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this source.' type: string format: date-time nullable: true @@ -135,8 +70,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this source.' + resolved_at: + description: 'The resolved at date for this source.' type: string format: date-time nullable: true @@ -145,13 +80,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this source.' + suspended_at: + description: 'The suspended at date for this source.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this source.' + timer_end_at: + description: 'The timer end at date for this source.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this source.' type: string format: date-time nullable: true @@ -214,6 +154,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +184,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the source.' + type: string + maxLength: 255 label: description: 'The label of the source.' type: string maxLength: 128 + title: + description: 'The title of the source.' + type: string + maxLength: 255 byline: description: 'The byline of the source.' type: string @@ -281,18 +253,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -301,10 +261,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/requests/sprint/form.yml b/docs/requests/sprint/form.yml new file mode 100644 index 0000000..69e18b6 --- /dev/null +++ b/docs/requests/sprint/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Sprint index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Sprint.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Sprint type of this Sprint.' + type: integer + example: 1 diff --git a/docs/requests/sprint/patch.yml b/docs/requests/sprint/patch.yml index f799092..67e4dac 100644 --- a/docs/requests/sprint/patch.yml +++ b/docs/requests/sprint/patch.yml @@ -1,20 +1,20 @@ description: 'The Matrix Sprint fillable properties.' type: object properties: + sprint_type: + description: 'The sprint type of this sprint.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this sprint.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this sprint.' + description: 'ID: a parent of this sprint.' type: string format: uuid nullable: true - sprint_type: - description: 'The sprint type of this sprint.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this sprint.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this sprint.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this sprint.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this sprint.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this sprint.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this sprint.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this sprint.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this sprint.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this sprint.' + planned_end_at: + description: 'The planned end at date for this sprint.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this sprint.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this sprint.' + resolved_at: + description: 'The resolved at date for this sprint.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this sprint.' + suspended_at: + description: 'The suspended at date for this sprint.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this sprint.' + timer_end_at: + description: 'The timer end at date for this sprint.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this sprint.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the sprint.' + type: string + maxLength: 255 label: description: 'The label of the sprint.' type: string maxLength: 128 + title: + description: 'The title of the sprint.' + type: string + maxLength: 255 byline: description: 'The byline of the sprint.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/sprint/post.yml b/docs/requests/sprint/post.yml index f799092..67e4dac 100644 --- a/docs/requests/sprint/post.yml +++ b/docs/requests/sprint/post.yml @@ -1,20 +1,20 @@ description: 'The Matrix Sprint fillable properties.' type: object properties: + sprint_type: + description: 'The sprint type of this sprint.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this sprint.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this sprint.' + description: 'ID: a parent of this sprint.' type: string format: uuid nullable: true - sprint_type: - description: 'The sprint type of this sprint.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this sprint.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this sprint.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this sprint.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this sprint.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this sprint.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this sprint.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this sprint.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this sprint.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this sprint.' + planned_end_at: + description: 'The planned end at date for this sprint.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this sprint.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this sprint.' + resolved_at: + description: 'The resolved at date for this sprint.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this sprint.' + suspended_at: + description: 'The suspended at date for this sprint.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this sprint.' + timer_end_at: + description: 'The timer end at date for this sprint.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this sprint.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the sprint.' + type: string + maxLength: 255 label: description: 'The label of the sprint.' type: string maxLength: 128 + title: + description: 'The title of the sprint.' + type: string + maxLength: 255 byline: description: 'The byline of the sprint.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/tag/form.yml b/docs/requests/tag/form.yml new file mode 100644 index 0000000..60c4d8c --- /dev/null +++ b/docs/requests/tag/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Tag index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Tag.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Tag type of this Tag.' + type: integer + example: 1 diff --git a/docs/requests/tag/patch.yml b/docs/requests/tag/patch.yml index 0a33882..129426c 100644 --- a/docs/requests/tag/patch.yml +++ b/docs/requests/tag/patch.yml @@ -1,160 +1,25 @@ description: 'The Matrix Tag fillable properties.' type: object properties: - owned_by_id: - description: 'Foreign key: links an owned by user to this tag.' - type: string - format: uuid - nullable: true - parent_id: - description: 'Foreign key: links a parent to this tag.' - type: string - format: uuid - nullable: true tag_type: description: 'The tag type of this tag.' type: string nullable: true - backlog_id: - description: 'Foreign key: links a backlog to this tag.' - type: string - format: uuid - nullable: true - board_id: - description: 'Foreign key: links a board to this tag.' - type: string - format: uuid - nullable: true - epic_id: - description: 'Foreign key: links an epic to this tag.' - type: string - format: uuid - nullable: true - flow_id: - description: 'Foreign key: links a flow to this tag.' - type: string - format: uuid - nullable: true - milestone_id: - description: 'Foreign key: links a milestone to this tag.' - type: string - format: uuid - nullable: true - note_id: - description: 'Foreign key: links a note to this tag.' - type: string - format: uuid - nullable: true - project_id: - description: 'Foreign key: links a project to this tag.' - type: string - format: uuid - nullable: true - release_id: - description: 'Foreign key: links a release to this tag.' - type: string - format: uuid - nullable: true - roadmap_id: - description: 'Foreign key: links a roadmap to this tag.' - type: string - format: uuid - nullable: true - source_id: - description: 'Foreign key: links a source to this tag.' - type: string - format: uuid - nullable: true - sprint_id: - description: 'Foreign key: links a sprint to this tag.' - type: string - format: uuid - nullable: true - team_id: - description: 'Foreign key: links a team to this tag.' + owned_by_id: + description: 'Foreign key: links an owned by user to this tag.' type: string format: uuid nullable: true - ticket_id: - description: 'Foreign key: links a ticket to this tag.' + parent_id: + description: 'ID: a parent of this tag.' type: string format: uuid nullable: true - version_id: - description: 'Foreign key: links a version to this tag.' + matrix_id: + description: 'Foreign key: links a matrix to this tag.' type: string format: uuid nullable: true - start_at: - description: 'The start at date for this tag.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this tag.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this tag.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this tag.' - type: string - format: date-time - nullable: true - canceled_at: - description: 'The canceled at date for this tag.' - type: string - format: date-time - nullable: true - closed_at: - description: 'The closed at date for this tag.' - type: string - format: date-time - nullable: true - embargo_at: - description: 'The embargo at date for this tag.' - type: string - format: date-time - nullable: true - fixed_at: - description: 'The fixed at date for this tag.' - type: string - format: date-time - nullable: true - postponed_at: - description: 'The postponed at date for this tag.' - type: string - format: date-time - nullable: true - published_at: - description: 'The published at date for this tag.' - type: string - format: date-time - nullable: true - released_at: - description: 'The released at date for this tag.' - type: string - format: date-time - nullable: true - resumed_at: - description: 'The resumed at date for this tag.' - type: string - format: date-time - nullable: true - resolved_at: - description: 'The resolved at date for this tag.' - type: string - format: date-time - nullable: true - suspended_at: - description: 'The suspended at date for this tag.' - type: string - format: date-time - nullable: true gids: description: 'Permissions: gids' type: integer @@ -214,6 +79,12 @@ properties: active: description: 'Flags: active' type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -223,31 +94,27 @@ properties: locked: description: 'Flags: locked' type: boolean - pending: - description: 'Flags: pending' - type: boolean - planned: - description: 'Flags: planned' - type: boolean - problem: - description: 'Flags: problem' - type: boolean - published: - description: 'Flags: published' - type: boolean retired: description: 'Flags: retired' type: boolean - suspended: - description: 'Flags: suspended' + special: + description: 'Flags: special' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the tag.' + type: string + maxLength: 255 label: description: 'The label of the tag.' type: string maxLength: 128 + title: + description: 'The title of the tag.' + type: string + maxLength: 255 byline: description: 'The byline of the tag.' type: string @@ -281,18 +148,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -301,10 +156,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/requests/tag/post.yml b/docs/requests/tag/post.yml index 0a33882..129426c 100644 --- a/docs/requests/tag/post.yml +++ b/docs/requests/tag/post.yml @@ -1,160 +1,25 @@ description: 'The Matrix Tag fillable properties.' type: object properties: - owned_by_id: - description: 'Foreign key: links an owned by user to this tag.' - type: string - format: uuid - nullable: true - parent_id: - description: 'Foreign key: links a parent to this tag.' - type: string - format: uuid - nullable: true tag_type: description: 'The tag type of this tag.' type: string nullable: true - backlog_id: - description: 'Foreign key: links a backlog to this tag.' - type: string - format: uuid - nullable: true - board_id: - description: 'Foreign key: links a board to this tag.' - type: string - format: uuid - nullable: true - epic_id: - description: 'Foreign key: links an epic to this tag.' - type: string - format: uuid - nullable: true - flow_id: - description: 'Foreign key: links a flow to this tag.' - type: string - format: uuid - nullable: true - milestone_id: - description: 'Foreign key: links a milestone to this tag.' - type: string - format: uuid - nullable: true - note_id: - description: 'Foreign key: links a note to this tag.' - type: string - format: uuid - nullable: true - project_id: - description: 'Foreign key: links a project to this tag.' - type: string - format: uuid - nullable: true - release_id: - description: 'Foreign key: links a release to this tag.' - type: string - format: uuid - nullable: true - roadmap_id: - description: 'Foreign key: links a roadmap to this tag.' - type: string - format: uuid - nullable: true - source_id: - description: 'Foreign key: links a source to this tag.' - type: string - format: uuid - nullable: true - sprint_id: - description: 'Foreign key: links a sprint to this tag.' - type: string - format: uuid - nullable: true - team_id: - description: 'Foreign key: links a team to this tag.' + owned_by_id: + description: 'Foreign key: links an owned by user to this tag.' type: string format: uuid nullable: true - ticket_id: - description: 'Foreign key: links a ticket to this tag.' + parent_id: + description: 'ID: a parent of this tag.' type: string format: uuid nullable: true - version_id: - description: 'Foreign key: links a version to this tag.' + matrix_id: + description: 'Foreign key: links a matrix to this tag.' type: string format: uuid nullable: true - start_at: - description: 'The start at date for this tag.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this tag.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this tag.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this tag.' - type: string - format: date-time - nullable: true - canceled_at: - description: 'The canceled at date for this tag.' - type: string - format: date-time - nullable: true - closed_at: - description: 'The closed at date for this tag.' - type: string - format: date-time - nullable: true - embargo_at: - description: 'The embargo at date for this tag.' - type: string - format: date-time - nullable: true - fixed_at: - description: 'The fixed at date for this tag.' - type: string - format: date-time - nullable: true - postponed_at: - description: 'The postponed at date for this tag.' - type: string - format: date-time - nullable: true - published_at: - description: 'The published at date for this tag.' - type: string - format: date-time - nullable: true - released_at: - description: 'The released at date for this tag.' - type: string - format: date-time - nullable: true - resumed_at: - description: 'The resumed at date for this tag.' - type: string - format: date-time - nullable: true - resolved_at: - description: 'The resolved at date for this tag.' - type: string - format: date-time - nullable: true - suspended_at: - description: 'The suspended at date for this tag.' - type: string - format: date-time - nullable: true gids: description: 'Permissions: gids' type: integer @@ -214,6 +79,12 @@ properties: active: description: 'Flags: active' type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -223,31 +94,27 @@ properties: locked: description: 'Flags: locked' type: boolean - pending: - description: 'Flags: pending' - type: boolean - planned: - description: 'Flags: planned' - type: boolean - problem: - description: 'Flags: problem' - type: boolean - published: - description: 'Flags: published' - type: boolean retired: description: 'Flags: retired' type: boolean - suspended: - description: 'Flags: suspended' + special: + description: 'Flags: special' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the tag.' + type: string + maxLength: 255 label: description: 'The label of the tag.' type: string maxLength: 128 + title: + description: 'The title of the tag.' + type: string + maxLength: 255 byline: description: 'The byline of the tag.' type: string @@ -281,18 +148,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -301,10 +156,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/requests/team/form.yml b/docs/requests/team/form.yml new file mode 100644 index 0000000..11d7209 --- /dev/null +++ b/docs/requests/team/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Team index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Team.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Team type of this Team.' + type: integer + example: 1 diff --git a/docs/requests/team/patch.yml b/docs/requests/team/patch.yml index dd09509..3791f95 100644 --- a/docs/requests/team/patch.yml +++ b/docs/requests/team/patch.yml @@ -1,20 +1,20 @@ description: 'The Matrix Team fillable properties.' type: object properties: + team_type: + description: 'The team type of this team.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this team.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this team.' + description: 'ID: a parent of this team.' type: string format: uuid nullable: true - team_type: - description: 'The team type of this team.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this team.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this team.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this team.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this team.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this team.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this team.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this team.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this team.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this team.' + planned_end_at: + description: 'The planned end at date for this team.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this team.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this team.' + resolved_at: + description: 'The resolved at date for this team.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this team.' + suspended_at: + description: 'The suspended at date for this team.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this team.' + timer_end_at: + description: 'The timer end at date for this team.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this team.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the team.' + type: string + maxLength: 255 label: description: 'The label of the team.' type: string maxLength: 128 + title: + description: 'The title of the team.' + type: string + maxLength: 255 byline: description: 'The byline of the team.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/team/post.yml b/docs/requests/team/post.yml index dd09509..3791f95 100644 --- a/docs/requests/team/post.yml +++ b/docs/requests/team/post.yml @@ -1,20 +1,20 @@ description: 'The Matrix Team fillable properties.' type: object properties: + team_type: + description: 'The team type of this team.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this team.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this team.' + description: 'ID: a parent of this team.' type: string format: uuid nullable: true - team_type: - description: 'The team type of this team.' - type: string - nullable: true backlog_id: description: 'Foreign key: links a backlog to this team.' type: string @@ -35,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this team.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this team.' type: string @@ -85,26 +90,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this team.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this team.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this team.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this team.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this team.' type: string @@ -120,8 +105,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this team.' + planned_end_at: + description: 'The planned end at date for this team.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this team.' type: string format: date-time nullable: true @@ -135,8 +125,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this team.' + resolved_at: + description: 'The resolved at date for this team.' type: string format: date-time nullable: true @@ -145,13 +135,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this team.' + suspended_at: + description: 'The suspended at date for this team.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this team.' + timer_end_at: + description: 'The timer end at date for this team.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this team.' type: string format: date-time nullable: true @@ -214,6 +209,21 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +239,42 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the team.' + type: string + maxLength: 255 label: description: 'The label of the team.' type: string maxLength: 128 + title: + description: 'The title of the team.' + type: string + maxLength: 255 byline: description: 'The byline of the team.' type: string @@ -293,6 +320,10 @@ properties: description: 'JSON: flow' type: object nullable: true + history: + description: 'JSON: history' + type: object + nullable: true meta: description: 'JSON: meta' type: object diff --git a/docs/requests/ticket/form.yml b/docs/requests/ticket/form.yml new file mode 100644 index 0000000..5a77c18 --- /dev/null +++ b/docs/requests/ticket/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Ticket index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Ticket.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Ticket type of this Ticket.' + type: integer + example: 1 diff --git a/docs/requests/ticket/patch.yml b/docs/requests/ticket/patch.yml index a648564..ac6f569 100644 --- a/docs/requests/ticket/patch.yml +++ b/docs/requests/ticket/patch.yml @@ -1,22 +1,17 @@ description: 'The Matrix Ticket fillable properties.' type: object properties: + ticket_type: + description: 'The ticket type of this ticket.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this ticket.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this ticket.' - type: string - format: uuid - nullable: true - ticket_type: - description: 'The ticket type of this ticket.' - type: string - nullable: true - duplicate_id: - description: 'Foreign key: links a duplicate to this ticket.' + description: 'ID: a parent of this ticket.' type: string format: uuid nullable: true @@ -30,11 +25,6 @@ properties: type: string format: uuid nullable: true - completed_by_id: - description: 'Foreign key: links a completed by user to this ticket.' - type: string - format: uuid - nullable: true epic_id: description: 'Foreign key: links an epic to this ticket.' type: string @@ -45,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this ticket.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this ticket.' type: string @@ -65,11 +60,6 @@ properties: type: string format: uuid nullable: true - reported_by_id: - description: 'Foreign key: links a reported by user to this ticket.' - type: string - format: uuid - nullable: true roadmap_id: description: 'Foreign key: links a roadmap to this ticket.' type: string @@ -100,30 +90,30 @@ properties: type: string format: uuid nullable: true - version_fixed_id: - description: 'Foreign key: links a version fixed to this ticket.' + completed_by_id: + description: 'Foreign key: links a completed by user to this ticket.' type: string format: uuid nullable: true - start_at: - description: 'The start at date for this ticket.' + duplicate_id: + description: 'Foreign key: links a duplicate to this ticket.' type: string - format: date-time + format: uuid nullable: true - planned_start_at: - description: 'The planned start at date for this ticket.' + fixed_by_id: + description: 'Foreign key: links a fixed by user to this ticket.' type: string - format: date-time + format: uuid nullable: true - end_at: - description: 'The end at date for this ticket.' + reported_by_id: + description: 'Foreign key: links a reported by user to this ticket.' type: string - format: date-time + format: uuid nullable: true - planned_end_at: - description: 'The planned end at date for this ticket.' + version_fixed_id: + description: 'Foreign key: links a version fixed to this ticket.' type: string - format: date-time + format: uuid nullable: true canceled_at: description: 'The canceled at date for this ticket.' @@ -145,6 +135,16 @@ properties: type: string format: date-time nullable: true + planned_end_at: + description: 'The planned end at date for this ticket.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this ticket.' + type: string + format: date-time + nullable: true postponed_at: description: 'The postponed at date for this ticket.' type: string @@ -155,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this ticket.' + resolved_at: + description: 'The resolved at date for this ticket.' type: string format: date-time nullable: true @@ -165,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this ticket.' + suspended_at: + description: 'The suspended at date for this ticket.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this ticket.' + timer_end_at: + description: 'The timer end at date for this ticket.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this ticket.' type: string format: date-time nullable: true @@ -243,9 +248,15 @@ properties: completed: description: 'Flags: completed' type: boolean + cron: + description: 'Flags: cron' + type: boolean duplicate: description: 'Flags: duplicate' type: boolean + featured: + description: 'Flags: featured' + type: boolean fixed: description: 'Flags: fixed' type: boolean @@ -264,6 +275,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -273,11 +287,14 @@ properties: released: description: 'Flags: released' type: boolean + resolved: + description: 'Flags: resolved' + type: boolean retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -285,6 +302,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the ticket.' + type: string + maxLength: 255 label: description: 'The label of the ticket.' type: string @@ -322,56 +343,70 @@ properties: description: 'The summary of the ticket. Allows HTML.' type: string nullable: true - key: - description: 'The key of the ticket.' - type: string - maxLength: 64 handler: description: 'The handler of the ticket.' type: string + nullable: true + key: + description: 'The key of the ticket.' + type: string maxLength: 32 + nullable: true code: description: 'The code of the ticket.' type: integer format: int64 + nullable: true key_code_hash: description: 'The key code hash of the ticket.' type: string - maxLength: 32 + nullable: true priority: description: 'The priority of the ticket.' type: string - maxLength: 32 + nullable: true severity: description: 'The severity of the ticket.' type: string - maxLength: 32 + nullable: true resolution: description: 'The resolution of the ticket.' type: string - maxLength: 32 + nullable: true step: description: 'The step of the ticket.' type: string - maxLength: 32 + nullable: true state: description: 'The state of the ticket.' type: string - maxLength: 32 + nullable: true workflow_type: description: 'The workflow type of the ticket.' type: string - maxLength: 128 + nullable: true points: description: 'The points of the ticket.' type: integer - format: int32 + format: int64 + actual: + description: 'The actual of the ticket.' + type: string + nullable: true + expected: + description: 'The expected of the ticket.' + type: string + nullable: true story: - description: 'The story of the ticket. Allows HTML.' + description: 'The story of the ticket.' + type: string + nullable: true + steps: + description: 'The steps of the ticket.' type: string nullable: true criteria: - description: 'The criteria of the ticket. Allows HTML.' + description: 'The criteria of the ticket.' type: string nullable: true reproducibility: diff --git a/docs/requests/ticket/post.yml b/docs/requests/ticket/post.yml index a648564..ac6f569 100644 --- a/docs/requests/ticket/post.yml +++ b/docs/requests/ticket/post.yml @@ -1,22 +1,17 @@ description: 'The Matrix Ticket fillable properties.' type: object properties: + ticket_type: + description: 'The ticket type of this ticket.' + type: string + nullable: true owned_by_id: description: 'Foreign key: links an owned by user to this ticket.' type: string format: uuid nullable: true parent_id: - description: 'Foreign key: links a parent to this ticket.' - type: string - format: uuid - nullable: true - ticket_type: - description: 'The ticket type of this ticket.' - type: string - nullable: true - duplicate_id: - description: 'Foreign key: links a duplicate to this ticket.' + description: 'ID: a parent of this ticket.' type: string format: uuid nullable: true @@ -30,11 +25,6 @@ properties: type: string format: uuid nullable: true - completed_by_id: - description: 'Foreign key: links a completed by user to this ticket.' - type: string - format: uuid - nullable: true epic_id: description: 'Foreign key: links an epic to this ticket.' type: string @@ -45,6 +35,11 @@ properties: type: string format: uuid nullable: true + matrix_id: + description: 'Foreign key: links a matrix to this ticket.' + type: string + format: uuid + nullable: true milestone_id: description: 'Foreign key: links a milestone to this ticket.' type: string @@ -65,11 +60,6 @@ properties: type: string format: uuid nullable: true - reported_by_id: - description: 'Foreign key: links a reported by user to this ticket.' - type: string - format: uuid - nullable: true roadmap_id: description: 'Foreign key: links a roadmap to this ticket.' type: string @@ -100,30 +90,30 @@ properties: type: string format: uuid nullable: true - version_fixed_id: - description: 'Foreign key: links a version fixed to this ticket.' + completed_by_id: + description: 'Foreign key: links a completed by user to this ticket.' type: string format: uuid nullable: true - start_at: - description: 'The start at date for this ticket.' + duplicate_id: + description: 'Foreign key: links a duplicate to this ticket.' type: string - format: date-time + format: uuid nullable: true - planned_start_at: - description: 'The planned start at date for this ticket.' + fixed_by_id: + description: 'Foreign key: links a fixed by user to this ticket.' type: string - format: date-time + format: uuid nullable: true - end_at: - description: 'The end at date for this ticket.' + reported_by_id: + description: 'Foreign key: links a reported by user to this ticket.' type: string - format: date-time + format: uuid nullable: true - planned_end_at: - description: 'The planned end at date for this ticket.' + version_fixed_id: + description: 'Foreign key: links a version fixed to this ticket.' type: string - format: date-time + format: uuid nullable: true canceled_at: description: 'The canceled at date for this ticket.' @@ -145,6 +135,16 @@ properties: type: string format: date-time nullable: true + planned_end_at: + description: 'The planned end at date for this ticket.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this ticket.' + type: string + format: date-time + nullable: true postponed_at: description: 'The postponed at date for this ticket.' type: string @@ -155,8 +155,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this ticket.' + resolved_at: + description: 'The resolved at date for this ticket.' type: string format: date-time nullable: true @@ -165,13 +165,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this ticket.' + suspended_at: + description: 'The suspended at date for this ticket.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this ticket.' + timer_end_at: + description: 'The timer end at date for this ticket.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this ticket.' type: string format: date-time nullable: true @@ -243,9 +248,15 @@ properties: completed: description: 'Flags: completed' type: boolean + cron: + description: 'Flags: cron' + type: boolean duplicate: description: 'Flags: duplicate' type: boolean + featured: + description: 'Flags: featured' + type: boolean fixed: description: 'Flags: fixed' type: boolean @@ -264,6 +275,9 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean @@ -273,11 +287,14 @@ properties: released: description: 'Flags: released' type: boolean + resolved: + description: 'Flags: resolved' + type: boolean retired: description: 'Flags: retired' type: boolean - resolved: - description: 'Flags: resolved' + special: + description: 'Flags: special' type: boolean suspended: description: 'Flags: suspended' @@ -285,6 +302,10 @@ properties: unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the ticket.' + type: string + maxLength: 255 label: description: 'The label of the ticket.' type: string @@ -322,56 +343,70 @@ properties: description: 'The summary of the ticket. Allows HTML.' type: string nullable: true - key: - description: 'The key of the ticket.' - type: string - maxLength: 64 handler: description: 'The handler of the ticket.' type: string + nullable: true + key: + description: 'The key of the ticket.' + type: string maxLength: 32 + nullable: true code: description: 'The code of the ticket.' type: integer format: int64 + nullable: true key_code_hash: description: 'The key code hash of the ticket.' type: string - maxLength: 32 + nullable: true priority: description: 'The priority of the ticket.' type: string - maxLength: 32 + nullable: true severity: description: 'The severity of the ticket.' type: string - maxLength: 32 + nullable: true resolution: description: 'The resolution of the ticket.' type: string - maxLength: 32 + nullable: true step: description: 'The step of the ticket.' type: string - maxLength: 32 + nullable: true state: description: 'The state of the ticket.' type: string - maxLength: 32 + nullable: true workflow_type: description: 'The workflow type of the ticket.' type: string - maxLength: 128 + nullable: true points: description: 'The points of the ticket.' type: integer - format: int32 + format: int64 + actual: + description: 'The actual of the ticket.' + type: string + nullable: true + expected: + description: 'The expected of the ticket.' + type: string + nullable: true story: - description: 'The story of the ticket. Allows HTML.' + description: 'The story of the ticket.' + type: string + nullable: true + steps: + description: 'The steps of the ticket.' type: string nullable: true criteria: - description: 'The criteria of the ticket. Allows HTML.' + description: 'The criteria of the ticket.' type: string nullable: true reproducibility: diff --git a/docs/requests/version/form.yml b/docs/requests/version/form.yml new file mode 100644 index 0000000..fe83543 --- /dev/null +++ b/docs/requests/version/form.yml @@ -0,0 +1,31 @@ +description: 'The Matrix Version index form.' +type: object +properties: + perPage: + description: 'Specify the number of records to display per page for pagination.' + type: integer + example: 10 + page: + description: 'Select a page for pagination.' + type: integer + example: 1 + offset: + description: 'Select the zero-based index offset for pagination.' + type: integer + example: 0 + filter: + description: 'Filter options for the Version.' + type: object + properties: + trash: + description: 'Filter trash options' + type: integer + example: 1 + enum: + - with + - only + - '' + page_type: + description: 'The Version type of this Version.' + type: integer + example: 1 diff --git a/docs/requests/version/patch.yml b/docs/requests/version/patch.yml index b8952af..50fef68 100644 --- a/docs/requests/version/patch.yml +++ b/docs/requests/version/patch.yml @@ -1,47 +1,22 @@ description: 'The Matrix Version fillable properties.' type: object properties: - owned_by_id: - description: 'Foreign key: links an owned by user to this version.' - type: string - format: uuid - nullable: true - parent_id: - description: 'Foreign key: links a parent to this version.' - type: string - format: uuid - nullable: true version_type: description: 'The version type of this version.' type: string nullable: true - backlog_id: - description: 'Foreign key: links a backlog to this version.' - type: string - format: uuid - nullable: true - board_id: - description: 'Foreign key: links a board to this version.' - type: string - format: uuid - nullable: true - epic_id: - description: 'Foreign key: links an epic to this version.' - type: string - format: uuid - nullable: true - flow_id: - description: 'Foreign key: links a flow to this version.' + owned_by_id: + description: 'Foreign key: links an owned by user to this version.' type: string format: uuid nullable: true - milestone_id: - description: 'Foreign key: links a milestone to this version.' + parent_id: + description: 'ID: a parent of this version.' type: string format: uuid nullable: true - note_id: - description: 'Foreign key: links a note to this version.' + matrix_id: + description: 'Foreign key: links a matrix to this version.' type: string format: uuid nullable: true @@ -50,26 +25,6 @@ properties: type: string format: uuid nullable: true - release_id: - description: 'Foreign key: links a release to this version.' - type: string - format: uuid - nullable: true - roadmap_id: - description: 'Foreign key: links a roadmap to this version.' - type: string - format: uuid - nullable: true - source_id: - description: 'Foreign key: links a source to this version.' - type: string - format: uuid - nullable: true - sprint_id: - description: 'Foreign key: links a sprint to this version.' - type: string - format: uuid - nullable: true tag_id: description: 'Foreign key: links a tag to this version.' type: string @@ -85,26 +40,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this version.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this version.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this version.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this version.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this version.' type: string @@ -120,8 +55,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this version.' + planned_end_at: + description: 'The planned end at date for this version.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this version.' type: string format: date-time nullable: true @@ -135,8 +75,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this version.' + resolved_at: + description: 'The resolved at date for this version.' type: string format: date-time nullable: true @@ -145,13 +85,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this version.' + suspended_at: + description: 'The suspended at date for this version.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this version.' + timer_end_at: + description: 'The timer end at date for this version.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this version.' type: string format: date-time nullable: true @@ -214,6 +159,24 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean + fixed: + description: 'Flags: fixed' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +192,45 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean + resolved: + description: 'Flags: resolved' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the version.' + type: string + maxLength: 255 label: description: 'The label of the version.' type: string maxLength: 128 + title: + description: 'The title of the version.' + type: string + maxLength: 255 byline: description: 'The byline of the version.' type: string @@ -281,18 +264,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -301,10 +272,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/docs/requests/version/post.yml b/docs/requests/version/post.yml index b8952af..50fef68 100644 --- a/docs/requests/version/post.yml +++ b/docs/requests/version/post.yml @@ -1,47 +1,22 @@ description: 'The Matrix Version fillable properties.' type: object properties: - owned_by_id: - description: 'Foreign key: links an owned by user to this version.' - type: string - format: uuid - nullable: true - parent_id: - description: 'Foreign key: links a parent to this version.' - type: string - format: uuid - nullable: true version_type: description: 'The version type of this version.' type: string nullable: true - backlog_id: - description: 'Foreign key: links a backlog to this version.' - type: string - format: uuid - nullable: true - board_id: - description: 'Foreign key: links a board to this version.' - type: string - format: uuid - nullable: true - epic_id: - description: 'Foreign key: links an epic to this version.' - type: string - format: uuid - nullable: true - flow_id: - description: 'Foreign key: links a flow to this version.' + owned_by_id: + description: 'Foreign key: links an owned by user to this version.' type: string format: uuid nullable: true - milestone_id: - description: 'Foreign key: links a milestone to this version.' + parent_id: + description: 'ID: a parent of this version.' type: string format: uuid nullable: true - note_id: - description: 'Foreign key: links a note to this version.' + matrix_id: + description: 'Foreign key: links a matrix to this version.' type: string format: uuid nullable: true @@ -50,26 +25,6 @@ properties: type: string format: uuid nullable: true - release_id: - description: 'Foreign key: links a release to this version.' - type: string - format: uuid - nullable: true - roadmap_id: - description: 'Foreign key: links a roadmap to this version.' - type: string - format: uuid - nullable: true - source_id: - description: 'Foreign key: links a source to this version.' - type: string - format: uuid - nullable: true - sprint_id: - description: 'Foreign key: links a sprint to this version.' - type: string - format: uuid - nullable: true tag_id: description: 'Foreign key: links a tag to this version.' type: string @@ -85,26 +40,6 @@ properties: type: string format: uuid nullable: true - start_at: - description: 'The start at date for this version.' - type: string - format: date-time - nullable: true - planned_start_at: - description: 'The planned start at date for this version.' - type: string - format: date-time - nullable: true - end_at: - description: 'The end at date for this version.' - type: string - format: date-time - nullable: true - planned_end_at: - description: 'The planned end at date for this version.' - type: string - format: date-time - nullable: true canceled_at: description: 'The canceled at date for this version.' type: string @@ -120,8 +55,13 @@ properties: type: string format: date-time nullable: true - fixed_at: - description: 'The fixed at date for this version.' + planned_end_at: + description: 'The planned end at date for this version.' + type: string + format: date-time + nullable: true + planned_start_at: + description: 'The planned start at date for this version.' type: string format: date-time nullable: true @@ -135,8 +75,8 @@ properties: type: string format: date-time nullable: true - released_at: - description: 'The released at date for this version.' + resolved_at: + description: 'The resolved at date for this version.' type: string format: date-time nullable: true @@ -145,13 +85,18 @@ properties: type: string format: date-time nullable: true - resolved_at: - description: 'The resolved at date for this version.' + suspended_at: + description: 'The suspended at date for this version.' type: string format: date-time nullable: true - suspended_at: - description: 'The suspended at date for this version.' + timer_end_at: + description: 'The timer end at date for this version.' + type: string + format: date-time + nullable: true + timer_start_at: + description: 'The timer start at date for this version.' type: string format: date-time nullable: true @@ -214,6 +159,24 @@ properties: active: description: 'Flags: active' type: boolean + canceled: + description: 'Flags: canceled' + type: boolean + closed: + description: 'Flags: closed' + type: boolean + completed: + description: 'Flags: completed' + type: boolean + cron: + description: 'Flags: cron' + type: boolean + featured: + description: 'Flags: featured' + type: boolean + fixed: + description: 'Flags: fixed' + type: boolean flagged: description: 'Flags: flagged' type: boolean @@ -229,25 +192,45 @@ properties: planned: description: 'Flags: planned' type: boolean + prioritized: + description: 'Flags: prioritized' + type: boolean problem: description: 'Flags: problem' type: boolean published: description: 'Flags: published' type: boolean + released: + description: 'Flags: released' + type: boolean + resolved: + description: 'Flags: resolved' + type: boolean retired: description: 'Flags: retired' type: boolean + special: + description: 'Flags: special' + type: boolean suspended: description: 'Flags: suspended' type: boolean unknown: description: 'Flags: unknown' type: boolean + locale: + description: 'The locale of the version.' + type: string + maxLength: 255 label: description: 'The label of the version.' type: string maxLength: 128 + title: + description: 'The title of the version.' + type: string + maxLength: 255 byline: description: 'The byline of the version.' type: string @@ -281,18 +264,6 @@ properties: description: 'JSON: assets' type: object nullable: true - backlog: - description: 'JSON: backlog' - type: object - nullable: true - board: - description: 'JSON: board' - type: object - nullable: true - flow: - description: 'JSON: flow' - type: object - nullable: true meta: description: 'JSON: meta' type: object @@ -301,10 +272,6 @@ properties: description: 'JSON: options' type: object nullable: true - roadmap: - description: 'JSON: roadmap' - type: object - nullable: true sources: description: 'JSON: sources' type: object diff --git a/phpstan.neon.dist b/phpstan.neon.dist index ff74843..5efbc1f 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -8,6 +8,8 @@ parameters: paths: - config + #- lang + - resources - routes - src - tests diff --git a/phpunit-ci.xml b/phpunit-ci.xml index 6d0ae50..03c11eb 100644 --- a/phpunit-ci.xml +++ b/phpunit-ci.xml @@ -1,6 +1,5 @@ - - + - + @@ -58,14 +57,13 @@ - + - diff --git a/phpunit.xml.dev b/phpunit.xml.dev index ca46d9f..1238dda 100644 --- a/phpunit.xml.dev +++ b/phpunit.xml.dev @@ -1,6 +1,5 @@ - - + - + @@ -58,14 +57,13 @@ - + - diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 56d3c35..fd5e001 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,6 +1,5 @@ - - + - + @@ -58,14 +57,13 @@ - + - diff --git a/resources/views/backlog/form-info.blade.php b/resources/views/backlog/form-info.blade.php index 4505f4c..42b3432 100644 --- a/resources/views/backlog/form-info.blade.php +++ b/resources/views/backlog/form-info.blade.php @@ -16,13 +16,14 @@ @if (!empty($parents)) - + @endif diff --git a/resources/views/backlog/index.blade.php b/resources/views/backlog/index.blade.php index 605c4e9..0445b04 100644 --- a/resources/views/backlog/index.blade.php +++ b/resources/views/backlog/index.blade.php @@ -1,77 +1,413 @@ [ + 'hide-sm' => false, + 'label' => 'Backlog Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'board_id' => [ + 'hide-sm' => true, + 'label' => 'Board id', + ], + 'epic_id' => [ + 'hide-sm' => true, + 'label' => 'Epic id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'milestone_id' => [ + 'hide-sm' => true, + 'label' => 'Milestone id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'release_id' => [ + 'hide-sm' => true, + 'label' => 'Release id', + ], + 'roadmap_id' => [ + 'hide-sm' => true, + 'label' => 'Roadmap id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'sprint_id' => [ + 'hide-sm' => true, + 'label' => 'Sprint id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'backlog_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'backlog_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/board/form-info.blade.php b/resources/views/board/form-info.blade.php index 37d2f74..ac1e892 100644 --- a/resources/views/board/form-info.blade.php +++ b/resources/views/board/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/board/index.blade.php b/resources/views/board/index.blade.php index 605c4e9..12e033a 100644 --- a/resources/views/board/index.blade.php +++ b/resources/views/board/index.blade.php @@ -1,77 +1,413 @@ [ + 'hide-sm' => false, + 'label' => 'Board Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'backlog_id' => [ + 'hide-sm' => true, + 'label' => 'Backlog id', + ], + 'epic_id' => [ + 'hide-sm' => true, + 'label' => 'Epic id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'milestone_id' => [ + 'hide-sm' => true, + 'label' => 'Milestone id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'release_id' => [ + 'hide-sm' => true, + 'label' => 'Release id', + ], + 'roadmap_id' => [ + 'hide-sm' => true, + 'label' => 'Roadmap id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'sprint_id' => [ + 'hide-sm' => true, + 'label' => 'Sprint id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'board_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'board_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/epic/form-info.blade.php b/resources/views/epic/form-info.blade.php index f0b168f..215f7ca 100644 --- a/resources/views/epic/form-info.blade.php +++ b/resources/views/epic/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/epic/index.blade.php b/resources/views/epic/index.blade.php index 605c4e9..3922be2 100644 --- a/resources/views/epic/index.blade.php +++ b/resources/views/epic/index.blade.php @@ -1,77 +1,413 @@ [ + 'hide-sm' => false, + 'label' => 'Epic Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'backlog_id' => [ + 'hide-sm' => true, + 'label' => 'Backlog id', + ], + 'board_id' => [ + 'hide-sm' => true, + 'label' => 'Board id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'milestone_id' => [ + 'hide-sm' => true, + 'label' => 'Milestone id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'release_id' => [ + 'hide-sm' => true, + 'label' => 'Release id', + ], + 'roadmap_id' => [ + 'hide-sm' => true, + 'label' => 'Roadmap id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'sprint_id' => [ + 'hide-sm' => true, + 'label' => 'Sprint id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'epic_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'epic_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/flow/form-info.blade.php b/resources/views/flow/form-info.blade.php index 99f7200..31351b1 100644 --- a/resources/views/flow/form-info.blade.php +++ b/resources/views/flow/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/flow/index.blade.php b/resources/views/flow/index.blade.php index 605c4e9..cc15979 100644 --- a/resources/views/flow/index.blade.php +++ b/resources/views/flow/index.blade.php @@ -1,77 +1,369 @@ [ + 'hide-sm' => false, + 'label' => 'Flow Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'flow_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'flow_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index a0954c9..4974676 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -22,9 +22,7 @@

Matrix

-
-
@@ -35,7 +33,6 @@
-
@@ -46,7 +43,6 @@
-
@@ -57,7 +53,6 @@
-
@@ -68,7 +63,16 @@
- +
+
+
+
Matrices
+
Manage matrices
+

+ View Matrices +
+
+
@@ -79,7 +83,6 @@
-
@@ -90,7 +93,6 @@
-
@@ -101,7 +103,6 @@
-
@@ -112,7 +113,6 @@
-
@@ -123,7 +123,6 @@
-
@@ -134,7 +133,6 @@
-
@@ -145,7 +143,6 @@
-
@@ -156,7 +153,6 @@
-
@@ -167,7 +163,6 @@
-
@@ -178,7 +173,6 @@
-
diff --git a/resources/views/matrix/detail.blade.php b/resources/views/matrix/detail.blade.php new file mode 100644 index 0000000..0349843 --- /dev/null +++ b/resources/views/matrix/detail.blade.php @@ -0,0 +1 @@ +@extends('playground::layouts.resource.detail') diff --git a/resources/views/matrix/form-info.blade.php b/resources/views/matrix/form-info.blade.php new file mode 100644 index 0000000..2b70727 --- /dev/null +++ b/resources/views/matrix/form-info.blade.php @@ -0,0 +1,29 @@ +
+ + Information + + + You should provide a title. + + + + + + + + + + @if (!empty($parents)) + + @endif + +
diff --git a/resources/views/matrix/form-publishing.blade.php b/resources/views/matrix/form-publishing.blade.php new file mode 100644 index 0000000..edda362 --- /dev/null +++ b/resources/views/matrix/form-publishing.blade.php @@ -0,0 +1,29 @@ +
+ + Publishing + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
diff --git a/resources/views/matrix/form-status.blade.php b/resources/views/matrix/form-status.blade.php new file mode 100644 index 0000000..f68b35d --- /dev/null +++ b/resources/views/matrix/form-status.blade.php @@ -0,0 +1,125 @@ +
+ + Status + +
+ +
+
+
+ + + +
+
+
+
+ + + +
+
+
+
+ + + +
+
+
+ +
+
+
+ + + +
+
+
+
+ + + +
+
+
+
+ + + +
+
+
+ +
+
+
+ + + +
+
+ {{--
+
+ + + +
+
--}} +
+
+ + + +
+
+
+
+ + + +
+
+
+
+ +
+ + Access + + +
+
+
+ + + +
+
+
+
+ + + +
+
+
+
+ + + +
+
+
+
+ + + +
+
+
+
+ + +
diff --git a/resources/views/matrix/form.blade.php b/resources/views/matrix/form.blade.php new file mode 100644 index 0000000..a5fa304 --- /dev/null +++ b/resources/views/matrix/form.blade.php @@ -0,0 +1,8 @@ +@extends('playground::layouts.resource.form', [ + 'withFormInfo' => 'playground-matrix-resource::matrix/form-info', + 'withFormStatus' => 'playground-matrix-resource::matrix/form-status', +]) + +@section('form-tertiary') +@include('playground-matrix-resource::matrix/form-publishing') +@endsection diff --git a/resources/views/matrix/index.blade.php b/resources/views/matrix/index.blade.php new file mode 100644 index 0000000..7df0b25 --- /dev/null +++ b/resources/views/matrix/index.blade.php @@ -0,0 +1,353 @@ + [ + 'hide-sm' => false, + 'label' => 'Matrix Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'matrix_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'matrix_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + +?> + +@extends('playground::layouts.resource.index', [ + 'withTableColumns' => $columns, +]) diff --git a/resources/views/milestone/form-info.blade.php b/resources/views/milestone/form-info.blade.php index 8ace47e..a17742d 100644 --- a/resources/views/milestone/form-info.blade.php +++ b/resources/views/milestone/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/milestone/index.blade.php b/resources/views/milestone/index.blade.php index 605c4e9..6f6d5af 100644 --- a/resources/views/milestone/index.blade.php +++ b/resources/views/milestone/index.blade.php @@ -1,77 +1,413 @@ [ + 'hide-sm' => false, + 'label' => 'Milestone Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'backlog_id' => [ + 'hide-sm' => true, + 'label' => 'Backlog id', + ], + 'board_id' => [ + 'hide-sm' => true, + 'label' => 'Board id', + ], + 'epic_id' => [ + 'hide-sm' => true, + 'label' => 'Epic id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'release_id' => [ + 'hide-sm' => true, + 'label' => 'Release id', + ], + 'roadmap_id' => [ + 'hide-sm' => true, + 'label' => 'Roadmap id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'sprint_id' => [ + 'hide-sm' => true, + 'label' => 'Sprint id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'milestone_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'milestone_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/note/form-info.blade.php b/resources/views/note/form-info.blade.php index 27f9826..eb8174c 100644 --- a/resources/views/note/form-info.blade.php +++ b/resources/views/note/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/note/index.blade.php b/resources/views/note/index.blade.php index 605c4e9..a75d154 100644 --- a/resources/views/note/index.blade.php +++ b/resources/views/note/index.blade.php @@ -1,77 +1,313 @@ [ + 'hide-sm' => false, + 'label' => 'Note Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'note_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'note_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/project/form-info.blade.php b/resources/views/project/form-info.blade.php index c49a72d..8042816 100644 --- a/resources/views/project/form-info.blade.php +++ b/resources/views/project/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/project/index.blade.php b/resources/views/project/index.blade.php index 605c4e9..0a375bc 100644 --- a/resources/views/project/index.blade.php +++ b/resources/views/project/index.blade.php @@ -1,77 +1,443 @@ [ + 'hide-sm' => false, + 'label' => 'Project Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'backlog_id' => [ + 'hide-sm' => true, + 'label' => 'Backlog id', + ], + 'board_id' => [ + 'hide-sm' => true, + 'label' => 'Board id', + ], + 'epic_id' => [ + 'hide-sm' => true, + 'label' => 'Epic id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'milestone_id' => [ + 'hide-sm' => true, + 'label' => 'Milestone id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'release_id' => [ + 'hide-sm' => true, + 'label' => 'Release id', + ], + 'roadmap_id' => [ + 'hide-sm' => true, + 'label' => 'Roadmap id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'sprint_id' => [ + 'hide-sm' => true, + 'label' => 'Sprint id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'key' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Key', + ], + 'code_name' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Code name', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'duplicate' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Duplicate', + 'onTrueClass' => 'fa-solid fa-clone', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'fixed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Fixed', + 'onTrueClass' => 'fa-solid fa-wrench', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'resolved' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Resolved', + 'onTrueClass' => 'fa-solid fa-check-double text-success', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'project_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'project_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/release/form-info.blade.php b/resources/views/release/form-info.blade.php index ac5561d..e5911a2 100644 --- a/resources/views/release/form-info.blade.php +++ b/resources/views/release/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/release/index.blade.php b/resources/views/release/index.blade.php index 605c4e9..4a698e0 100644 --- a/resources/views/release/index.blade.php +++ b/resources/views/release/index.blade.php @@ -1,77 +1,413 @@ [ + 'hide-sm' => false, + 'label' => 'Release Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'backlog_id' => [ + 'hide-sm' => true, + 'label' => 'Backlog id', + ], + 'board_id' => [ + 'hide-sm' => true, + 'label' => 'Board id', + ], + 'epic_id' => [ + 'hide-sm' => true, + 'label' => 'Epic id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'milestone_id' => [ + 'hide-sm' => true, + 'label' => 'Milestone id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'roadmap_id' => [ + 'hide-sm' => true, + 'label' => 'Roadmap id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'sprint_id' => [ + 'hide-sm' => true, + 'label' => 'Sprint id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'release_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'release_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/roadmap/form-info.blade.php b/resources/views/roadmap/form-info.blade.php index dfc4483..1aaefbf 100644 --- a/resources/views/roadmap/form-info.blade.php +++ b/resources/views/roadmap/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/roadmap/index.blade.php b/resources/views/roadmap/index.blade.php index 605c4e9..e74d80d 100644 --- a/resources/views/roadmap/index.blade.php +++ b/resources/views/roadmap/index.blade.php @@ -1,77 +1,413 @@ [ + 'hide-sm' => false, + 'label' => 'Roadmap Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'backlog_id' => [ + 'hide-sm' => true, + 'label' => 'Backlog id', + ], + 'board_id' => [ + 'hide-sm' => true, + 'label' => 'Board id', + ], + 'epic_id' => [ + 'hide-sm' => true, + 'label' => 'Epic id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'milestone_id' => [ + 'hide-sm' => true, + 'label' => 'Milestone id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'release_id' => [ + 'hide-sm' => true, + 'label' => 'Release id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'sprint_id' => [ + 'hide-sm' => true, + 'label' => 'Sprint id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'roadmap_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'roadmap_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/sitemap.blade.php b/resources/views/sitemap.blade.php index 3aca205..30ffcd1 100644 --- a/resources/views/sitemap.blade.php +++ b/resources/views/sitemap.blade.php @@ -1,3 +1,123 @@ + false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:backlog:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewBoards = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:board:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewEpics = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:epic:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewFlows = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:flow:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewMatrices = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:matrix:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewMilestones = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:milestone:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewNotes = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:note:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewProjects = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:project:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewReleases = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:release:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewRoadmaps = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:roadmap:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewSources = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:source:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewSprints = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:sprint:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewTags = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:tag:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewTeams = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:team:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewTickets = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:ticket:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + +$viewVersions = \Playground\Auth\Facades\Can::access($user, [ + 'allow' => false, + 'any' => true, + 'privilege' => 'playground-matrix-resource:version:viewAny', + 'roles' => ['admin', 'manager', 'publisher'], +])->allowed(); + + +if (!$viewBacklogs && !$viewBoards && !$viewEpics && !$viewFlows && !$viewMatrices && !$viewMilestones && !$viewNotes && !$viewProjects && !$viewReleases && !$viewRoadmaps && !$viewSources && !$viewSprints && !$viewTags && !$viewTeams && !$viewTickets && !$viewVersions) { + return; +} +?>
@@ -8,49 +128,107 @@
- Project Management and Planning - projects, notes, sprints, tickets... + Matrix Index + backlogs, boards, epics, flows, matrices, milestones, notes, projects, releases, roadmaps, sources, sprints, tags, teams, tickets and versions
diff --git a/resources/views/source/form-info.blade.php b/resources/views/source/form-info.blade.php index c1bf757..b91d28c 100644 --- a/resources/views/source/form-info.blade.php +++ b/resources/views/source/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/source/index.blade.php b/resources/views/source/index.blade.php index 605c4e9..7e56923 100644 --- a/resources/views/source/index.blade.php +++ b/resources/views/source/index.blade.php @@ -1,77 +1,369 @@ [ + 'hide-sm' => false, + 'label' => 'Source Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'source_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'source_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/sprint/form-info.blade.php b/resources/views/sprint/form-info.blade.php index 4774dc6..db92d9e 100644 --- a/resources/views/sprint/form-info.blade.php +++ b/resources/views/sprint/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/sprint/index.blade.php b/resources/views/sprint/index.blade.php index 605c4e9..e2766ec 100644 --- a/resources/views/sprint/index.blade.php +++ b/resources/views/sprint/index.blade.php @@ -1,77 +1,413 @@ [ + 'hide-sm' => false, + 'label' => 'Sprint Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'backlog_id' => [ + 'hide-sm' => true, + 'label' => 'Backlog id', + ], + 'board_id' => [ + 'hide-sm' => true, + 'label' => 'Board id', + ], + 'epic_id' => [ + 'hide-sm' => true, + 'label' => 'Epic id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'milestone_id' => [ + 'hide-sm' => true, + 'label' => 'Milestone id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'release_id' => [ + 'hide-sm' => true, + 'label' => 'Release id', + ], + 'roadmap_id' => [ + 'hide-sm' => true, + 'label' => 'Roadmap id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'sprint_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'sprint_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/tag/form-info.blade.php b/resources/views/tag/form-info.blade.php index de464ee..5912080 100644 --- a/resources/views/tag/form-info.blade.php +++ b/resources/views/tag/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/tag/index.blade.php b/resources/views/tag/index.blade.php index 605c4e9..d5567b7 100644 --- a/resources/views/tag/index.blade.php +++ b/resources/views/tag/index.blade.php @@ -1,77 +1,249 @@ [ + 'hide-sm' => false, + 'label' => 'Tag Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'tag_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'tag_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/team/form-info.blade.php b/resources/views/team/form-info.blade.php index 9a31b2f..fd7d4e3 100644 --- a/resources/views/team/form-info.blade.php +++ b/resources/views/team/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/team/index.blade.php b/resources/views/team/index.blade.php index 605c4e9..efbe910 100644 --- a/resources/views/team/index.blade.php +++ b/resources/views/team/index.blade.php @@ -1,77 +1,413 @@ [ + 'hide-sm' => false, + 'label' => 'Team Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'backlog_id' => [ + 'hide-sm' => true, + 'label' => 'Backlog id', + ], + 'board_id' => [ + 'hide-sm' => true, + 'label' => 'Board id', + ], + 'epic_id' => [ + 'hide-sm' => true, + 'label' => 'Epic id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'milestone_id' => [ + 'hide-sm' => true, + 'label' => 'Milestone id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'release_id' => [ + 'hide-sm' => true, + 'label' => 'Release id', + ], + 'roadmap_id' => [ + 'hide-sm' => true, + 'label' => 'Roadmap id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'sprint_id' => [ + 'hide-sm' => true, + 'label' => 'Sprint id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'team_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'team_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/ticket/form-info.blade.php b/resources/views/ticket/form-info.blade.php index f583cd3..459e76e 100644 --- a/resources/views/ticket/form-info.blade.php +++ b/resources/views/ticket/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/ticket/index.blade.php b/resources/views/ticket/index.blade.php index 605c4e9..7820ead 100644 --- a/resources/views/ticket/index.blade.php +++ b/resources/views/ticket/index.blade.php @@ -1,77 +1,557 @@ [ + 'hide-sm' => false, + 'label' => 'Ticket Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'backlog_id' => [ + 'hide-sm' => true, + 'label' => 'Backlog id', + ], + 'board_id' => [ + 'hide-sm' => true, + 'label' => 'Board id', + ], + 'epic_id' => [ + 'hide-sm' => true, + 'label' => 'Epic id', + ], + 'flow_id' => [ + 'hide-sm' => true, + 'label' => 'Flow id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'milestone_id' => [ + 'hide-sm' => true, + 'label' => 'Milestone id', + ], + 'note_id' => [ + 'hide-sm' => true, + 'label' => 'Note id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'release_id' => [ + 'hide-sm' => true, + 'label' => 'Release id', + ], + 'roadmap_id' => [ + 'hide-sm' => true, + 'label' => 'Roadmap id', + ], + 'source_id' => [ + 'hide-sm' => true, + 'label' => 'Source id', + ], + 'sprint_id' => [ + 'hide-sm' => true, + 'label' => 'Sprint id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'version_id' => [ + 'hide-sm' => true, + 'label' => 'Version id', + ], + 'completed_by_id' => [ + 'hide-sm' => true, + 'label' => 'Completed by id', + ], + 'duplicate_id' => [ + 'hide-sm' => true, + 'label' => 'Duplicate id', + ], + 'fixed_by_id' => [ + 'hide-sm' => true, + 'label' => 'Fixed by id', + ], + 'reported_by_id' => [ + 'hide-sm' => true, + 'label' => 'Reported by id', + ], + 'version_fixed_id' => [ + 'hide-sm' => true, + 'label' => 'Version fixed id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'handler' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Handler', + ], + 'key' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Key', + ], + 'code' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Code', + ], + 'key_code_hash' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Key code hash', + ], + 'priority' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Priority', + ], + 'severity' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Severity', + ], + 'resolution' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Resolution', + ], + 'step' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Step', + ], + 'state' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'State', + ], + 'workflow_type' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Workflow type', + ], + 'points' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Points', + ], + 'actual' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Actual', + ], + 'expected' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Expected', + ], + 'story' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Story', + ], + 'steps' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Steps', + ], + 'criteria' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Criteria', + ], + 'reproducibility' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Reproducibility', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'duplicate' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Duplicate', + 'onTrueClass' => 'fa-solid fa-clone', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'fixed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Fixed', + 'onTrueClass' => 'fa-solid fa-wrench', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'resolved' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Resolved', + 'onTrueClass' => 'fa-solid fa-check-double text-success', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'fixed_at' => [ + 'hide-sm' => true, + 'label' => 'Fixed at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'ticket_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'ticket_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/resources/views/version/form-info.blade.php b/resources/views/version/form-info.blade.php index aea9d58..57660a3 100644 --- a/resources/views/version/form-info.blade.php +++ b/resources/views/version/form-info.blade.php @@ -16,10 +16,11 @@ - + @if (!empty($parents)) diff --git a/resources/views/version/index.blade.php b/resources/views/version/index.blade.php index 605c4e9..4bc6b37 100644 --- a/resources/views/version/index.blade.php +++ b/resources/views/version/index.blade.php @@ -1,77 +1,385 @@ [ + 'hide-sm' => false, + 'label' => 'Version Type', + ], + 'created_by_id' => [ + 'hide-sm' => true, + 'label' => 'Created by id', + ], + 'modified_by_id' => [ + 'hide-sm' => true, + 'label' => 'Modified by id', + ], + 'owned_by_id' => [ + 'hide-sm' => true, + 'label' => 'Owned by id', + ], + 'parent_id' => [ + 'hide-sm' => true, + 'label' => 'Parent id', + ], + 'matrix_id' => [ + 'hide-sm' => true, + 'label' => 'Matrix id', + ], + 'project_id' => [ + 'hide-sm' => true, + 'label' => 'Project id', + ], + 'tag_id' => [ + 'hide-sm' => true, + 'label' => 'Tag id', + ], + 'team_id' => [ + 'hide-sm' => true, + 'label' => 'Team id', + ], + 'ticket_id' => [ + 'hide-sm' => true, + 'label' => 'Ticket id', + ], + 'locale' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Locale', + ], + 'label' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Label', + ], + 'title' => [ + 'hide-sm' => false, + 'linkType' => 'id', + 'linkRoute' => sprintf('%1$s.show', $meta['info']['model_route']), + 'label' => 'Title', + ], + 'byline' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Byline', + ], + 'slug' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Slug', + ], + 'url' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Url', + ], + 'description' => [ + 'hide-sm' => false, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Description', + ], + 'introduction' => [ + 'hide-sm' => true, + 'linkType' => null, + 'linkRoute' => null, + 'label' => 'Introduction', + ], + 'icon' => [ + 'hide-sm' => true, + 'label' => 'Icon', + ], + 'image' => [ + 'hide-sm' => true, + 'label' => 'Image', + ], + 'avatar' => [ + 'hide-sm' => true, + 'label' => 'Avatar', + ], + 'active' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Active', + 'onTrueClass' => 'fa-solid fa-person-running', + ], + 'canceled' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Canceled', + 'onTrueClass' => 'fa-solid fa-ban text-warning', + ], + 'closed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Closed', + 'onTrueClass' => 'fa-solid fa-xmark', + ], + 'completed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Completed', + 'onTrueClass' => 'fa-solid fa-check', + ], + 'cron' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Cron', + 'onTrueClass' => 'fa-regular fa-clock', + ], + 'featured' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Featured', + 'onTrueClass' => 'fa-solid fa-star text-warning', + ], + 'fixed' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Fixed', + 'onTrueClass' => 'fa-solid fa-wrench', + ], + 'flagged' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Flagged', + 'onTrueClass' => 'fa-solid fa-flag', + ], + 'internal' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Internal', + 'onTrueClass' => 'fa-solid fa-server', + ], + 'locked' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Locked', + 'onTrueClass' => 'fa-solid fa-lock text-warning', + ], + 'pending' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Pending', + 'onTrueClass' => 'fa-solid fa-circle-pause text-warning', + ], + 'planned' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Planned', + 'onTrueClass' => 'fa-solid fa-circle-pause text-success', + ], + 'prioritized' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Prioritized', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-success', + ], + 'problem' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Problem', + 'onTrueClass' => 'fa-solid fa-triangle-exclamation text-danger', + ], + 'published' => [ + 'hide-sm' => false, + 'flag' => true, + 'label' => 'Published', + 'onTrueClass' => 'fa-solid fa-book', + ], + 'released' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Released', + 'onTrueClass' => 'fa-solid fa-dove', + ], + 'resolved' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Resolved', + 'onTrueClass' => 'fa-solid fa-check-double text-success', + ], + 'retired' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Retired', + 'onTrueClass' => 'fa-solid fa-chair text-success', + ], + 'special' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Special', + 'onTrueClass' => 'fa-solid fa-star text-success', + ], + 'suspended' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Suspended', + 'onTrueClass' => 'fa-solid fa-hand text-danger', + ], + 'unknown' => [ + 'hide-sm' => true, + 'flag' => true, + 'label' => 'Unknown', + 'onTrueClass' => 'fa-solid fa-question text-warning', + ], + 'created_at' => [ + 'hide-sm' => true, + 'label' => 'Created at', + ], + 'updated_at' => [ + 'hide-sm' => true, + 'label' => 'Updated at', + ], + 'canceled_at' => [ + 'hide-sm' => true, + 'label' => 'Canceled at', + ], + 'closed_at' => [ + 'hide-sm' => true, + 'label' => 'Closed at', + ], + 'embargo_at' => [ + 'hide-sm' => true, + 'label' => 'Embargo at', + ], + 'planned_end_at' => [ + 'hide-sm' => true, + 'label' => 'Planned end at', + ], + 'planned_start_at' => [ + 'hide-sm' => true, + 'label' => 'Planned start at', + ], + 'postponed_at' => [ + 'hide-sm' => true, + 'label' => 'Postponed at', + ], + 'published_at' => [ + 'hide-sm' => true, + 'label' => 'Published at', + ], + 'resolved_at' => [ + 'hide-sm' => true, + 'label' => 'Resolved at', + ], + 'resumed_at' => [ + 'hide-sm' => true, + 'label' => 'Resumed at', + ], + 'suspended_at' => [ + 'hide-sm' => true, + 'label' => 'Suspended at', + ], + 'timer_end_at' => [ + 'hide-sm' => true, + 'label' => 'Timer end at', + ], + 'timer_start_at' => [ + 'hide-sm' => true, + 'label' => 'Timer start at', + ], + 'gids' => [ + 'hide-sm' => true, + 'label' => 'Gids', + 'onTrueClass' => '', + ], + 'po' => [ + 'hide-sm' => true, + 'label' => 'Po', + 'onTrueClass' => '', + ], + 'pg' => [ + 'hide-sm' => true, + 'label' => 'Pg', + 'onTrueClass' => '', + ], + 'pw' => [ + 'hide-sm' => true, + 'label' => 'Pw', + 'onTrueClass' => '', + ], + 'only_admin' => [ + 'hide-sm' => true, + 'label' => 'Only admin', + 'onTrueClass' => 'fa-solid fa-user-gear', + ], + 'only_user' => [ + 'hide-sm' => true, + 'label' => 'Only user', + 'onTrueClass' => 'fa-solid fa-user', + ], + 'only_guest' => [ + 'hide-sm' => true, + 'label' => 'Only guest', + 'onTrueClass' => 'fa-solid fa-person-rays', + ], + 'allow_public' => [ + 'hide-sm' => true, + 'label' => 'Allow public', + 'onTrueClass' => 'fa-solid fa-users-line', + ], + 'status' => [ + 'hide-sm' => true, + 'label' => 'Status', + ], + 'rank' => [ + 'hide-sm' => true, + 'label' => 'Rank', + ], + 'size' => [ + 'hide-sm' => true, + 'label' => 'Size', + ], +]; + +$columnsMobile = [ + 'title', + 'version_type', + 'slug', + 'description', + 'published', +]; + +$columnsStandard = [ + 'title', + 'version_type', + 'slug', + 'label', + 'description', + 'published', + 'revision', + 'created_at', + 'updated_at', +]; + +$viewableColumns = ! empty($validated['columns']) + && is_string($validated['columns']) + && in_array($validated['columns'], [ + 'all', + 'standard', + 'mobile', + ]) ? $validated['columns'] : 'standard'; + +if ($viewableColumns === 'all') { + $columns = $columnsViewable; +} elseif ($viewableColumns === 'mobile') { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsMobile); +} else { + $columns = Illuminate\Support\Arr::only($columnsViewable, $columnsStandard); +} + ?> + @extends('playground::layouts.resource.index', [ - // 'withTableColumns' => [ - // 'label' => [ - // 'linkType' => 'id', - // // 'linkRoute' => sprintf('%1$s.id', $apiInfo['model_route']), - // 'label' => 'Title', - // ], - // 'slug' => [ - // 'hide-sm' => true, - // // 'linkType' => 'slug', - // // 'linkRoute' => sprintf('%1$s.slug', $apiInfo['model_route']), - // 'label' => 'Slug', - // ], - // 'active' => [ - // 'flag' => true, - // 'label' => 'Active', - // 'onTrueClass' => 'fas fa-check text-success', - // ], - // 'locked' => [ - // 'flag' => true, - // 'label' => 'Locked', - // 'onTrueClass' => 'fas fa-lock text-success', - // ], - // 'published' => [ - // 'flag' => true, - // 'label' => 'Published', - // 'onTrueClass' => 'fas fa-upload text-primary', - // ], - // 'flagged' => [ - // 'flag' => true, - // 'label' => 'Flagged', - // 'onTrueClass' => 'fas fa-flag text-warning', - // ], - // 'allow_public' => [ - // 'flag' => true, - // 'label' => 'Public', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-users text-success', - // ], - // 'only_admin' => [ - // 'flag' => true, - // 'label' => 'Admin Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user-shield text-danger', - // ], - // 'only_user' => [ - // 'flag' => true, - // 'label' => 'User Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-warning', - // ], - // 'only_guest' => [ - // 'flag' => true, - // 'label' => 'Guest Only', - // // 'onFalseClass' => 'fas fa-user text-danger', - // 'onTrueClass' => 'fas fa-user text-secondary', - // ], - // 'parent_id' => [ - // // 'linkType' => 'fk', - // // 'accessor' => 'parent', - // 'property' => 'title', - // // 'linkRoute' => 'cms.api.pages.id', - // 'label' => 'Parent', - // ], - // 'description' => [ - // 'hide-sm' => true, - // 'label' => 'Description', - // 'html' => true, - // ], - // ], + 'withTableColumns' => $columns, ]) diff --git a/routes/backlogs.php b/routes/backlogs.php index 519198e..b7a2523 100644 --- a/routes/backlogs.php +++ b/routes/backlogs.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Backlog +| Matrix Resource Routes: Backlog |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/backlog', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{backlog:slug}', [ + 'as' => 'playground.matrix.resource.backlogs.slug', + 'uses' => 'BacklogController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/backlogs', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'BacklogController@index', ])->can('index', Playground\Matrix\Models\Backlog::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.backlogs.index', + 'uses' => 'BacklogController@index', + ])->can('index', Playground\Matrix\Models\Backlog::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{backlog}', [ 'as' => 'playground.matrix.resource.backlogs.edit', 'uses' => 'BacklogController@edit', - ])->whereUuid('backlog') - ->can('edit', 'backlog'); + ])->whereUuid('backlog')->can('edit', 'backlog'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.backlogs.go', @@ -46,46 +62,29 @@ Route::get('/{backlog}', [ 'as' => 'playground.matrix.resource.backlogs.show', 'uses' => 'BacklogController@show', - ])->whereUuid('backlog') - ->can('detail', 'backlog'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.backlogs.slug', - // 'uses' => 'BacklogController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.backlogs.store', - // 'uses' => 'BacklogController@store', - // ])->can('store', Playground\Matrix\Models\Backlog::class); + ])->whereUuid('backlog')->can('detail', 'backlog'); // API Route::put('/lock/{backlog}', [ 'as' => 'playground.matrix.resource.backlogs.lock', 'uses' => 'BacklogController@lock', - ])->whereUuid('backlog') - ->can('lock', 'backlog'); + ])->whereUuid('backlog')->can('lock', 'backlog'); Route::delete('/lock/{backlog}', [ 'as' => 'playground.matrix.resource.backlogs.unlock', 'uses' => 'BacklogController@unlock', - ])->whereUuid('backlog') - ->can('unlock', 'backlog'); + ])->whereUuid('backlog')->can('unlock', 'backlog'); Route::delete('/{backlog}', [ 'as' => 'playground.matrix.resource.backlogs.destroy', 'uses' => 'BacklogController@destroy', - ])->whereUuid('backlog') - ->can('delete', 'backlog') - ->withTrashed(); + ])->whereUuid('backlog')->can('delete', 'backlog')->withTrashed(); Route::put('/restore/{backlog}', [ 'as' => 'playground.matrix.resource.backlogs.restore', 'uses' => 'BacklogController@restore', - ])->whereUuid('backlog') - ->can('restore', 'backlog') - ->withTrashed(); + ])->whereUuid('backlog')->can('restore', 'backlog')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.backlogs.post', diff --git a/routes/boards.php b/routes/boards.php index 770281d..5a01908 100644 --- a/routes/boards.php +++ b/routes/boards.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Board +| Matrix Resource Routes: Board |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/board', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{board:slug}', [ + 'as' => 'playground.matrix.resource.boards.slug', + 'uses' => 'BoardController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/boards', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'BoardController@index', ])->can('index', Playground\Matrix\Models\Board::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.boards.index', + 'uses' => 'BoardController@index', + ])->can('index', Playground\Matrix\Models\Board::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{board}', [ 'as' => 'playground.matrix.resource.boards.edit', 'uses' => 'BoardController@edit', - ])->whereUuid('board') - ->can('edit', 'board'); + ])->whereUuid('board')->can('edit', 'board'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.boards.go', @@ -46,46 +62,29 @@ Route::get('/{board}', [ 'as' => 'playground.matrix.resource.boards.show', 'uses' => 'BoardController@show', - ])->whereUuid('board') - ->can('detail', 'board'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.boards.slug', - // 'uses' => 'BoardController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.boards.store', - // 'uses' => 'BoardController@store', - // ])->can('store', Playground\Matrix\Models\Board::class); + ])->whereUuid('board')->can('detail', 'board'); // API Route::put('/lock/{board}', [ 'as' => 'playground.matrix.resource.boards.lock', 'uses' => 'BoardController@lock', - ])->whereUuid('board') - ->can('lock', 'board'); + ])->whereUuid('board')->can('lock', 'board'); Route::delete('/lock/{board}', [ 'as' => 'playground.matrix.resource.boards.unlock', 'uses' => 'BoardController@unlock', - ])->whereUuid('board') - ->can('unlock', 'board'); + ])->whereUuid('board')->can('unlock', 'board'); Route::delete('/{board}', [ 'as' => 'playground.matrix.resource.boards.destroy', 'uses' => 'BoardController@destroy', - ])->whereUuid('board') - ->can('delete', 'board') - ->withTrashed(); + ])->whereUuid('board')->can('delete', 'board')->withTrashed(); Route::put('/restore/{board}', [ 'as' => 'playground.matrix.resource.boards.restore', 'uses' => 'BoardController@restore', - ])->whereUuid('board') - ->can('restore', 'board') - ->withTrashed(); + ])->whereUuid('board')->can('restore', 'board')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.boards.post', diff --git a/routes/epics.php b/routes/epics.php index 78fcae1..524332a 100644 --- a/routes/epics.php +++ b/routes/epics.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Epic +| Matrix Resource Routes: Epic |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/epic', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{epic:slug}', [ + 'as' => 'playground.matrix.resource.epics.slug', + 'uses' => 'EpicController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/epics', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'EpicController@index', ])->can('index', Playground\Matrix\Models\Epic::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.epics.index', + 'uses' => 'EpicController@index', + ])->can('index', Playground\Matrix\Models\Epic::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{epic}', [ 'as' => 'playground.matrix.resource.epics.edit', 'uses' => 'EpicController@edit', - ])->whereUuid('epic') - ->can('edit', 'epic'); + ])->whereUuid('epic')->can('edit', 'epic'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.epics.go', @@ -46,46 +62,29 @@ Route::get('/{epic}', [ 'as' => 'playground.matrix.resource.epics.show', 'uses' => 'EpicController@show', - ])->whereUuid('epic') - ->can('detail', 'epic'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.epics.slug', - // 'uses' => 'EpicController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.epics.store', - // 'uses' => 'EpicController@store', - // ])->can('store', Playground\Matrix\Models\Epic::class); + ])->whereUuid('epic')->can('detail', 'epic'); // API Route::put('/lock/{epic}', [ 'as' => 'playground.matrix.resource.epics.lock', 'uses' => 'EpicController@lock', - ])->whereUuid('epic') - ->can('lock', 'epic'); + ])->whereUuid('epic')->can('lock', 'epic'); Route::delete('/lock/{epic}', [ 'as' => 'playground.matrix.resource.epics.unlock', 'uses' => 'EpicController@unlock', - ])->whereUuid('epic') - ->can('unlock', 'epic'); + ])->whereUuid('epic')->can('unlock', 'epic'); Route::delete('/{epic}', [ 'as' => 'playground.matrix.resource.epics.destroy', 'uses' => 'EpicController@destroy', - ])->whereUuid('epic') - ->can('delete', 'epic') - ->withTrashed(); + ])->whereUuid('epic')->can('delete', 'epic')->withTrashed(); Route::put('/restore/{epic}', [ 'as' => 'playground.matrix.resource.epics.restore', 'uses' => 'EpicController@restore', - ])->whereUuid('epic') - ->can('restore', 'epic') - ->withTrashed(); + ])->whereUuid('epic')->can('restore', 'epic')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.epics.post', diff --git a/routes/flows.php b/routes/flows.php index 2dcf904..7c4fb3f 100644 --- a/routes/flows.php +++ b/routes/flows.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Flow +| Matrix Resource Routes: Flow |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/flow', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{flow:slug}', [ + 'as' => 'playground.matrix.resource.flows.slug', + 'uses' => 'FlowController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/flows', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'FlowController@index', ])->can('index', Playground\Matrix\Models\Flow::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.flows.index', + 'uses' => 'FlowController@index', + ])->can('index', Playground\Matrix\Models\Flow::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{flow}', [ 'as' => 'playground.matrix.resource.flows.edit', 'uses' => 'FlowController@edit', - ])->whereUuid('flow') - ->can('edit', 'flow'); + ])->whereUuid('flow')->can('edit', 'flow'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.flows.go', @@ -46,46 +62,29 @@ Route::get('/{flow}', [ 'as' => 'playground.matrix.resource.flows.show', 'uses' => 'FlowController@show', - ])->whereUuid('flow') - ->can('detail', 'flow'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.flows.slug', - // 'uses' => 'FlowController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.flows.store', - // 'uses' => 'FlowController@store', - // ])->can('store', Playground\Matrix\Models\Flow::class); + ])->whereUuid('flow')->can('detail', 'flow'); // API Route::put('/lock/{flow}', [ 'as' => 'playground.matrix.resource.flows.lock', 'uses' => 'FlowController@lock', - ])->whereUuid('flow') - ->can('lock', 'flow'); + ])->whereUuid('flow')->can('lock', 'flow'); Route::delete('/lock/{flow}', [ 'as' => 'playground.matrix.resource.flows.unlock', 'uses' => 'FlowController@unlock', - ])->whereUuid('flow') - ->can('unlock', 'flow'); + ])->whereUuid('flow')->can('unlock', 'flow'); Route::delete('/{flow}', [ 'as' => 'playground.matrix.resource.flows.destroy', 'uses' => 'FlowController@destroy', - ])->whereUuid('flow') - ->can('delete', 'flow') - ->withTrashed(); + ])->whereUuid('flow')->can('delete', 'flow')->withTrashed(); Route::put('/restore/{flow}', [ 'as' => 'playground.matrix.resource.flows.restore', 'uses' => 'FlowController@restore', - ])->whereUuid('flow') - ->can('restore', 'flow') - ->withTrashed(); + ])->whereUuid('flow')->can('restore', 'flow')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.flows.post', diff --git a/routes/matrices.php b/routes/matrices.php index da7cdff..d596ec4 100644 --- a/routes/matrices.php +++ b/routes/matrices.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Matrix +| Matrix Resource Routes: Matrix |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/matrix', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{matrix:slug}', [ + 'as' => 'playground.matrix.resource.matrices.slug', + 'uses' => 'MatrixController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/matrices', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'MatrixController@index', ])->can('index', Playground\Matrix\Models\Matrix::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.matrices.index', + 'uses' => 'MatrixController@index', + ])->can('index', Playground\Matrix\Models\Matrix::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{matrix}', [ 'as' => 'playground.matrix.resource.matrices.edit', 'uses' => 'MatrixController@edit', - ])->whereUuid('matrix') - ->can('edit', 'matrix'); + ])->whereUuid('matrix')->can('edit', 'matrix'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.matrices.go', @@ -46,46 +62,29 @@ Route::get('/{matrix}', [ 'as' => 'playground.matrix.resource.matrices.show', 'uses' => 'MatrixController@show', - ])->whereUuid('matrix') - ->can('detail', 'matrix'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.matrices.slug', - // 'uses' => 'MatrixController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.matrices.store', - // 'uses' => 'MatrixController@store', - // ])->can('store', Playground\Matrix\Models\Matrix::class); + ])->whereUuid('matrix')->can('detail', 'matrix'); // API Route::put('/lock/{matrix}', [ 'as' => 'playground.matrix.resource.matrices.lock', 'uses' => 'MatrixController@lock', - ])->whereUuid('matrix') - ->can('lock', 'matrix'); + ])->whereUuid('matrix')->can('lock', 'matrix'); Route::delete('/lock/{matrix}', [ 'as' => 'playground.matrix.resource.matrices.unlock', 'uses' => 'MatrixController@unlock', - ])->whereUuid('matrix') - ->can('unlock', 'matrix'); + ])->whereUuid('matrix')->can('unlock', 'matrix'); Route::delete('/{matrix}', [ 'as' => 'playground.matrix.resource.matrices.destroy', 'uses' => 'MatrixController@destroy', - ])->whereUuid('matrix') - ->can('delete', 'matrix') - ->withTrashed(); + ])->whereUuid('matrix')->can('delete', 'matrix')->withTrashed(); Route::put('/restore/{matrix}', [ 'as' => 'playground.matrix.resource.matrices.restore', 'uses' => 'MatrixController@restore', - ])->whereUuid('matrix') - ->can('restore', 'matrix') - ->withTrashed(); + ])->whereUuid('matrix')->can('restore', 'matrix')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.matrices.post', diff --git a/routes/matrix.php b/routes/matrix.php index 93b6d92..0cf626f 100644 --- a/routes/matrix.php +++ b/routes/matrix.php @@ -24,6 +24,6 @@ Route::get('/', [ 'as' => 'playground.matrix.resource', 'uses' => 'IndexController@index', - ])->can('view', Playground\Matrix\Models\Ticket::class); + ])->can('index', Playground\Matrix\Models\Matrix::class); }); diff --git a/routes/milestones.php b/routes/milestones.php index c16e9ab..4c0997a 100644 --- a/routes/milestones.php +++ b/routes/milestones.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Milestone +| Matrix Resource Routes: Milestone |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/milestone', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{milestone:slug}', [ + 'as' => 'playground.matrix.resource.milestones.slug', + 'uses' => 'MilestoneController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/milestones', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'MilestoneController@index', ])->can('index', Playground\Matrix\Models\Milestone::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.milestones.index', + 'uses' => 'MilestoneController@index', + ])->can('index', Playground\Matrix\Models\Milestone::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{milestone}', [ 'as' => 'playground.matrix.resource.milestones.edit', 'uses' => 'MilestoneController@edit', - ])->whereUuid('milestone') - ->can('edit', 'milestone'); + ])->whereUuid('milestone')->can('edit', 'milestone'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.milestones.go', @@ -46,46 +62,29 @@ Route::get('/{milestone}', [ 'as' => 'playground.matrix.resource.milestones.show', 'uses' => 'MilestoneController@show', - ])->whereUuid('milestone') - ->can('detail', 'milestone'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.milestones.slug', - // 'uses' => 'MilestoneController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.milestones.store', - // 'uses' => 'MilestoneController@store', - // ])->can('store', Playground\Matrix\Models\Milestone::class); + ])->whereUuid('milestone')->can('detail', 'milestone'); // API Route::put('/lock/{milestone}', [ 'as' => 'playground.matrix.resource.milestones.lock', 'uses' => 'MilestoneController@lock', - ])->whereUuid('milestone') - ->can('lock', 'milestone'); + ])->whereUuid('milestone')->can('lock', 'milestone'); Route::delete('/lock/{milestone}', [ 'as' => 'playground.matrix.resource.milestones.unlock', 'uses' => 'MilestoneController@unlock', - ])->whereUuid('milestone') - ->can('unlock', 'milestone'); + ])->whereUuid('milestone')->can('unlock', 'milestone'); Route::delete('/{milestone}', [ 'as' => 'playground.matrix.resource.milestones.destroy', 'uses' => 'MilestoneController@destroy', - ])->whereUuid('milestone') - ->can('delete', 'milestone') - ->withTrashed(); + ])->whereUuid('milestone')->can('delete', 'milestone')->withTrashed(); Route::put('/restore/{milestone}', [ 'as' => 'playground.matrix.resource.milestones.restore', 'uses' => 'MilestoneController@restore', - ])->whereUuid('milestone') - ->can('restore', 'milestone') - ->withTrashed(); + ])->whereUuid('milestone')->can('restore', 'milestone')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.milestones.post', diff --git a/routes/notes.php b/routes/notes.php index f1be153..9a42fdb 100644 --- a/routes/notes.php +++ b/routes/notes.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Note +| Matrix Resource Routes: Note |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/note', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{note:slug}', [ + 'as' => 'playground.matrix.resource.notes.slug', + 'uses' => 'NoteController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/notes', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'NoteController@index', ])->can('index', Playground\Matrix\Models\Note::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.notes.index', + 'uses' => 'NoteController@index', + ])->can('index', Playground\Matrix\Models\Note::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{note}', [ 'as' => 'playground.matrix.resource.notes.edit', 'uses' => 'NoteController@edit', - ])->whereUuid('note') - ->can('edit', 'note'); + ])->whereUuid('note')->can('edit', 'note'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.notes.go', @@ -46,46 +62,29 @@ Route::get('/{note}', [ 'as' => 'playground.matrix.resource.notes.show', 'uses' => 'NoteController@show', - ])->whereUuid('note') - ->can('detail', 'note'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.notes.slug', - // 'uses' => 'NoteController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.notes.store', - // 'uses' => 'NoteController@store', - // ])->can('store', Playground\Matrix\Models\Note::class); + ])->whereUuid('note')->can('detail', 'note'); // API Route::put('/lock/{note}', [ 'as' => 'playground.matrix.resource.notes.lock', 'uses' => 'NoteController@lock', - ])->whereUuid('note') - ->can('lock', 'note'); + ])->whereUuid('note')->can('lock', 'note'); Route::delete('/lock/{note}', [ 'as' => 'playground.matrix.resource.notes.unlock', 'uses' => 'NoteController@unlock', - ])->whereUuid('note') - ->can('unlock', 'note'); + ])->whereUuid('note')->can('unlock', 'note'); Route::delete('/{note}', [ 'as' => 'playground.matrix.resource.notes.destroy', 'uses' => 'NoteController@destroy', - ])->whereUuid('note') - ->can('delete', 'note') - ->withTrashed(); + ])->whereUuid('note')->can('delete', 'note')->withTrashed(); Route::put('/restore/{note}', [ 'as' => 'playground.matrix.resource.notes.restore', 'uses' => 'NoteController@restore', - ])->whereUuid('note') - ->can('restore', 'note') - ->withTrashed(); + ])->whereUuid('note')->can('restore', 'note')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.notes.post', diff --git a/routes/projects.php b/routes/projects.php index 3a5f7d5..722177c 100644 --- a/routes/projects.php +++ b/routes/projects.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Project +| Matrix Resource Routes: Project |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/project', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{project:slug}', [ + 'as' => 'playground.matrix.resource.projects.slug', + 'uses' => 'ProjectController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/projects', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'ProjectController@index', ])->can('index', Playground\Matrix\Models\Project::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.projects.index', + 'uses' => 'ProjectController@index', + ])->can('index', Playground\Matrix\Models\Project::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{project}', [ 'as' => 'playground.matrix.resource.projects.edit', 'uses' => 'ProjectController@edit', - ])->whereUuid('project') - ->can('edit', 'project'); + ])->whereUuid('project')->can('edit', 'project'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.projects.go', @@ -46,46 +62,29 @@ Route::get('/{project}', [ 'as' => 'playground.matrix.resource.projects.show', 'uses' => 'ProjectController@show', - ])->whereUuid('project') - ->can('detail', 'project'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.projects.slug', - // 'uses' => 'ProjectController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.projects.store', - // 'uses' => 'ProjectController@store', - // ])->can('store', Playground\Matrix\Models\Project::class); + ])->whereUuid('project')->can('detail', 'project'); // API Route::put('/lock/{project}', [ 'as' => 'playground.matrix.resource.projects.lock', 'uses' => 'ProjectController@lock', - ])->whereUuid('project') - ->can('lock', 'project'); + ])->whereUuid('project')->can('lock', 'project'); Route::delete('/lock/{project}', [ 'as' => 'playground.matrix.resource.projects.unlock', 'uses' => 'ProjectController@unlock', - ])->whereUuid('project') - ->can('unlock', 'project'); + ])->whereUuid('project')->can('unlock', 'project'); Route::delete('/{project}', [ 'as' => 'playground.matrix.resource.projects.destroy', 'uses' => 'ProjectController@destroy', - ])->whereUuid('project') - ->can('delete', 'project') - ->withTrashed(); + ])->whereUuid('project')->can('delete', 'project')->withTrashed(); Route::put('/restore/{project}', [ 'as' => 'playground.matrix.resource.projects.restore', 'uses' => 'ProjectController@restore', - ])->whereUuid('project') - ->can('restore', 'project') - ->withTrashed(); + ])->whereUuid('project')->can('restore', 'project')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.projects.post', diff --git a/routes/releases.php b/routes/releases.php index 57078f4..56040fc 100644 --- a/routes/releases.php +++ b/routes/releases.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Release +| Matrix Resource Routes: Release |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/release', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{release:slug}', [ + 'as' => 'playground.matrix.resource.releases.slug', + 'uses' => 'ReleaseController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/releases', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'ReleaseController@index', ])->can('index', Playground\Matrix\Models\Release::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.releases.index', + 'uses' => 'ReleaseController@index', + ])->can('index', Playground\Matrix\Models\Release::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{release}', [ 'as' => 'playground.matrix.resource.releases.edit', 'uses' => 'ReleaseController@edit', - ])->whereUuid('release') - ->can('edit', 'release'); + ])->whereUuid('release')->can('edit', 'release'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.releases.go', @@ -46,46 +62,29 @@ Route::get('/{release}', [ 'as' => 'playground.matrix.resource.releases.show', 'uses' => 'ReleaseController@show', - ])->whereUuid('release') - ->can('detail', 'release'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.releases.slug', - // 'uses' => 'ReleaseController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.releases.store', - // 'uses' => 'ReleaseController@store', - // ])->can('store', Playground\Matrix\Models\Release::class); + ])->whereUuid('release')->can('detail', 'release'); // API Route::put('/lock/{release}', [ 'as' => 'playground.matrix.resource.releases.lock', 'uses' => 'ReleaseController@lock', - ])->whereUuid('release') - ->can('lock', 'release'); + ])->whereUuid('release')->can('lock', 'release'); Route::delete('/lock/{release}', [ 'as' => 'playground.matrix.resource.releases.unlock', 'uses' => 'ReleaseController@unlock', - ])->whereUuid('release') - ->can('unlock', 'release'); + ])->whereUuid('release')->can('unlock', 'release'); Route::delete('/{release}', [ 'as' => 'playground.matrix.resource.releases.destroy', 'uses' => 'ReleaseController@destroy', - ])->whereUuid('release') - ->can('delete', 'release') - ->withTrashed(); + ])->whereUuid('release')->can('delete', 'release')->withTrashed(); Route::put('/restore/{release}', [ 'as' => 'playground.matrix.resource.releases.restore', 'uses' => 'ReleaseController@restore', - ])->whereUuid('release') - ->can('restore', 'release') - ->withTrashed(); + ])->whereUuid('release')->can('restore', 'release')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.releases.post', diff --git a/routes/roadmaps.php b/routes/roadmaps.php index c8eba5b..89ec690 100644 --- a/routes/roadmaps.php +++ b/routes/roadmaps.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Roadmap +| Matrix Resource Routes: Roadmap |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/roadmap', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{roadmap:slug}', [ + 'as' => 'playground.matrix.resource.roadmaps.slug', + 'uses' => 'RoadmapController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/roadmaps', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'RoadmapController@index', ])->can('index', Playground\Matrix\Models\Roadmap::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.roadmaps.index', + 'uses' => 'RoadmapController@index', + ])->can('index', Playground\Matrix\Models\Roadmap::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{roadmap}', [ 'as' => 'playground.matrix.resource.roadmaps.edit', 'uses' => 'RoadmapController@edit', - ])->whereUuid('roadmap') - ->can('edit', 'roadmap'); + ])->whereUuid('roadmap')->can('edit', 'roadmap'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.roadmaps.go', @@ -46,46 +62,29 @@ Route::get('/{roadmap}', [ 'as' => 'playground.matrix.resource.roadmaps.show', 'uses' => 'RoadmapController@show', - ])->whereUuid('roadmap') - ->can('detail', 'roadmap'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.roadmaps.slug', - // 'uses' => 'RoadmapController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.roadmaps.store', - // 'uses' => 'RoadmapController@store', - // ])->can('store', Playground\Matrix\Models\Roadmap::class); + ])->whereUuid('roadmap')->can('detail', 'roadmap'); // API Route::put('/lock/{roadmap}', [ 'as' => 'playground.matrix.resource.roadmaps.lock', 'uses' => 'RoadmapController@lock', - ])->whereUuid('roadmap') - ->can('lock', 'roadmap'); + ])->whereUuid('roadmap')->can('lock', 'roadmap'); Route::delete('/lock/{roadmap}', [ 'as' => 'playground.matrix.resource.roadmaps.unlock', 'uses' => 'RoadmapController@unlock', - ])->whereUuid('roadmap') - ->can('unlock', 'roadmap'); + ])->whereUuid('roadmap')->can('unlock', 'roadmap'); Route::delete('/{roadmap}', [ 'as' => 'playground.matrix.resource.roadmaps.destroy', 'uses' => 'RoadmapController@destroy', - ])->whereUuid('roadmap') - ->can('delete', 'roadmap') - ->withTrashed(); + ])->whereUuid('roadmap')->can('delete', 'roadmap')->withTrashed(); Route::put('/restore/{roadmap}', [ 'as' => 'playground.matrix.resource.roadmaps.restore', 'uses' => 'RoadmapController@restore', - ])->whereUuid('roadmap') - ->can('restore', 'roadmap') - ->withTrashed(); + ])->whereUuid('roadmap')->can('restore', 'roadmap')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.roadmaps.post', diff --git a/routes/sources.php b/routes/sources.php index 45d9368..781872a 100644 --- a/routes/sources.php +++ b/routes/sources.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Source +| Matrix Resource Routes: Source |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/source', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{source:slug}', [ + 'as' => 'playground.matrix.resource.sources.slug', + 'uses' => 'SourceController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/sources', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'SourceController@index', ])->can('index', Playground\Matrix\Models\Source::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.sources.index', + 'uses' => 'SourceController@index', + ])->can('index', Playground\Matrix\Models\Source::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{source}', [ 'as' => 'playground.matrix.resource.sources.edit', 'uses' => 'SourceController@edit', - ])->whereUuid('source') - ->can('edit', 'source'); + ])->whereUuid('source')->can('edit', 'source'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.sources.go', @@ -46,46 +62,29 @@ Route::get('/{source}', [ 'as' => 'playground.matrix.resource.sources.show', 'uses' => 'SourceController@show', - ])->whereUuid('source') - ->can('detail', 'source'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.sources.slug', - // 'uses' => 'SourceController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.sources.store', - // 'uses' => 'SourceController@store', - // ])->can('store', Playground\Matrix\Models\Source::class); + ])->whereUuid('source')->can('detail', 'source'); // API Route::put('/lock/{source}', [ 'as' => 'playground.matrix.resource.sources.lock', 'uses' => 'SourceController@lock', - ])->whereUuid('source') - ->can('lock', 'source'); + ])->whereUuid('source')->can('lock', 'source'); Route::delete('/lock/{source}', [ 'as' => 'playground.matrix.resource.sources.unlock', 'uses' => 'SourceController@unlock', - ])->whereUuid('source') - ->can('unlock', 'source'); + ])->whereUuid('source')->can('unlock', 'source'); Route::delete('/{source}', [ 'as' => 'playground.matrix.resource.sources.destroy', 'uses' => 'SourceController@destroy', - ])->whereUuid('source') - ->can('delete', 'source') - ->withTrashed(); + ])->whereUuid('source')->can('delete', 'source')->withTrashed(); Route::put('/restore/{source}', [ 'as' => 'playground.matrix.resource.sources.restore', 'uses' => 'SourceController@restore', - ])->whereUuid('source') - ->can('restore', 'source') - ->withTrashed(); + ])->whereUuid('source')->can('restore', 'source')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.sources.post', diff --git a/routes/sprints.php b/routes/sprints.php index 5ecf71a..a0e0aa5 100644 --- a/routes/sprints.php +++ b/routes/sprints.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Sprint +| Matrix Resource Routes: Sprint |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/sprint', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{sprint:slug}', [ + 'as' => 'playground.matrix.resource.sprints.slug', + 'uses' => 'SprintController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/sprints', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'SprintController@index', ])->can('index', Playground\Matrix\Models\Sprint::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.sprints.index', + 'uses' => 'SprintController@index', + ])->can('index', Playground\Matrix\Models\Sprint::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{sprint}', [ 'as' => 'playground.matrix.resource.sprints.edit', 'uses' => 'SprintController@edit', - ])->whereUuid('sprint') - ->can('edit', 'sprint'); + ])->whereUuid('sprint')->can('edit', 'sprint'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.sprints.go', @@ -46,46 +62,29 @@ Route::get('/{sprint}', [ 'as' => 'playground.matrix.resource.sprints.show', 'uses' => 'SprintController@show', - ])->whereUuid('sprint') - ->can('detail', 'sprint'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.sprints.slug', - // 'uses' => 'SprintController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.sprints.store', - // 'uses' => 'SprintController@store', - // ])->can('store', Playground\Matrix\Models\Sprint::class); + ])->whereUuid('sprint')->can('detail', 'sprint'); // API Route::put('/lock/{sprint}', [ 'as' => 'playground.matrix.resource.sprints.lock', 'uses' => 'SprintController@lock', - ])->whereUuid('sprint') - ->can('lock', 'sprint'); + ])->whereUuid('sprint')->can('lock', 'sprint'); Route::delete('/lock/{sprint}', [ 'as' => 'playground.matrix.resource.sprints.unlock', 'uses' => 'SprintController@unlock', - ])->whereUuid('sprint') - ->can('unlock', 'sprint'); + ])->whereUuid('sprint')->can('unlock', 'sprint'); Route::delete('/{sprint}', [ 'as' => 'playground.matrix.resource.sprints.destroy', 'uses' => 'SprintController@destroy', - ])->whereUuid('sprint') - ->can('delete', 'sprint') - ->withTrashed(); + ])->whereUuid('sprint')->can('delete', 'sprint')->withTrashed(); Route::put('/restore/{sprint}', [ 'as' => 'playground.matrix.resource.sprints.restore', 'uses' => 'SprintController@restore', - ])->whereUuid('sprint') - ->can('restore', 'sprint') - ->withTrashed(); + ])->whereUuid('sprint')->can('restore', 'sprint')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.sprints.post', diff --git a/routes/tags.php b/routes/tags.php index 03fe4b4..b785cf3 100644 --- a/routes/tags.php +++ b/routes/tags.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Tag +| Matrix Resource Routes: Tag |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/tag', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{tag:slug}', [ + 'as' => 'playground.matrix.resource.tags.slug', + 'uses' => 'TagController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/tags', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'TagController@index', ])->can('index', Playground\Matrix\Models\Tag::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.tags.index', + 'uses' => 'TagController@index', + ])->can('index', Playground\Matrix\Models\Tag::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{tag}', [ 'as' => 'playground.matrix.resource.tags.edit', 'uses' => 'TagController@edit', - ])->whereUuid('tag') - ->can('edit', 'tag'); + ])->whereUuid('tag')->can('edit', 'tag'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.tags.go', @@ -46,46 +62,29 @@ Route::get('/{tag}', [ 'as' => 'playground.matrix.resource.tags.show', 'uses' => 'TagController@show', - ])->whereUuid('tag') - ->can('detail', 'tag'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.tags.slug', - // 'uses' => 'TagController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.tags.store', - // 'uses' => 'TagController@store', - // ])->can('store', Playground\Matrix\Models\Tag::class); + ])->whereUuid('tag')->can('detail', 'tag'); // API Route::put('/lock/{tag}', [ 'as' => 'playground.matrix.resource.tags.lock', 'uses' => 'TagController@lock', - ])->whereUuid('tag') - ->can('lock', 'tag'); + ])->whereUuid('tag')->can('lock', 'tag'); Route::delete('/lock/{tag}', [ 'as' => 'playground.matrix.resource.tags.unlock', 'uses' => 'TagController@unlock', - ])->whereUuid('tag') - ->can('unlock', 'tag'); + ])->whereUuid('tag')->can('unlock', 'tag'); Route::delete('/{tag}', [ 'as' => 'playground.matrix.resource.tags.destroy', 'uses' => 'TagController@destroy', - ])->whereUuid('tag') - ->can('delete', 'tag') - ->withTrashed(); + ])->whereUuid('tag')->can('delete', 'tag')->withTrashed(); Route::put('/restore/{tag}', [ 'as' => 'playground.matrix.resource.tags.restore', 'uses' => 'TagController@restore', - ])->whereUuid('tag') - ->can('restore', 'tag') - ->withTrashed(); + ])->whereUuid('tag')->can('restore', 'tag')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.tags.post', diff --git a/routes/teams.php b/routes/teams.php index 5f9925f..9215d9c 100644 --- a/routes/teams.php +++ b/routes/teams.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Team +| Matrix Resource Routes: Team |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/team', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{team:slug}', [ + 'as' => 'playground.matrix.resource.teams.slug', + 'uses' => 'TeamController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/teams', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'TeamController@index', ])->can('index', Playground\Matrix\Models\Team::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.teams.index', + 'uses' => 'TeamController@index', + ])->can('index', Playground\Matrix\Models\Team::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{team}', [ 'as' => 'playground.matrix.resource.teams.edit', 'uses' => 'TeamController@edit', - ])->whereUuid('team') - ->can('edit', 'team'); + ])->whereUuid('team')->can('edit', 'team'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.teams.go', @@ -46,46 +62,29 @@ Route::get('/{team}', [ 'as' => 'playground.matrix.resource.teams.show', 'uses' => 'TeamController@show', - ])->whereUuid('team') - ->can('detail', 'team'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.teams.slug', - // 'uses' => 'TeamController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.teams.store', - // 'uses' => 'TeamController@store', - // ])->can('store', Playground\Matrix\Models\Team::class); + ])->whereUuid('team')->can('detail', 'team'); // API Route::put('/lock/{team}', [ 'as' => 'playground.matrix.resource.teams.lock', 'uses' => 'TeamController@lock', - ])->whereUuid('team') - ->can('lock', 'team'); + ])->whereUuid('team')->can('lock', 'team'); Route::delete('/lock/{team}', [ 'as' => 'playground.matrix.resource.teams.unlock', 'uses' => 'TeamController@unlock', - ])->whereUuid('team') - ->can('unlock', 'team'); + ])->whereUuid('team')->can('unlock', 'team'); Route::delete('/{team}', [ 'as' => 'playground.matrix.resource.teams.destroy', 'uses' => 'TeamController@destroy', - ])->whereUuid('team') - ->can('delete', 'team') - ->withTrashed(); + ])->whereUuid('team')->can('delete', 'team')->withTrashed(); Route::put('/restore/{team}', [ 'as' => 'playground.matrix.resource.teams.restore', 'uses' => 'TeamController@restore', - ])->whereUuid('team') - ->can('restore', 'team') - ->withTrashed(); + ])->whereUuid('team')->can('restore', 'team')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.teams.post', diff --git a/routes/tickets.php b/routes/tickets.php index d7d8822..82bf2e8 100644 --- a/routes/tickets.php +++ b/routes/tickets.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Ticket +| Matrix Resource Routes: Ticket |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/ticket', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{ticket:slug}', [ + 'as' => 'playground.matrix.resource.tickets.slug', + 'uses' => 'TicketController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/tickets', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'TicketController@index', ])->can('index', Playground\Matrix\Models\Ticket::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.tickets.index', + 'uses' => 'TicketController@index', + ])->can('index', Playground\Matrix\Models\Ticket::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{ticket}', [ 'as' => 'playground.matrix.resource.tickets.edit', 'uses' => 'TicketController@edit', - ])->whereUuid('ticket') - ->can('edit', 'ticket'); + ])->whereUuid('ticket')->can('edit', 'ticket'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.tickets.go', @@ -46,46 +62,29 @@ Route::get('/{ticket}', [ 'as' => 'playground.matrix.resource.tickets.show', 'uses' => 'TicketController@show', - ])->whereUuid('ticket') - ->can('detail', 'ticket'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.tickets.slug', - // 'uses' => 'TicketController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.tickets.store', - // 'uses' => 'TicketController@store', - // ])->can('store', Playground\Matrix\Models\Ticket::class); + ])->whereUuid('ticket')->can('detail', 'ticket'); // API Route::put('/lock/{ticket}', [ 'as' => 'playground.matrix.resource.tickets.lock', 'uses' => 'TicketController@lock', - ])->whereUuid('ticket') - ->can('lock', 'ticket'); + ])->whereUuid('ticket')->can('lock', 'ticket'); Route::delete('/lock/{ticket}', [ 'as' => 'playground.matrix.resource.tickets.unlock', 'uses' => 'TicketController@unlock', - ])->whereUuid('ticket') - ->can('unlock', 'ticket'); + ])->whereUuid('ticket')->can('unlock', 'ticket'); Route::delete('/{ticket}', [ 'as' => 'playground.matrix.resource.tickets.destroy', 'uses' => 'TicketController@destroy', - ])->whereUuid('ticket') - ->can('delete', 'ticket') - ->withTrashed(); + ])->whereUuid('ticket')->can('delete', 'ticket')->withTrashed(); Route::put('/restore/{ticket}', [ 'as' => 'playground.matrix.resource.tickets.restore', 'uses' => 'TicketController@restore', - ])->whereUuid('ticket') - ->can('restore', 'ticket') - ->withTrashed(); + ])->whereUuid('ticket')->can('restore', 'ticket')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.tickets.post', diff --git a/routes/versions.php b/routes/versions.php index cc1eaa6..8f3d340 100644 --- a/routes/versions.php +++ b/routes/versions.php @@ -9,12 +9,24 @@ /* |-------------------------------------------------------------------------- -| Matrix Routes: Version +| Matrix Resource Routes: Version |-------------------------------------------------------------------------- | | */ +Route::group([ + 'prefix' => 'api/matrix/version', + 'middleware' => config('playground-matrix-resource.middleware.default'), + 'namespace' => '\Playground\Matrix\Resource\Http\Controllers', +], function () { + + Route::get('/{version:slug}', [ + 'as' => 'playground.matrix.resource.versions.slug', + 'uses' => 'VersionController@show', + ])->where('slug', '[a-zA-Z0-9\-]+'); +}); + Route::group([ 'prefix' => 'resource/matrix/versions', 'middleware' => config('playground-matrix-resource.middleware.default'), @@ -25,6 +37,11 @@ 'uses' => 'VersionController@index', ])->can('index', Playground\Matrix\Models\Version::class); + Route::post('/index', [ + 'as' => 'playground.matrix.resource.versions.index', + 'uses' => 'VersionController@index', + ])->can('index', Playground\Matrix\Models\Version::class); + // UI Route::get('/create', [ @@ -35,8 +52,7 @@ Route::get('/edit/{version}', [ 'as' => 'playground.matrix.resource.versions.edit', 'uses' => 'VersionController@edit', - ])->whereUuid('version') - ->can('edit', 'version'); + ])->whereUuid('version')->can('edit', 'version'); // Route::get('/go/{id}', [ // 'as' => 'playground.matrix.resource.versions.go', @@ -46,46 +62,29 @@ Route::get('/{version}', [ 'as' => 'playground.matrix.resource.versions.show', 'uses' => 'VersionController@show', - ])->whereUuid('version') - ->can('detail', 'version'); - - // Route::get('/{slug}', [ - // 'as' => 'playground.matrix.resource.versions.slug', - // 'uses' => 'VersionController@slug', - // ])->where('slug', '[a-zA-Z0-9\-]+'); - - // Route::post('/store', [ - // 'as' => 'playground.matrix.resource.versions.store', - // 'uses' => 'VersionController@store', - // ])->can('store', Playground\Matrix\Models\Version::class); + ])->whereUuid('version')->can('detail', 'version'); // API Route::put('/lock/{version}', [ 'as' => 'playground.matrix.resource.versions.lock', 'uses' => 'VersionController@lock', - ])->whereUuid('version') - ->can('lock', 'version'); + ])->whereUuid('version')->can('lock', 'version'); Route::delete('/lock/{version}', [ 'as' => 'playground.matrix.resource.versions.unlock', 'uses' => 'VersionController@unlock', - ])->whereUuid('version') - ->can('unlock', 'version'); + ])->whereUuid('version')->can('unlock', 'version'); Route::delete('/{version}', [ 'as' => 'playground.matrix.resource.versions.destroy', 'uses' => 'VersionController@destroy', - ])->whereUuid('version') - ->can('delete', 'version') - ->withTrashed(); + ])->whereUuid('version')->can('delete', 'version')->withTrashed(); Route::put('/restore/{version}', [ 'as' => 'playground.matrix.resource.versions.restore', 'uses' => 'VersionController@restore', - ])->whereUuid('version') - ->can('restore', 'version') - ->withTrashed(); + ])->whereUuid('version')->can('restore', 'version')->withTrashed(); Route::post('/', [ 'as' => 'playground.matrix.resource.versions.post', diff --git a/src/Http/Controllers/BacklogController.php b/src/Http/Controllers/BacklogController.php index 867d5c1..610e72f 100644 --- a/src/Http/Controllers/BacklogController.php +++ b/src/Http/Controllers/BacklogController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Backlog resource in storage. * - * @route GET /resource/matrix/backlogs/edit playground.matrix.resource.backlogs.edit + * @route GET /resource/matrix/backlogs/edit/{backlog} playground.matrix.resource.backlogs.edit */ public function edit( Backlog $backlog, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Backlog resource from storage. * - * @route DELETE /resource/matrix/{backlog} playground.matrix.resource.backlogs.destroy + * @route DELETE /resource/matrix/backlogs/{backlog} playground.matrix.resource.backlogs.destroy */ public function destroy( Backlog $backlog, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Backlog resource in storage. * - * @route PUT /resource/matrix/{backlog} playground.matrix.resource.backlogs.lock + * @route PUT /resource/matrix/backlogs/{backlog} playground.matrix.resource.backlogs.lock */ public function lock( Backlog $backlog, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Backlog resources. * - * @route GET /resource/matrix playground.matrix.resource.backlogs + * @route GET /resource/matrix/backlogs playground.matrix.resource.backlogs */ public function index( Requests\Backlog\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Backlog resource from the trash. * - * @route PUT /resource/matrix/restore/{backlog} playground.matrix.resource.backlogs.restore + * @route PUT /resource/matrix/backlogs/restore/{backlog} playground.matrix.resource.backlogs.restore */ public function restore( Backlog $backlog, @@ -337,7 +337,7 @@ public function restore( /** * Display the Backlog resource. * - * @route GET /resource/matrix/{backlog} playground.matrix.resource.backlogs.show + * @route GET /resource/matrix/backlogs/{backlog} playground.matrix.resource.backlogs.show */ public function show( Backlog $backlog, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Backlog resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.backlogs.post + * @route POST /resource/matrix/backlogs playground.matrix.resource.backlogs.post */ public function store( Requests\Backlog\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Backlog resource in storage. * - * @route DELETE /resource/matrix/lock/{backlog} playground.matrix.resource.backlogs.unlock + * @route DELETE /resource/matrix/backlogs/lock/{backlog} playground.matrix.resource.backlogs.unlock */ public function unlock( Backlog $backlog, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Backlog resource in storage. * - * @route PATCH /resource/matrix/{backlog} playground.matrix.resource.backlogs.patch + * @route PATCH /resource/matrix/backlogs/{backlog} playground.matrix.resource.backlogs.patch */ public function update( Backlog $backlog, diff --git a/src/Http/Controllers/BoardController.php b/src/Http/Controllers/BoardController.php index a53968e..b532fd8 100644 --- a/src/Http/Controllers/BoardController.php +++ b/src/Http/Controllers/BoardController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Board resource in storage. * - * @route GET /resource/matrix/boards/edit playground.matrix.resource.boards.edit + * @route GET /resource/matrix/boards/edit/{board} playground.matrix.resource.boards.edit */ public function edit( Board $board, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Board resource from storage. * - * @route DELETE /resource/matrix/{board} playground.matrix.resource.boards.destroy + * @route DELETE /resource/matrix/boards/{board} playground.matrix.resource.boards.destroy */ public function destroy( Board $board, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Board resource in storage. * - * @route PUT /resource/matrix/{board} playground.matrix.resource.boards.lock + * @route PUT /resource/matrix/boards/{board} playground.matrix.resource.boards.lock */ public function lock( Board $board, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Board resources. * - * @route GET /resource/matrix playground.matrix.resource.boards + * @route GET /resource/matrix/boards playground.matrix.resource.boards */ public function index( Requests\Board\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Board resource from the trash. * - * @route PUT /resource/matrix/restore/{board} playground.matrix.resource.boards.restore + * @route PUT /resource/matrix/boards/restore/{board} playground.matrix.resource.boards.restore */ public function restore( Board $board, @@ -337,7 +337,7 @@ public function restore( /** * Display the Board resource. * - * @route GET /resource/matrix/{board} playground.matrix.resource.boards.show + * @route GET /resource/matrix/boards/{board} playground.matrix.resource.boards.show */ public function show( Board $board, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Board resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.boards.post + * @route POST /resource/matrix/boards playground.matrix.resource.boards.post */ public function store( Requests\Board\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Board resource in storage. * - * @route DELETE /resource/matrix/lock/{board} playground.matrix.resource.boards.unlock + * @route DELETE /resource/matrix/boards/lock/{board} playground.matrix.resource.boards.unlock */ public function unlock( Board $board, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Board resource in storage. * - * @route PATCH /resource/matrix/{board} playground.matrix.resource.boards.patch + * @route PATCH /resource/matrix/boards/{board} playground.matrix.resource.boards.patch */ public function update( Board $board, diff --git a/src/Http/Controllers/EpicController.php b/src/Http/Controllers/EpicController.php index 92fe2dc..356aa0d 100644 --- a/src/Http/Controllers/EpicController.php +++ b/src/Http/Controllers/EpicController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Epic resource in storage. * - * @route GET /resource/matrix/epics/edit playground.matrix.resource.epics.edit + * @route GET /resource/matrix/epics/edit/{epic} playground.matrix.resource.epics.edit */ public function edit( Epic $epic, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Epic resource from storage. * - * @route DELETE /resource/matrix/{epic} playground.matrix.resource.epics.destroy + * @route DELETE /resource/matrix/epics/{epic} playground.matrix.resource.epics.destroy */ public function destroy( Epic $epic, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Epic resource in storage. * - * @route PUT /resource/matrix/{epic} playground.matrix.resource.epics.lock + * @route PUT /resource/matrix/epics/{epic} playground.matrix.resource.epics.lock */ public function lock( Epic $epic, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Epic resources. * - * @route GET /resource/matrix playground.matrix.resource.epics + * @route GET /resource/matrix/epics playground.matrix.resource.epics */ public function index( Requests\Epic\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Epic resource from the trash. * - * @route PUT /resource/matrix/restore/{epic} playground.matrix.resource.epics.restore + * @route PUT /resource/matrix/epics/restore/{epic} playground.matrix.resource.epics.restore */ public function restore( Epic $epic, @@ -337,7 +337,7 @@ public function restore( /** * Display the Epic resource. * - * @route GET /resource/matrix/{epic} playground.matrix.resource.epics.show + * @route GET /resource/matrix/epics/{epic} playground.matrix.resource.epics.show */ public function show( Epic $epic, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Epic resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.epics.post + * @route POST /resource/matrix/epics playground.matrix.resource.epics.post */ public function store( Requests\Epic\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Epic resource in storage. * - * @route DELETE /resource/matrix/lock/{epic} playground.matrix.resource.epics.unlock + * @route DELETE /resource/matrix/epics/lock/{epic} playground.matrix.resource.epics.unlock */ public function unlock( Epic $epic, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Epic resource in storage. * - * @route PATCH /resource/matrix/{epic} playground.matrix.resource.epics.patch + * @route PATCH /resource/matrix/epics/{epic} playground.matrix.resource.epics.patch */ public function update( Epic $epic, diff --git a/src/Http/Controllers/FlowController.php b/src/Http/Controllers/FlowController.php index 53916d4..17697bd 100644 --- a/src/Http/Controllers/FlowController.php +++ b/src/Http/Controllers/FlowController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Flow resource in storage. * - * @route GET /resource/matrix/flows/edit playground.matrix.resource.flows.edit + * @route GET /resource/matrix/flows/edit/{flow} playground.matrix.resource.flows.edit */ public function edit( Flow $flow, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Flow resource from storage. * - * @route DELETE /resource/matrix/{flow} playground.matrix.resource.flows.destroy + * @route DELETE /resource/matrix/flows/{flow} playground.matrix.resource.flows.destroy */ public function destroy( Flow $flow, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Flow resource in storage. * - * @route PUT /resource/matrix/{flow} playground.matrix.resource.flows.lock + * @route PUT /resource/matrix/flows/{flow} playground.matrix.resource.flows.lock */ public function lock( Flow $flow, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Flow resources. * - * @route GET /resource/matrix playground.matrix.resource.flows + * @route GET /resource/matrix/flows playground.matrix.resource.flows */ public function index( Requests\Flow\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Flow resource from the trash. * - * @route PUT /resource/matrix/restore/{flow} playground.matrix.resource.flows.restore + * @route PUT /resource/matrix/flows/restore/{flow} playground.matrix.resource.flows.restore */ public function restore( Flow $flow, @@ -337,7 +337,7 @@ public function restore( /** * Display the Flow resource. * - * @route GET /resource/matrix/{flow} playground.matrix.resource.flows.show + * @route GET /resource/matrix/flows/{flow} playground.matrix.resource.flows.show */ public function show( Flow $flow, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Flow resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.flows.post + * @route POST /resource/matrix/flows playground.matrix.resource.flows.post */ public function store( Requests\Flow\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Flow resource in storage. * - * @route DELETE /resource/matrix/lock/{flow} playground.matrix.resource.flows.unlock + * @route DELETE /resource/matrix/flows/lock/{flow} playground.matrix.resource.flows.unlock */ public function unlock( Flow $flow, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Flow resource in storage. * - * @route PATCH /resource/matrix/{flow} playground.matrix.resource.flows.patch + * @route PATCH /resource/matrix/flows/{flow} playground.matrix.resource.flows.patch */ public function update( Flow $flow, diff --git a/src/Http/Controllers/MatrixController.php b/src/Http/Controllers/MatrixController.php index d923948..63a2808 100644 --- a/src/Http/Controllers/MatrixController.php +++ b/src/Http/Controllers/MatrixController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Matrix resource in storage. * - * @route GET /resource/matrix/matrices/edit playground.matrix.resource.matrices.edit + * @route GET /resource/matrix/matrices/edit/{matrix} playground.matrix.resource.matrices.edit */ public function edit( Matrix $matrix, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Matrix resource from storage. * - * @route DELETE /resource/matrix/{matrix} playground.matrix.resource.matrices.destroy + * @route DELETE /resource/matrix/matrices/{matrix} playground.matrix.resource.matrices.destroy */ public function destroy( Matrix $matrix, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Matrix resource in storage. * - * @route PUT /resource/matrix/{matrix} playground.matrix.resource.matrices.lock + * @route PUT /resource/matrix/matrices/{matrix} playground.matrix.resource.matrices.lock */ public function lock( Matrix $matrix, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Matrix resources. * - * @route GET /resource/matrix playground.matrix.resource.matrices + * @route GET /resource/matrix/matrices playground.matrix.resource.matrices */ public function index( Requests\Matrix\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Matrix resource from the trash. * - * @route PUT /resource/matrix/restore/{matrix} playground.matrix.resource.matrices.restore + * @route PUT /resource/matrix/matrices/restore/{matrix} playground.matrix.resource.matrices.restore */ public function restore( Matrix $matrix, @@ -337,7 +337,7 @@ public function restore( /** * Display the Matrix resource. * - * @route GET /resource/matrix/{matrix} playground.matrix.resource.matrices.show + * @route GET /resource/matrix/matrices/{matrix} playground.matrix.resource.matrices.show */ public function show( Matrix $matrix, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Matrix resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.matrices.post + * @route POST /resource/matrix/matrices playground.matrix.resource.matrices.post */ public function store( Requests\Matrix\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Matrix resource in storage. * - * @route DELETE /resource/matrix/lock/{matrix} playground.matrix.resource.matrices.unlock + * @route DELETE /resource/matrix/matrices/lock/{matrix} playground.matrix.resource.matrices.unlock */ public function unlock( Matrix $matrix, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Matrix resource in storage. * - * @route PATCH /resource/matrix/{matrix} playground.matrix.resource.matrices.patch + * @route PATCH /resource/matrix/matrices/{matrix} playground.matrix.resource.matrices.patch */ public function update( Matrix $matrix, diff --git a/src/Http/Controllers/MilestoneController.php b/src/Http/Controllers/MilestoneController.php index e58039f..5eb7a90 100644 --- a/src/Http/Controllers/MilestoneController.php +++ b/src/Http/Controllers/MilestoneController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Milestone resource in storage. * - * @route GET /resource/matrix/milestones/edit playground.matrix.resource.milestones.edit + * @route GET /resource/matrix/milestones/edit/{milestone} playground.matrix.resource.milestones.edit */ public function edit( Milestone $milestone, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Milestone resource from storage. * - * @route DELETE /resource/matrix/{milestone} playground.matrix.resource.milestones.destroy + * @route DELETE /resource/matrix/milestones/{milestone} playground.matrix.resource.milestones.destroy */ public function destroy( Milestone $milestone, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Milestone resource in storage. * - * @route PUT /resource/matrix/{milestone} playground.matrix.resource.milestones.lock + * @route PUT /resource/matrix/milestones/{milestone} playground.matrix.resource.milestones.lock */ public function lock( Milestone $milestone, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Milestone resources. * - * @route GET /resource/matrix playground.matrix.resource.milestones + * @route GET /resource/matrix/milestones playground.matrix.resource.milestones */ public function index( Requests\Milestone\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Milestone resource from the trash. * - * @route PUT /resource/matrix/restore/{milestone} playground.matrix.resource.milestones.restore + * @route PUT /resource/matrix/milestones/restore/{milestone} playground.matrix.resource.milestones.restore */ public function restore( Milestone $milestone, @@ -337,7 +337,7 @@ public function restore( /** * Display the Milestone resource. * - * @route GET /resource/matrix/{milestone} playground.matrix.resource.milestones.show + * @route GET /resource/matrix/milestones/{milestone} playground.matrix.resource.milestones.show */ public function show( Milestone $milestone, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Milestone resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.milestones.post + * @route POST /resource/matrix/milestones playground.matrix.resource.milestones.post */ public function store( Requests\Milestone\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Milestone resource in storage. * - * @route DELETE /resource/matrix/lock/{milestone} playground.matrix.resource.milestones.unlock + * @route DELETE /resource/matrix/milestones/lock/{milestone} playground.matrix.resource.milestones.unlock */ public function unlock( Milestone $milestone, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Milestone resource in storage. * - * @route PATCH /resource/matrix/{milestone} playground.matrix.resource.milestones.patch + * @route PATCH /resource/matrix/milestones/{milestone} playground.matrix.resource.milestones.patch */ public function update( Milestone $milestone, diff --git a/src/Http/Controllers/NoteController.php b/src/Http/Controllers/NoteController.php index ae8d50e..9fe918e 100644 --- a/src/Http/Controllers/NoteController.php +++ b/src/Http/Controllers/NoteController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Note resource in storage. * - * @route GET /resource/matrix/notes/edit playground.matrix.resource.notes.edit + * @route GET /resource/matrix/notes/edit/{note} playground.matrix.resource.notes.edit */ public function edit( Note $note, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Note resource from storage. * - * @route DELETE /resource/matrix/{note} playground.matrix.resource.notes.destroy + * @route DELETE /resource/matrix/notes/{note} playground.matrix.resource.notes.destroy */ public function destroy( Note $note, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Note resource in storage. * - * @route PUT /resource/matrix/{note} playground.matrix.resource.notes.lock + * @route PUT /resource/matrix/notes/{note} playground.matrix.resource.notes.lock */ public function lock( Note $note, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Note resources. * - * @route GET /resource/matrix playground.matrix.resource.notes + * @route GET /resource/matrix/notes playground.matrix.resource.notes */ public function index( Requests\Note\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Note resource from the trash. * - * @route PUT /resource/matrix/restore/{note} playground.matrix.resource.notes.restore + * @route PUT /resource/matrix/notes/restore/{note} playground.matrix.resource.notes.restore */ public function restore( Note $note, @@ -337,7 +337,7 @@ public function restore( /** * Display the Note resource. * - * @route GET /resource/matrix/{note} playground.matrix.resource.notes.show + * @route GET /resource/matrix/notes/{note} playground.matrix.resource.notes.show */ public function show( Note $note, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Note resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.notes.post + * @route POST /resource/matrix/notes playground.matrix.resource.notes.post */ public function store( Requests\Note\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Note resource in storage. * - * @route DELETE /resource/matrix/lock/{note} playground.matrix.resource.notes.unlock + * @route DELETE /resource/matrix/notes/lock/{note} playground.matrix.resource.notes.unlock */ public function unlock( Note $note, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Note resource in storage. * - * @route PATCH /resource/matrix/{note} playground.matrix.resource.notes.patch + * @route PATCH /resource/matrix/notes/{note} playground.matrix.resource.notes.patch */ public function update( Note $note, diff --git a/src/Http/Controllers/ProjectController.php b/src/Http/Controllers/ProjectController.php index 3a75bd0..2a21081 100644 --- a/src/Http/Controllers/ProjectController.php +++ b/src/Http/Controllers/ProjectController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Project resource in storage. * - * @route GET /resource/matrix/projects/edit playground.matrix.resource.projects.edit + * @route GET /resource/matrix/projects/edit/{project} playground.matrix.resource.projects.edit */ public function edit( Project $project, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Project resource from storage. * - * @route DELETE /resource/matrix/{project} playground.matrix.resource.projects.destroy + * @route DELETE /resource/matrix/projects/{project} playground.matrix.resource.projects.destroy */ public function destroy( Project $project, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Project resource in storage. * - * @route PUT /resource/matrix/{project} playground.matrix.resource.projects.lock + * @route PUT /resource/matrix/projects/{project} playground.matrix.resource.projects.lock */ public function lock( Project $project, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Project resources. * - * @route GET /resource/matrix playground.matrix.resource.projects + * @route GET /resource/matrix/projects playground.matrix.resource.projects */ public function index( Requests\Project\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Project resource from the trash. * - * @route PUT /resource/matrix/restore/{project} playground.matrix.resource.projects.restore + * @route PUT /resource/matrix/projects/restore/{project} playground.matrix.resource.projects.restore */ public function restore( Project $project, @@ -337,7 +337,7 @@ public function restore( /** * Display the Project resource. * - * @route GET /resource/matrix/{project} playground.matrix.resource.projects.show + * @route GET /resource/matrix/projects/{project} playground.matrix.resource.projects.show */ public function show( Project $project, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Project resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.projects.post + * @route POST /resource/matrix/projects playground.matrix.resource.projects.post */ public function store( Requests\Project\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Project resource in storage. * - * @route DELETE /resource/matrix/lock/{project} playground.matrix.resource.projects.unlock + * @route DELETE /resource/matrix/projects/lock/{project} playground.matrix.resource.projects.unlock */ public function unlock( Project $project, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Project resource in storage. * - * @route PATCH /resource/matrix/{project} playground.matrix.resource.projects.patch + * @route PATCH /resource/matrix/projects/{project} playground.matrix.resource.projects.patch */ public function update( Project $project, diff --git a/src/Http/Controllers/ReleaseController.php b/src/Http/Controllers/ReleaseController.php index c424499..7e7da44 100644 --- a/src/Http/Controllers/ReleaseController.php +++ b/src/Http/Controllers/ReleaseController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Release resource in storage. * - * @route GET /resource/matrix/releases/edit playground.matrix.resource.releases.edit + * @route GET /resource/matrix/releases/edit/{release} playground.matrix.resource.releases.edit */ public function edit( Release $release, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Release resource from storage. * - * @route DELETE /resource/matrix/{release} playground.matrix.resource.releases.destroy + * @route DELETE /resource/matrix/releases/{release} playground.matrix.resource.releases.destroy */ public function destroy( Release $release, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Release resource in storage. * - * @route PUT /resource/matrix/{release} playground.matrix.resource.releases.lock + * @route PUT /resource/matrix/releases/{release} playground.matrix.resource.releases.lock */ public function lock( Release $release, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Release resources. * - * @route GET /resource/matrix playground.matrix.resource.releases + * @route GET /resource/matrix/releases playground.matrix.resource.releases */ public function index( Requests\Release\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Release resource from the trash. * - * @route PUT /resource/matrix/restore/{release} playground.matrix.resource.releases.restore + * @route PUT /resource/matrix/releases/restore/{release} playground.matrix.resource.releases.restore */ public function restore( Release $release, @@ -337,7 +337,7 @@ public function restore( /** * Display the Release resource. * - * @route GET /resource/matrix/{release} playground.matrix.resource.releases.show + * @route GET /resource/matrix/releases/{release} playground.matrix.resource.releases.show */ public function show( Release $release, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Release resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.releases.post + * @route POST /resource/matrix/releases playground.matrix.resource.releases.post */ public function store( Requests\Release\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Release resource in storage. * - * @route DELETE /resource/matrix/lock/{release} playground.matrix.resource.releases.unlock + * @route DELETE /resource/matrix/releases/lock/{release} playground.matrix.resource.releases.unlock */ public function unlock( Release $release, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Release resource in storage. * - * @route PATCH /resource/matrix/{release} playground.matrix.resource.releases.patch + * @route PATCH /resource/matrix/releases/{release} playground.matrix.resource.releases.patch */ public function update( Release $release, diff --git a/src/Http/Controllers/RoadmapController.php b/src/Http/Controllers/RoadmapController.php index 7f65d2f..3834483 100644 --- a/src/Http/Controllers/RoadmapController.php +++ b/src/Http/Controllers/RoadmapController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Roadmap resource in storage. * - * @route GET /resource/matrix/roadmaps/edit playground.matrix.resource.roadmaps.edit + * @route GET /resource/matrix/roadmaps/edit/{roadmap} playground.matrix.resource.roadmaps.edit */ public function edit( Roadmap $roadmap, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Roadmap resource from storage. * - * @route DELETE /resource/matrix/{roadmap} playground.matrix.resource.roadmaps.destroy + * @route DELETE /resource/matrix/roadmaps/{roadmap} playground.matrix.resource.roadmaps.destroy */ public function destroy( Roadmap $roadmap, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Roadmap resource in storage. * - * @route PUT /resource/matrix/{roadmap} playground.matrix.resource.roadmaps.lock + * @route PUT /resource/matrix/roadmaps/{roadmap} playground.matrix.resource.roadmaps.lock */ public function lock( Roadmap $roadmap, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Roadmap resources. * - * @route GET /resource/matrix playground.matrix.resource.roadmaps + * @route GET /resource/matrix/roadmaps playground.matrix.resource.roadmaps */ public function index( Requests\Roadmap\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Roadmap resource from the trash. * - * @route PUT /resource/matrix/restore/{roadmap} playground.matrix.resource.roadmaps.restore + * @route PUT /resource/matrix/roadmaps/restore/{roadmap} playground.matrix.resource.roadmaps.restore */ public function restore( Roadmap $roadmap, @@ -337,7 +337,7 @@ public function restore( /** * Display the Roadmap resource. * - * @route GET /resource/matrix/{roadmap} playground.matrix.resource.roadmaps.show + * @route GET /resource/matrix/roadmaps/{roadmap} playground.matrix.resource.roadmaps.show */ public function show( Roadmap $roadmap, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Roadmap resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.roadmaps.post + * @route POST /resource/matrix/roadmaps playground.matrix.resource.roadmaps.post */ public function store( Requests\Roadmap\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Roadmap resource in storage. * - * @route DELETE /resource/matrix/lock/{roadmap} playground.matrix.resource.roadmaps.unlock + * @route DELETE /resource/matrix/roadmaps/lock/{roadmap} playground.matrix.resource.roadmaps.unlock */ public function unlock( Roadmap $roadmap, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Roadmap resource in storage. * - * @route PATCH /resource/matrix/{roadmap} playground.matrix.resource.roadmaps.patch + * @route PATCH /resource/matrix/roadmaps/{roadmap} playground.matrix.resource.roadmaps.patch */ public function update( Roadmap $roadmap, diff --git a/src/Http/Controllers/SourceController.php b/src/Http/Controllers/SourceController.php index 419d4c2..8d2d06d 100644 --- a/src/Http/Controllers/SourceController.php +++ b/src/Http/Controllers/SourceController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Source resource in storage. * - * @route GET /resource/matrix/sources/edit playground.matrix.resource.sources.edit + * @route GET /resource/matrix/sources/edit/{source} playground.matrix.resource.sources.edit */ public function edit( Source $source, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Source resource from storage. * - * @route DELETE /resource/matrix/{source} playground.matrix.resource.sources.destroy + * @route DELETE /resource/matrix/sources/{source} playground.matrix.resource.sources.destroy */ public function destroy( Source $source, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Source resource in storage. * - * @route PUT /resource/matrix/{source} playground.matrix.resource.sources.lock + * @route PUT /resource/matrix/sources/{source} playground.matrix.resource.sources.lock */ public function lock( Source $source, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Source resources. * - * @route GET /resource/matrix playground.matrix.resource.sources + * @route GET /resource/matrix/sources playground.matrix.resource.sources */ public function index( Requests\Source\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Source resource from the trash. * - * @route PUT /resource/matrix/restore/{source} playground.matrix.resource.sources.restore + * @route PUT /resource/matrix/sources/restore/{source} playground.matrix.resource.sources.restore */ public function restore( Source $source, @@ -337,7 +337,7 @@ public function restore( /** * Display the Source resource. * - * @route GET /resource/matrix/{source} playground.matrix.resource.sources.show + * @route GET /resource/matrix/sources/{source} playground.matrix.resource.sources.show */ public function show( Source $source, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Source resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.sources.post + * @route POST /resource/matrix/sources playground.matrix.resource.sources.post */ public function store( Requests\Source\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Source resource in storage. * - * @route DELETE /resource/matrix/lock/{source} playground.matrix.resource.sources.unlock + * @route DELETE /resource/matrix/sources/lock/{source} playground.matrix.resource.sources.unlock */ public function unlock( Source $source, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Source resource in storage. * - * @route PATCH /resource/matrix/{source} playground.matrix.resource.sources.patch + * @route PATCH /resource/matrix/sources/{source} playground.matrix.resource.sources.patch */ public function update( Source $source, diff --git a/src/Http/Controllers/SprintController.php b/src/Http/Controllers/SprintController.php index a570b43..8c60063 100644 --- a/src/Http/Controllers/SprintController.php +++ b/src/Http/Controllers/SprintController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Sprint resource in storage. * - * @route GET /resource/matrix/sprints/edit playground.matrix.resource.sprints.edit + * @route GET /resource/matrix/sprints/edit/{sprint} playground.matrix.resource.sprints.edit */ public function edit( Sprint $sprint, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Sprint resource from storage. * - * @route DELETE /resource/matrix/{sprint} playground.matrix.resource.sprints.destroy + * @route DELETE /resource/matrix/sprints/{sprint} playground.matrix.resource.sprints.destroy */ public function destroy( Sprint $sprint, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Sprint resource in storage. * - * @route PUT /resource/matrix/{sprint} playground.matrix.resource.sprints.lock + * @route PUT /resource/matrix/sprints/{sprint} playground.matrix.resource.sprints.lock */ public function lock( Sprint $sprint, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Sprint resources. * - * @route GET /resource/matrix playground.matrix.resource.sprints + * @route GET /resource/matrix/sprints playground.matrix.resource.sprints */ public function index( Requests\Sprint\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Sprint resource from the trash. * - * @route PUT /resource/matrix/restore/{sprint} playground.matrix.resource.sprints.restore + * @route PUT /resource/matrix/sprints/restore/{sprint} playground.matrix.resource.sprints.restore */ public function restore( Sprint $sprint, @@ -337,7 +337,7 @@ public function restore( /** * Display the Sprint resource. * - * @route GET /resource/matrix/{sprint} playground.matrix.resource.sprints.show + * @route GET /resource/matrix/sprints/{sprint} playground.matrix.resource.sprints.show */ public function show( Sprint $sprint, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Sprint resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.sprints.post + * @route POST /resource/matrix/sprints playground.matrix.resource.sprints.post */ public function store( Requests\Sprint\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Sprint resource in storage. * - * @route DELETE /resource/matrix/lock/{sprint} playground.matrix.resource.sprints.unlock + * @route DELETE /resource/matrix/sprints/lock/{sprint} playground.matrix.resource.sprints.unlock */ public function unlock( Sprint $sprint, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Sprint resource in storage. * - * @route PATCH /resource/matrix/{sprint} playground.matrix.resource.sprints.patch + * @route PATCH /resource/matrix/sprints/{sprint} playground.matrix.resource.sprints.patch */ public function update( Sprint $sprint, diff --git a/src/Http/Controllers/TagController.php b/src/Http/Controllers/TagController.php index a7557de..d487f61 100644 --- a/src/Http/Controllers/TagController.php +++ b/src/Http/Controllers/TagController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Tag resource in storage. * - * @route GET /resource/matrix/tags/edit playground.matrix.resource.tags.edit + * @route GET /resource/matrix/tags/edit/{tag} playground.matrix.resource.tags.edit */ public function edit( Tag $tag, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Tag resource from storage. * - * @route DELETE /resource/matrix/{tag} playground.matrix.resource.tags.destroy + * @route DELETE /resource/matrix/tags/{tag} playground.matrix.resource.tags.destroy */ public function destroy( Tag $tag, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Tag resource in storage. * - * @route PUT /resource/matrix/{tag} playground.matrix.resource.tags.lock + * @route PUT /resource/matrix/tags/{tag} playground.matrix.resource.tags.lock */ public function lock( Tag $tag, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Tag resources. * - * @route GET /resource/matrix playground.matrix.resource.tags + * @route GET /resource/matrix/tags playground.matrix.resource.tags */ public function index( Requests\Tag\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Tag resource from the trash. * - * @route PUT /resource/matrix/restore/{tag} playground.matrix.resource.tags.restore + * @route PUT /resource/matrix/tags/restore/{tag} playground.matrix.resource.tags.restore */ public function restore( Tag $tag, @@ -337,7 +337,7 @@ public function restore( /** * Display the Tag resource. * - * @route GET /resource/matrix/{tag} playground.matrix.resource.tags.show + * @route GET /resource/matrix/tags/{tag} playground.matrix.resource.tags.show */ public function show( Tag $tag, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Tag resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.tags.post + * @route POST /resource/matrix/tags playground.matrix.resource.tags.post */ public function store( Requests\Tag\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Tag resource in storage. * - * @route DELETE /resource/matrix/lock/{tag} playground.matrix.resource.tags.unlock + * @route DELETE /resource/matrix/tags/lock/{tag} playground.matrix.resource.tags.unlock */ public function unlock( Tag $tag, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Tag resource in storage. * - * @route PATCH /resource/matrix/{tag} playground.matrix.resource.tags.patch + * @route PATCH /resource/matrix/tags/{tag} playground.matrix.resource.tags.patch */ public function update( Tag $tag, diff --git a/src/Http/Controllers/TeamController.php b/src/Http/Controllers/TeamController.php index ad0ad10..1fb2640 100644 --- a/src/Http/Controllers/TeamController.php +++ b/src/Http/Controllers/TeamController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Team resource in storage. * - * @route GET /resource/matrix/teams/edit playground.matrix.resource.teams.edit + * @route GET /resource/matrix/teams/edit/{team} playground.matrix.resource.teams.edit */ public function edit( Team $team, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Team resource from storage. * - * @route DELETE /resource/matrix/{team} playground.matrix.resource.teams.destroy + * @route DELETE /resource/matrix/teams/{team} playground.matrix.resource.teams.destroy */ public function destroy( Team $team, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Team resource in storage. * - * @route PUT /resource/matrix/{team} playground.matrix.resource.teams.lock + * @route PUT /resource/matrix/teams/{team} playground.matrix.resource.teams.lock */ public function lock( Team $team, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Team resources. * - * @route GET /resource/matrix playground.matrix.resource.teams + * @route GET /resource/matrix/teams playground.matrix.resource.teams */ public function index( Requests\Team\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Team resource from the trash. * - * @route PUT /resource/matrix/restore/{team} playground.matrix.resource.teams.restore + * @route PUT /resource/matrix/teams/restore/{team} playground.matrix.resource.teams.restore */ public function restore( Team $team, @@ -337,7 +337,7 @@ public function restore( /** * Display the Team resource. * - * @route GET /resource/matrix/{team} playground.matrix.resource.teams.show + * @route GET /resource/matrix/teams/{team} playground.matrix.resource.teams.show */ public function show( Team $team, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Team resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.teams.post + * @route POST /resource/matrix/teams playground.matrix.resource.teams.post */ public function store( Requests\Team\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Team resource in storage. * - * @route DELETE /resource/matrix/lock/{team} playground.matrix.resource.teams.unlock + * @route DELETE /resource/matrix/teams/lock/{team} playground.matrix.resource.teams.unlock */ public function unlock( Team $team, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Team resource in storage. * - * @route PATCH /resource/matrix/{team} playground.matrix.resource.teams.patch + * @route PATCH /resource/matrix/teams/{team} playground.matrix.resource.teams.patch */ public function update( Team $team, diff --git a/src/Http/Controllers/TicketController.php b/src/Http/Controllers/TicketController.php index a3172c1..fdacbc5 100644 --- a/src/Http/Controllers/TicketController.php +++ b/src/Http/Controllers/TicketController.php @@ -97,7 +97,7 @@ public function create( /** * Edit the Ticket resource in storage. * - * @route GET /resource/matrix/tickets/edit playground.matrix.resource.tickets.edit + * @route GET /resource/matrix/tickets/edit/{ticket} playground.matrix.resource.tickets.edit */ public function edit( Ticket $ticket, @@ -146,7 +146,7 @@ public function edit( /** * Remove the Ticket resource from storage. * - * @route DELETE /resource/matrix/{ticket} playground.matrix.resource.tickets.destroy + * @route DELETE /resource/matrix/tickets/{ticket} playground.matrix.resource.tickets.destroy */ public function destroy( Ticket $ticket, @@ -183,7 +183,7 @@ public function destroy( /** * Lock the Ticket resource in storage. * - * @route PUT /resource/matrix/{ticket} playground.matrix.resource.tickets.lock + * @route PUT /resource/matrix/tickets/{ticket} playground.matrix.resource.tickets.lock */ public function lock( Ticket $ticket, @@ -230,7 +230,7 @@ public function lock( /** * Display a listing of Ticket resources. * - * @route GET /resource/matrix playground.matrix.resource.tickets + * @route GET /resource/matrix/tickets playground.matrix.resource.tickets */ public function index( Requests\Ticket\IndexRequest $request @@ -302,7 +302,7 @@ public function index( /** * Restore the Ticket resource from the trash. * - * @route PUT /resource/matrix/restore/{ticket} playground.matrix.resource.tickets.restore + * @route PUT /resource/matrix/tickets/restore/{ticket} playground.matrix.resource.tickets.restore */ public function restore( Ticket $ticket, @@ -340,7 +340,7 @@ public function restore( /** * Display the Ticket resource. * - * @route GET /resource/matrix/{ticket} playground.matrix.resource.tickets.show + * @route GET /resource/matrix/tickets/{ticket} playground.matrix.resource.tickets.show */ public function show( Ticket $ticket, @@ -379,7 +379,7 @@ public function show( /** * Store a newly created API Ticket resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.tickets.post + * @route POST /resource/matrix/tickets playground.matrix.resource.tickets.post */ public function store( Requests\Ticket\StoreRequest $request @@ -420,7 +420,7 @@ public function store( /** * Unlock the Ticket resource in storage. * - * @route DELETE /resource/matrix/lock/{ticket} playground.matrix.resource.tickets.unlock + * @route DELETE /resource/matrix/tickets/lock/{ticket} playground.matrix.resource.tickets.unlock */ public function unlock( Ticket $ticket, @@ -460,7 +460,7 @@ public function unlock( /** * Update the Ticket resource in storage. * - * @route PATCH /resource/matrix/{ticket} playground.matrix.resource.tickets.patch + * @route PATCH /resource/matrix/tickets/{ticket} playground.matrix.resource.tickets.patch */ public function update( Ticket $ticket, diff --git a/src/Http/Controllers/VersionController.php b/src/Http/Controllers/VersionController.php index 5a95a60..2810f59 100644 --- a/src/Http/Controllers/VersionController.php +++ b/src/Http/Controllers/VersionController.php @@ -94,7 +94,7 @@ public function create( /** * Edit the Version resource in storage. * - * @route GET /resource/matrix/versions/edit playground.matrix.resource.versions.edit + * @route GET /resource/matrix/versions/edit/{version} playground.matrix.resource.versions.edit */ public function edit( Version $version, @@ -143,7 +143,7 @@ public function edit( /** * Remove the Version resource from storage. * - * @route DELETE /resource/matrix/{version} playground.matrix.resource.versions.destroy + * @route DELETE /resource/matrix/versions/{version} playground.matrix.resource.versions.destroy */ public function destroy( Version $version, @@ -180,7 +180,7 @@ public function destroy( /** * Lock the Version resource in storage. * - * @route PUT /resource/matrix/{version} playground.matrix.resource.versions.lock + * @route PUT /resource/matrix/versions/{version} playground.matrix.resource.versions.lock */ public function lock( Version $version, @@ -227,7 +227,7 @@ public function lock( /** * Display a listing of Version resources. * - * @route GET /resource/matrix playground.matrix.resource.versions + * @route GET /resource/matrix/versions playground.matrix.resource.versions */ public function index( Requests\Version\IndexRequest $request @@ -299,7 +299,7 @@ public function index( /** * Restore the Version resource from the trash. * - * @route PUT /resource/matrix/restore/{version} playground.matrix.resource.versions.restore + * @route PUT /resource/matrix/versions/restore/{version} playground.matrix.resource.versions.restore */ public function restore( Version $version, @@ -337,7 +337,7 @@ public function restore( /** * Display the Version resource. * - * @route GET /resource/matrix/{version} playground.matrix.resource.versions.show + * @route GET /resource/matrix/versions/{version} playground.matrix.resource.versions.show */ public function show( Version $version, @@ -376,7 +376,7 @@ public function show( /** * Store a newly created API Version resource in storage. * - * @route POST /resource/matrix playground.matrix.resource.versions.post + * @route POST /resource/matrix/versions playground.matrix.resource.versions.post */ public function store( Requests\Version\StoreRequest $request @@ -415,7 +415,7 @@ public function store( /** * Unlock the Version resource in storage. * - * @route DELETE /resource/matrix/lock/{version} playground.matrix.resource.versions.unlock + * @route DELETE /resource/matrix/versions/lock/{version} playground.matrix.resource.versions.unlock */ public function unlock( Version $version, @@ -455,7 +455,7 @@ public function unlock( /** * Update the Version resource in storage. * - * @route PATCH /resource/matrix/{version} playground.matrix.resource.versions.patch + * @route PATCH /resource/matrix/versions/{version} playground.matrix.resource.versions.patch */ public function update( Version $version, diff --git a/src/Http/Requests/Backlog/CreateRequest.php b/src/Http/Requests/Backlog/CreateRequest.php index 8fff332..59bcb53 100644 --- a/src/Http/Requests/Backlog/CreateRequest.php +++ b/src/Http/Requests/Backlog/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'backlog_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'backlog_type' => ['nullable', 'string'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class CreateRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class CreateRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Backlog/EditRequest.php b/src/Http/Requests/Backlog/EditRequest.php index dffa921..d0982b0 100644 --- a/src/Http/Requests/Backlog/EditRequest.php +++ b/src/Http/Requests/Backlog/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'backlog_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'backlog_type' => ['nullable', 'string'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class EditRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class EditRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Backlog/IndexRequest.php b/src/Http/Requests/Backlog/IndexRequest.php index 0a47480..6b35fd0 100644 --- a/src/Http/Requests/Backlog/IndexRequest.php +++ b/src/Http/Requests/Backlog/IndexRequest.php @@ -17,23 +17,21 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationDates = [ - 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'nullable' => true], - 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], + 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -45,18 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'icon' => 'fa-solid fa-clone'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'icon' => 'fa-solid fa-wrench'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'icon' => 'fa-solid fa-check-double text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -65,40 +63,41 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ - 'id' => ['column' => 'id', 'label' => 'Id', 'type' => 'uuid', 'nullable' => false], - 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created By Id', 'type' => 'uuid', 'nullable' => true], - 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified By Id', 'type' => 'uuid', 'nullable' => true], - 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned By Id', 'type' => 'uuid', 'nullable' => true], - 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent Id', 'type' => 'uuid', 'nullable' => true], + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], 'backlog_type' => ['column' => 'backlog_type', 'label' => 'Backlog Type', 'type' => 'string', 'nullable' => true], - 'board_id' => ['column' => 'board_id', 'label' => 'Board Id', 'type' => 'uuid', 'nullable' => true], - 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic Id', 'type' => 'uuid', 'nullable' => true], - 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow Id', 'type' => 'uuid', 'nullable' => true], + 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], + 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], + 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], + 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'uuid', 'nullable' => true], + 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'uuid', 'nullable' => true], + 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'uuid', 'nullable' => true], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], - 'milestone_id' => ['column' => 'milestone_id', 'label' => 'Milestone Id', 'type' => 'uuid', 'nullable' => true], - 'note_id' => ['column' => 'note_id', 'label' => 'Note Id', 'type' => 'uuid', 'nullable' => true], - 'project_id' => ['column' => 'project_id', 'label' => 'Project Id', 'type' => 'uuid', 'nullable' => true], - 'release_id' => ['column' => 'release_id', 'label' => 'Release Id', 'type' => 'uuid', 'nullable' => true], - 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap Id', 'type' => 'uuid', 'nullable' => true], - 'source_id' => ['column' => 'source_id', 'label' => 'Source Id', 'type' => 'uuid', 'nullable' => true], - 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint Id', 'type' => 'uuid', 'nullable' => true], - 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag Id', 'type' => 'uuid', 'nullable' => true], - 'team_id' => ['column' => 'team_id', 'label' => 'Team Id', 'type' => 'uuid', 'nullable' => true], - 'ticket_id' => ['column' => 'ticket_id', 'label' => 'Ticket Id', 'type' => 'uuid', 'nullable' => true], - 'version_id' => ['column' => 'version_id', 'label' => 'Version Id', 'type' => 'uuid', 'nullable' => true], + 'milestone_id' => ['column' => 'milestone_id', 'label' => 'Milestone id', 'type' => 'uuid', 'nullable' => true], + 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'uuid', 'nullable' => true], + 'project_id' => ['column' => 'project_id', 'label' => 'Project id', 'type' => 'uuid', 'nullable' => true], + 'release_id' => ['column' => 'release_id', 'label' => 'Release id', 'type' => 'uuid', 'nullable' => true], + 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap id', 'type' => 'uuid', 'nullable' => true], + 'source_id' => ['column' => 'source_id', 'label' => 'Source id', 'type' => 'uuid', 'nullable' => true], + 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint id', 'type' => 'uuid', 'nullable' => true], + 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'uuid', 'nullable' => true], + 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'uuid', 'nullable' => true], + 'ticket_id' => ['column' => 'ticket_id', 'label' => 'Ticket id', 'type' => 'uuid', 'nullable' => true], + 'version_id' => ['column' => 'version_id', 'label' => 'Version id', 'type' => 'uuid', 'nullable' => true], ]; /** * @var array> */ protected array $paginationColumns = [ - 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => false], - 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => false], - 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => false], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], + 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], + 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], + 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], 'slug' => ['column' => 'slug', 'label' => 'Slug', 'type' => 'string', 'nullable' => true], - 'url' => ['column' => 'url', 'label' => 'Url', 'type' => 'string', 'nullable' => false], - 'description' => ['column' => 'description', 'label' => 'Description', 'type' => 'string', 'nullable' => false], - 'introduction' => ['column' => 'introduction', 'label' => 'Introduction', 'type' => 'string', 'nullable' => false], + 'url' => ['column' => 'url', 'label' => 'Url', 'type' => 'string', 'nullable' => true], + 'description' => ['column' => 'description', 'label' => 'Description', 'type' => 'string', 'nullable' => true], + 'introduction' => ['column' => 'introduction', 'label' => 'Introduction', 'type' => 'string', 'nullable' => true], 'content' => ['column' => 'content', 'label' => 'Content', 'type' => 'mediumText', 'nullable' => true], 'summary' => ['column' => 'summary', 'label' => 'Summary', 'type' => 'mediumText', 'nullable' => true], ]; @@ -107,52 +106,50 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ - 'id' => ['column' => 'id', 'label' => 'Id', 'type' => 'string'], - 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created By Id', 'type' => 'string'], - 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified By Id', 'type' => 'string'], - 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned By Id', 'type' => 'string'], - 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent Id', 'type' => 'string'], + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], 'backlog_type' => ['column' => 'backlog_type', 'label' => 'Backlog Type', 'type' => 'string'], - 'board_id' => ['column' => 'board_id', 'label' => 'Board Id', 'type' => 'string'], - 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic Id', 'type' => 'string'], - 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow Id', 'type' => 'string'], + 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], + 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], + 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], + 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], + 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], + 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'string'], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'string'], - 'milestone_id' => ['column' => 'milestone_id', 'label' => 'Milestone Id', 'type' => 'string'], - 'note_id' => ['column' => 'note_id', 'label' => 'Note Id', 'type' => 'string'], - 'project_id' => ['column' => 'project_id', 'label' => 'Project Id', 'type' => 'string'], - 'release_id' => ['column' => 'release_id', 'label' => 'Release Id', 'type' => 'string'], - 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap Id', 'type' => 'string'], - 'source_id' => ['column' => 'source_id', 'label' => 'Source Id', 'type' => 'string'], - 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint Id', 'type' => 'string'], - 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag Id', 'type' => 'string'], - 'team_id' => ['column' => 'team_id', 'label' => 'Team Id', 'type' => 'string'], - 'ticket_id' => ['column' => 'ticket_id', 'label' => 'Ticket Id', 'type' => 'string'], - 'version_id' => ['column' => 'version_id', 'label' => 'Version Id', 'type' => 'string'], + 'milestone_id' => ['column' => 'milestone_id', 'label' => 'Milestone id', 'type' => 'string'], + 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'string'], + 'project_id' => ['column' => 'project_id', 'label' => 'Project id', 'type' => 'string'], + 'release_id' => ['column' => 'release_id', 'label' => 'Release id', 'type' => 'string'], + 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap id', 'type' => 'string'], + 'source_id' => ['column' => 'source_id', 'label' => 'Source id', 'type' => 'string'], + 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint id', 'type' => 'string'], + 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'string'], + 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'string'], + 'ticket_id' => ['column' => 'ticket_id', 'label' => 'Ticket id', 'type' => 'string'], + 'version_id' => ['column' => 'version_id', 'label' => 'Version id', 'type' => 'string'], 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'type' => 'string'], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'type' => 'string'], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'type' => 'string'], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'type' => 'string'], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed At', 'type' => 'string'], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'type' => 'string'], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'type' => 'string'], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'type' => 'string'], - 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved At', 'type' => 'string'], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'type' => 'string'], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], 'pw' => ['column' => 'pw', 'label' => 'Pw', 'type' => 'integer'], - 'only_admin' => ['column' => 'only_admin', 'label' => 'Only Admin', 'type' => 'boolean'], - 'only_user' => ['column' => 'only_user', 'label' => 'Only User', 'type' => 'boolean'], - 'only_guest' => ['column' => 'only_guest', 'label' => 'Only Guest', 'type' => 'boolean'], - 'allow_public' => ['column' => 'allow_public', 'label' => 'Allow Public', 'type' => 'boolean'], + 'only_admin' => ['column' => 'only_admin', 'label' => 'Only admin', 'type' => 'boolean'], + 'only_user' => ['column' => 'only_user', 'label' => 'Only user', 'type' => 'boolean'], + 'only_guest' => ['column' => 'only_guest', 'label' => 'Only guest', 'type' => 'boolean'], + 'allow_public' => ['column' => 'allow_public', 'label' => 'Allow public', 'type' => 'boolean'], 'status' => ['column' => 'status', 'label' => 'Status', 'type' => 'integer'], 'rank' => ['column' => 'rank', 'label' => 'Rank', 'type' => 'integer'], 'size' => ['column' => 'size', 'label' => 'Size', 'type' => 'integer'], @@ -172,20 +169,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'type' => 'boolean'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -203,6 +201,7 @@ class IndexRequest extends BaseIndexRequest 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], 'board' => ['column' => 'board', 'label' => 'Board', 'type' => 'JSON_OBJECT'], 'flow' => ['column' => 'flow', 'label' => 'Flow', 'type' => 'JSON_OBJECT'], + 'history' => ['column' => 'history', 'label' => 'History', 'type' => 'JSON_OBJECT'], 'meta' => ['column' => 'meta', 'label' => 'Meta', 'type' => 'JSON_OBJECT'], 'notes' => ['column' => 'notes', 'label' => 'Notes', 'type' => 'JSON_ARRAY'], 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], diff --git a/src/Http/Requests/Backlog/StoreRequest.php b/src/Http/Requests/Backlog/StoreRequest.php index b0420b3..0875983 100644 --- a/src/Http/Requests/Backlog/StoreRequest.php +++ b/src/Http/Requests/Backlog/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'backlog_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'backlog_type' => ['nullable', 'string'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class StoreRequest extends BaseStoreRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class StoreRequest extends BaseStoreRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -114,6 +114,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_backlogs'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Backlog/UpdateRequest.php b/src/Http/Requests/Backlog/UpdateRequest.php index a6d2612..2a33850 100644 --- a/src/Http/Requests/Backlog/UpdateRequest.php +++ b/src/Http/Requests/Backlog/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'backlog_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'backlog_type' => ['nullable', 'string'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class UpdateRequest extends BaseUpdateRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class UpdateRequest extends BaseUpdateRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -114,6 +114,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_backlogs'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Board/CreateRequest.php b/src/Http/Requests/Board/CreateRequest.php index 86e5395..4ffdb7c 100644 --- a/src/Http/Requests/Board/CreateRequest.php +++ b/src/Http/Requests/Board/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'board_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'board_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class CreateRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class CreateRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Board/EditRequest.php b/src/Http/Requests/Board/EditRequest.php index ab994c4..7a876a0 100644 --- a/src/Http/Requests/Board/EditRequest.php +++ b/src/Http/Requests/Board/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'board_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'board_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class EditRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class EditRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Board/IndexRequest.php b/src/Http/Requests/Board/IndexRequest.php index 709e993..afb2d0a 100644 --- a/src/Http/Requests/Board/IndexRequest.php +++ b/src/Http/Requests/Board/IndexRequest.php @@ -18,22 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -45,18 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'icon' => 'fa-solid fa-clone'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'icon' => 'fa-solid fa-wrench'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'icon' => 'fa-solid fa-check-double text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -65,11 +63,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'board_type' => ['column' => 'board_type', 'label' => 'Board Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], - 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'board_type' => ['column' => 'board_type', 'label' => 'Board type', 'type' => 'string', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'uuid', 'nullable' => true], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'uuid', 'nullable' => true], 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'uuid', 'nullable' => true], @@ -91,6 +90,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -106,11 +106,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'board_type' => ['column' => 'board_type', 'label' => 'Board Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'board_type' => ['column' => 'board_type', 'label' => 'Board type', 'type' => 'string'], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'string'], @@ -129,20 +130,18 @@ class IndexRequest extends BaseIndexRequest 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released at', 'type' => 'string'], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -170,20 +169,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'type' => 'boolean'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -201,6 +201,7 @@ class IndexRequest extends BaseIndexRequest 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], 'board' => ['column' => 'board', 'label' => 'Board', 'type' => 'JSON_OBJECT'], 'flow' => ['column' => 'flow', 'label' => 'Flow', 'type' => 'JSON_OBJECT'], + 'history' => ['column' => 'history', 'label' => 'History', 'type' => 'JSON_OBJECT'], 'meta' => ['column' => 'meta', 'label' => 'Meta', 'type' => 'JSON_OBJECT'], 'notes' => ['column' => 'notes', 'label' => 'Notes', 'type' => 'JSON_ARRAY'], 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], diff --git a/src/Http/Requests/Board/StoreRequest.php b/src/Http/Requests/Board/StoreRequest.php index 8ce14b7..6f4d09a 100644 --- a/src/Http/Requests/Board/StoreRequest.php +++ b/src/Http/Requests/Board/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'board_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'board_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class StoreRequest extends BaseStoreRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class StoreRequest extends BaseStoreRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -114,6 +114,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_boards'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Board/UpdateRequest.php b/src/Http/Requests/Board/UpdateRequest.php index 1eb2ba6..047c183 100644 --- a/src/Http/Requests/Board/UpdateRequest.php +++ b/src/Http/Requests/Board/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'board_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'board_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class UpdateRequest extends BaseUpdateRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class UpdateRequest extends BaseUpdateRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -114,6 +114,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_boards'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Epic/CreateRequest.php b/src/Http/Requests/Epic/CreateRequest.php index b6dbed5..2046647 100644 --- a/src/Http/Requests/Epic/CreateRequest.php +++ b/src/Http/Requests/Epic/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'epic_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'epic_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class CreateRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class CreateRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Epic/EditRequest.php b/src/Http/Requests/Epic/EditRequest.php index 9355f94..1f9dd73 100644 --- a/src/Http/Requests/Epic/EditRequest.php +++ b/src/Http/Requests/Epic/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'epic_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'epic_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class EditRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class EditRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Epic/IndexRequest.php b/src/Http/Requests/Epic/IndexRequest.php index 63ae111..12bed88 100644 --- a/src/Http/Requests/Epic/IndexRequest.php +++ b/src/Http/Requests/Epic/IndexRequest.php @@ -18,22 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -45,18 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'icon' => 'fa-solid fa-clone'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'icon' => 'fa-solid fa-wrench'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'icon' => 'fa-solid fa-check-double text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -65,11 +63,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'epic_type' => ['column' => 'epic_type', 'label' => 'Epic Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], - 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'epic_type' => ['column' => 'epic_type', 'label' => 'Epic type', 'type' => 'string', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'uuid', 'nullable' => true], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'uuid', 'nullable' => true], 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'uuid', 'nullable' => true], @@ -91,6 +90,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -106,11 +106,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'epic_type' => ['column' => 'epic_type', 'label' => 'Epic Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'epic_type' => ['column' => 'epic_type', 'label' => 'Epic type', 'type' => 'string'], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'string'], @@ -129,20 +130,18 @@ class IndexRequest extends BaseIndexRequest 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released at', 'type' => 'string'], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -170,20 +169,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'type' => 'boolean'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -201,6 +201,7 @@ class IndexRequest extends BaseIndexRequest 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], 'board' => ['column' => 'board', 'label' => 'Board', 'type' => 'JSON_OBJECT'], 'flow' => ['column' => 'flow', 'label' => 'Flow', 'type' => 'JSON_OBJECT'], + 'history' => ['column' => 'history', 'label' => 'History', 'type' => 'JSON_OBJECT'], 'meta' => ['column' => 'meta', 'label' => 'Meta', 'type' => 'JSON_OBJECT'], 'notes' => ['column' => 'notes', 'label' => 'Notes', 'type' => 'JSON_ARRAY'], 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], diff --git a/src/Http/Requests/Epic/StoreRequest.php b/src/Http/Requests/Epic/StoreRequest.php index 0d5426c..319ee4a 100644 --- a/src/Http/Requests/Epic/StoreRequest.php +++ b/src/Http/Requests/Epic/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'epic_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'epic_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class StoreRequest extends BaseStoreRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class StoreRequest extends BaseStoreRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -114,6 +114,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_epics'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Epic/UpdateRequest.php b/src/Http/Requests/Epic/UpdateRequest.php index b111658..7c077f5 100644 --- a/src/Http/Requests/Epic/UpdateRequest.php +++ b/src/Http/Requests/Epic/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'epic_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'epic_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class UpdateRequest extends BaseUpdateRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class UpdateRequest extends BaseUpdateRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -114,6 +114,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_epics'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Flow/CreateRequest.php b/src/Http/Requests/Flow/CreateRequest.php index df6a9fa..bf2de3c 100644 --- a/src/Http/Requests/Flow/CreateRequest.php +++ b/src/Http/Requests/Flow/CreateRequest.php @@ -17,21 +17,25 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'flow_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'flow_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'note_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], + 'canceled_at' => ['nullable', 'string'], + 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -55,16 +59,25 @@ class CreateRequest extends FormRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'canceled' => ['boolean'], + 'closed' => ['boolean'], + 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -79,12 +92,8 @@ class CreateRequest extends FormRequest 'avatar' => ['string'], 'ui' => ['nullable', 'array'], 'assets' => ['nullable', 'array'], - 'backlog' => ['nullable', 'array'], - 'board' => ['nullable', 'array'], - 'flow' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], - 'roadmap' => ['nullable', 'array'], 'sources' => ['nullable', 'array'], '_return_url' => ['nullable', 'url'], ]; diff --git a/src/Http/Requests/Flow/EditRequest.php b/src/Http/Requests/Flow/EditRequest.php index f78e339..8d87224 100644 --- a/src/Http/Requests/Flow/EditRequest.php +++ b/src/Http/Requests/Flow/EditRequest.php @@ -17,21 +17,25 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'flow_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'flow_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'note_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], + 'canceled_at' => ['nullable', 'string'], + 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -55,16 +59,25 @@ class EditRequest extends FormRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'canceled' => ['boolean'], + 'closed' => ['boolean'], + 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -79,12 +92,8 @@ class EditRequest extends FormRequest 'avatar' => ['string'], 'ui' => ['nullable', 'array'], 'assets' => ['nullable', 'array'], - 'backlog' => ['nullable', 'array'], - 'board' => ['nullable', 'array'], - 'flow' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], - 'roadmap' => ['nullable', 'array'], 'sources' => ['nullable', 'array'], '_return_url' => ['nullable', 'url'], ]; diff --git a/src/Http/Requests/Flow/IndexRequest.php b/src/Http/Requests/Flow/IndexRequest.php index 633c159..48990c4 100644 --- a/src/Http/Requests/Flow/IndexRequest.php +++ b/src/Http/Requests/Flow/IndexRequest.php @@ -18,16 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -35,14 +39,22 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationFlags = [ 'active' => ['column' => 'active', 'label' => 'Active', 'icon' => 'fa-solid fa-person-running'], + 'canceled' => ['column' => 'canceled', 'label' => 'Canceled', 'icon' => 'fa-solid fa-ban text-warning'], + 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], + 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], + 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], + 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -51,11 +63,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'flow_type' => ['column' => 'flow_type', 'label' => 'Flow Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], - 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'flow_type' => ['column' => 'flow_type', 'label' => 'Flow type', 'type' => 'string', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'uuid', 'nullable' => true], 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'uuid', 'nullable' => true], @@ -66,6 +79,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -81,11 +95,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'flow_type' => ['column' => 'flow_type', 'label' => 'Flow Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'flow_type' => ['column' => 'flow_type', 'label' => 'Flow type', 'type' => 'string'], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'string'], 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'string'], 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'string'], @@ -93,14 +108,18 @@ class IndexRequest extends BaseIndexRequest 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -124,16 +143,25 @@ class IndexRequest extends BaseIndexRequest 'latitude' => ['column' => 'latitude', 'label' => 'Latitude', 'type' => 'float'], 'longitude' => ['column' => 'longitude', 'label' => 'Longitude', 'type' => 'float'], 'active' => ['column' => 'active', 'label' => 'Active', 'type' => 'boolean'], + 'canceled' => ['column' => 'canceled', 'label' => 'Canceled', 'type' => 'boolean'], + 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], + 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], + 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], + 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -148,13 +176,9 @@ class IndexRequest extends BaseIndexRequest 'avatar' => ['column' => 'avatar', 'label' => 'Avatar', 'type' => 'string'], 'ui' => ['column' => 'ui', 'label' => 'Ui', 'type' => 'JSON_OBJECT'], 'assets' => ['column' => 'assets', 'label' => 'Assets', 'type' => 'JSON_OBJECT'], - 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], - 'board' => ['column' => 'board', 'label' => 'Board', 'type' => 'JSON_OBJECT'], - 'flow' => ['column' => 'flow', 'label' => 'Flow', 'type' => 'JSON_OBJECT'], 'meta' => ['column' => 'meta', 'label' => 'Meta', 'type' => 'JSON_OBJECT'], 'notes' => ['column' => 'notes', 'label' => 'Notes', 'type' => 'JSON_ARRAY'], 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], - 'roadmap' => ['column' => 'roadmap', 'label' => 'Roadmap', 'type' => 'JSON_OBJECT'], 'sources' => ['column' => 'sources', 'label' => 'Sources', 'type' => 'JSON_OBJECT'], ]; } diff --git a/src/Http/Requests/Flow/StoreRequest.php b/src/Http/Requests/Flow/StoreRequest.php index 223af73..b3c29e5 100644 --- a/src/Http/Requests/Flow/StoreRequest.php +++ b/src/Http/Requests/Flow/StoreRequest.php @@ -17,21 +17,25 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'flow_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'flow_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'note_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], + 'canceled_at' => ['nullable', 'string'], + 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -55,16 +59,25 @@ class StoreRequest extends BaseStoreRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'canceled' => ['boolean'], + 'closed' => ['boolean'], + 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -79,16 +92,35 @@ class StoreRequest extends BaseStoreRequest 'avatar' => ['string'], 'ui' => ['nullable', 'array'], 'assets' => ['nullable', 'array'], - 'backlog' => ['nullable', 'array'], - 'board' => ['nullable', 'array'], - 'flow' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], - 'roadmap' => ['nullable', 'array'], 'sources' => ['nullable', 'array'], '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_flows'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Flow/UpdateRequest.php b/src/Http/Requests/Flow/UpdateRequest.php index 14e3e66..2408178 100644 --- a/src/Http/Requests/Flow/UpdateRequest.php +++ b/src/Http/Requests/Flow/UpdateRequest.php @@ -17,21 +17,25 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'flow_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'flow_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'note_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], + 'canceled_at' => ['nullable', 'string'], + 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -55,16 +59,25 @@ class UpdateRequest extends BaseUpdateRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'canceled' => ['boolean'], + 'closed' => ['boolean'], + 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -79,16 +92,35 @@ class UpdateRequest extends BaseUpdateRequest 'avatar' => ['string'], 'ui' => ['nullable', 'array'], 'assets' => ['nullable', 'array'], - 'backlog' => ['nullable', 'array'], - 'board' => ['nullable', 'array'], - 'flow' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], - 'roadmap' => ['nullable', 'array'], 'sources' => ['nullable', 'array'], '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_flows'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/FormRequest.php b/src/Http/Requests/FormRequest.php index 1a7b67c..f50cc46 100644 --- a/src/Http/Requests/FormRequest.php +++ b/src/Http/Requests/FormRequest.php @@ -24,7 +24,6 @@ class FormRequest extends BaseFormRequest */ public function authorize(): bool { - // return true; $user = $this->user(); if (empty($user)) { diff --git a/src/Http/Requests/Index/IndexRequest.php b/src/Http/Requests/Index/IndexRequest.php deleted file mode 100644 index add02c2..0000000 --- a/src/Http/Requests/Index/IndexRequest.php +++ /dev/null @@ -1,16 +0,0 @@ -> */ public const RULES = [ + 'matrix_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'matrix_type' => ['nullable', 'string'], - 'matrix_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -58,15 +59,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Matrix/EditRequest.php b/src/Http/Requests/Matrix/EditRequest.php index 128d6eb..bef7957 100644 --- a/src/Http/Requests/Matrix/EditRequest.php +++ b/src/Http/Requests/Matrix/EditRequest.php @@ -17,20 +17,21 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'matrix_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'matrix_type' => ['nullable', 'string'], - 'matrix_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -58,15 +59,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Matrix/IndexRequest.php b/src/Http/Requests/Matrix/IndexRequest.php index 2ed1f24..011653d 100644 --- a/src/Http/Requests/Matrix/IndexRequest.php +++ b/src/Http/Requests/Matrix/IndexRequest.php @@ -17,16 +17,21 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationDates = [ - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], + 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -38,13 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], + 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], + 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -53,15 +63,19 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ - 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], - 'matrix_type' => ['column' => 'matrix_type', 'label' => 'Matrix type', 'type' => 'string', 'nullable' => true], + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'matrix_type' => ['column' => 'matrix_type', 'label' => 'Matrix Type', 'type' => 'string', 'nullable' => true], + 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], + 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], ]; /** * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -77,25 +91,27 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'matrix_type' => ['column' => 'matrix_type', 'label' => 'Matrix Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'matrix_type' => ['column' => 'matrix_type', 'label' => 'Matrix type', 'type' => 'string'], - 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'string'], 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -123,15 +139,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], + 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], + 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], diff --git a/src/Http/Requests/Matrix/StoreRequest.php b/src/Http/Requests/Matrix/StoreRequest.php index 53b62e4..366685f 100644 --- a/src/Http/Requests/Matrix/StoreRequest.php +++ b/src/Http/Requests/Matrix/StoreRequest.php @@ -17,20 +17,21 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'matrix_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'matrix_type' => ['nullable', 'string'], - 'matrix_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -58,15 +59,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -87,6 +94,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_matrices'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Matrix/UpdateRequest.php b/src/Http/Requests/Matrix/UpdateRequest.php index 7c81b42..d808a8f 100644 --- a/src/Http/Requests/Matrix/UpdateRequest.php +++ b/src/Http/Requests/Matrix/UpdateRequest.php @@ -17,20 +17,21 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'matrix_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'matrix_type' => ['nullable', 'string'], - 'matrix_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -58,15 +59,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -87,6 +94,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_matrices'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Milestone/CreateRequest.php b/src/Http/Requests/Milestone/CreateRequest.php index 408c9dd..065ffd8 100644 --- a/src/Http/Requests/Milestone/CreateRequest.php +++ b/src/Http/Requests/Milestone/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'milestone_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'milestone_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class CreateRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,20 +74,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -105,6 +106,7 @@ class CreateRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Milestone/EditRequest.php b/src/Http/Requests/Milestone/EditRequest.php index ab9f629..a41e43c 100644 --- a/src/Http/Requests/Milestone/EditRequest.php +++ b/src/Http/Requests/Milestone/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'milestone_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'milestone_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class EditRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,20 +74,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -105,6 +106,7 @@ class EditRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Milestone/IndexRequest.php b/src/Http/Requests/Milestone/IndexRequest.php index 16cbfff..e0a6c34 100644 --- a/src/Http/Requests/Milestone/IndexRequest.php +++ b/src/Http/Requests/Milestone/IndexRequest.php @@ -18,20 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -43,18 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'icon' => 'fa-solid fa-clone'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'icon' => 'fa-solid fa-wrench'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'icon' => 'fa-solid fa-check-double text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -63,24 +63,25 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'milestone_type' => ['column' => 'milestone_type', 'label' => 'Milestone Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'milestone_type' => ['column' => 'milestone_type', 'label' => 'Milestone type', 'type' => 'string', 'nullable' => true], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'uuid', 'nullable' => true], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'uuid', 'nullable' => true], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'uuid', 'nullable' => true], 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'uuid', 'nullable' => true], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'uuid', 'nullable' => true], - 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'uuid', 'nullable' => true], - 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'uuid', 'nullable' => true], 'project_id' => ['column' => 'project_id', 'label' => 'Project id', 'type' => 'uuid', 'nullable' => true], 'release_id' => ['column' => 'release_id', 'label' => 'Release id', 'type' => 'uuid', 'nullable' => true], 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap id', 'type' => 'uuid', 'nullable' => true], 'source_id' => ['column' => 'source_id', 'label' => 'Source id', 'type' => 'uuid', 'nullable' => true], 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint id', 'type' => 'uuid', 'nullable' => true], + 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'uuid', 'nullable' => true], + 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'uuid', 'nullable' => true], 'ticket_id' => ['column' => 'ticket_id', 'label' => 'Ticket id', 'type' => 'uuid', 'nullable' => true], 'version_id' => ['column' => 'version_id', 'label' => 'Version id', 'type' => 'uuid', 'nullable' => true], ]; @@ -89,6 +90,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -104,30 +106,42 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'milestone_type' => ['column' => 'milestone_type', 'label' => 'Milestone Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'milestone_type' => ['column' => 'milestone_type', 'label' => 'Milestone type', 'type' => 'string'], + 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], + 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], + 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], + 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'string'], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'string'], 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'string'], + 'project_id' => ['column' => 'project_id', 'label' => 'Project id', 'type' => 'string'], + 'release_id' => ['column' => 'release_id', 'label' => 'Release id', 'type' => 'string'], + 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap id', 'type' => 'string'], + 'source_id' => ['column' => 'source_id', 'label' => 'Source id', 'type' => 'string'], + 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint id', 'type' => 'string'], 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'string'], 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'string'], + 'ticket_id' => ['column' => 'ticket_id', 'label' => 'Ticket id', 'type' => 'string'], + 'version_id' => ['column' => 'version_id', 'label' => 'Version id', 'type' => 'string'], 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -155,20 +169,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'type' => 'boolean'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -186,21 +201,11 @@ class IndexRequest extends BaseIndexRequest 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], 'board' => ['column' => 'board', 'label' => 'Board', 'type' => 'JSON_OBJECT'], 'flow' => ['column' => 'flow', 'label' => 'Flow', 'type' => 'JSON_OBJECT'], + 'history' => ['column' => 'history', 'label' => 'History', 'type' => 'JSON_OBJECT'], 'meta' => ['column' => 'meta', 'label' => 'Meta', 'type' => 'JSON_OBJECT'], 'notes' => ['column' => 'notes', 'label' => 'Notes', 'type' => 'JSON_ARRAY'], 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], 'roadmap' => ['column' => 'roadmap', 'label' => 'Roadmap', 'type' => 'JSON_OBJECT'], 'sources' => ['column' => 'sources', 'label' => 'Sources', 'type' => 'JSON_OBJECT'], - 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], - 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], - 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], - 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'string'], - 'project_id' => ['column' => 'project_id', 'label' => 'Project id', 'type' => 'string'], - 'release_id' => ['column' => 'release_id', 'label' => 'Release id', 'type' => 'string'], - 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap id', 'type' => 'string'], - 'source_id' => ['column' => 'source_id', 'label' => 'Source id', 'type' => 'string'], - 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint id', 'type' => 'string'], - 'ticket_id' => ['column' => 'ticket_id', 'label' => 'Ticket id', 'type' => 'string'], - 'version_id' => ['column' => 'version_id', 'label' => 'Version id', 'type' => 'string'], ]; } diff --git a/src/Http/Requests/Milestone/StoreRequest.php b/src/Http/Requests/Milestone/StoreRequest.php index 5b5f137..619b9ac 100644 --- a/src/Http/Requests/Milestone/StoreRequest.php +++ b/src/Http/Requests/Milestone/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'milestone_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'milestone_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class StoreRequest extends BaseStoreRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,20 +74,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -105,6 +106,7 @@ class StoreRequest extends BaseStoreRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -112,6 +114,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_milestones'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Milestone/UpdateRequest.php b/src/Http/Requests/Milestone/UpdateRequest.php index 1747b4d..43c4fd7 100644 --- a/src/Http/Requests/Milestone/UpdateRequest.php +++ b/src/Http/Requests/Milestone/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'milestone_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'milestone_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class UpdateRequest extends BaseUpdateRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,20 +74,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -105,6 +106,7 @@ class UpdateRequest extends BaseUpdateRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -112,6 +114,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_milestones'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Note/CreateRequest.php b/src/Http/Requests/Note/CreateRequest.php index a842709..ffdf97c 100644 --- a/src/Http/Requests/Note/CreateRequest.php +++ b/src/Http/Requests/Note/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'note_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'note_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'gids' => ['integer'], @@ -48,13 +48,22 @@ class CreateRequest extends FormRequest 'canceled' => ['boolean'], 'closed' => ['boolean'], 'completed' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], + 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Note/EditRequest.php b/src/Http/Requests/Note/EditRequest.php index 961f236..ebb979f 100644 --- a/src/Http/Requests/Note/EditRequest.php +++ b/src/Http/Requests/Note/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'note_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'note_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'gids' => ['integer'], @@ -48,13 +48,22 @@ class EditRequest extends FormRequest 'canceled' => ['boolean'], 'closed' => ['boolean'], 'completed' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], + 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Note/IndexRequest.php b/src/Http/Requests/Note/IndexRequest.php index fe3d559..9b95e47 100644 --- a/src/Http/Requests/Note/IndexRequest.php +++ b/src/Http/Requests/Note/IndexRequest.php @@ -18,8 +18,8 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], ]; /** @@ -30,12 +30,20 @@ class IndexRequest extends BaseIndexRequest 'canceled' => ['column' => 'canceled', 'label' => 'Canceled', 'icon' => 'fa-solid fa-ban text-warning'], 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], + 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], + 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], + 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], + 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -43,11 +51,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'note_type' => ['column' => 'note_type', 'label' => 'Note Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], - 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'note_type' => ['column' => 'note_type', 'label' => 'Note type', 'type' => 'string', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'uuid', 'nullable' => true], ]; @@ -56,6 +65,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -71,11 +81,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'note_type' => ['column' => 'note_type', 'label' => 'Note Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'note_type' => ['column' => 'note_type', 'label' => 'Note type', 'type' => 'string'], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'string'], 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'string'], 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], @@ -107,13 +118,22 @@ class IndexRequest extends BaseIndexRequest 'canceled' => ['column' => 'canceled', 'label' => 'Canceled', 'type' => 'boolean'], 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], + 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], + 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], + 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], + 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], diff --git a/src/Http/Requests/Note/StoreRequest.php b/src/Http/Requests/Note/StoreRequest.php index 8af19bc..501ac52 100644 --- a/src/Http/Requests/Note/StoreRequest.php +++ b/src/Http/Requests/Note/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'note_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'note_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'gids' => ['integer'], @@ -48,13 +48,22 @@ class StoreRequest extends BaseStoreRequest 'canceled' => ['boolean'], 'closed' => ['boolean'], 'completed' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], + 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -75,6 +84,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_notes'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Note/UpdateRequest.php b/src/Http/Requests/Note/UpdateRequest.php index b1cbb9c..61bdb78 100644 --- a/src/Http/Requests/Note/UpdateRequest.php +++ b/src/Http/Requests/Note/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'note_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'note_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'gids' => ['integer'], @@ -48,13 +48,22 @@ class UpdateRequest extends BaseUpdateRequest 'canceled' => ['boolean'], 'closed' => ['boolean'], 'completed' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], + 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -75,6 +84,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_notes'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Project/CreateRequest.php b/src/Http/Requests/Project/CreateRequest.php index bbba121..5783fb6 100644 --- a/src/Http/Requests/Project/CreateRequest.php +++ b/src/Http/Requests/Project/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'project_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'project_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class CreateRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,15 +74,24 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'duplicate' => ['boolean'], + 'featured' => ['boolean'], + 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], 'released' => ['boolean'], + 'resolved' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Project/EditRequest.php b/src/Http/Requests/Project/EditRequest.php index d73b87c..ae70792 100644 --- a/src/Http/Requests/Project/EditRequest.php +++ b/src/Http/Requests/Project/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'project_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'project_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class EditRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,15 +74,24 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'duplicate' => ['boolean'], + 'featured' => ['boolean'], + 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], 'released' => ['boolean'], + 'resolved' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Project/IndexRequest.php b/src/Http/Requests/Project/IndexRequest.php index 64c5647..e8921ff 100644 --- a/src/Http/Requests/Project/IndexRequest.php +++ b/src/Http/Requests/Project/IndexRequest.php @@ -18,20 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -43,13 +43,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'icon' => 'fa-solid fa-clone'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], + 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'icon' => 'fa-solid fa-wrench'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], + 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], + 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'icon' => 'fa-solid fa-check-double text-success'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -58,11 +66,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'project_type' => ['column' => 'project_type', 'label' => 'Project Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'project_type' => ['column' => 'project_type', 'label' => 'Project type', 'type' => 'string', 'nullable' => true], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'uuid', 'nullable' => true], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'uuid', 'nullable' => true], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'uuid', 'nullable' => true], @@ -84,6 +93,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -101,11 +111,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'project_type' => ['column' => 'project_type', 'label' => 'Project Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'project_type' => ['column' => 'project_type', 'label' => 'Project type', 'type' => 'string'], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], @@ -124,18 +135,18 @@ class IndexRequest extends BaseIndexRequest 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -163,15 +174,24 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], + 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], + 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], + 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'type' => 'boolean'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], diff --git a/src/Http/Requests/Project/StoreRequest.php b/src/Http/Requests/Project/StoreRequest.php index a39caa7..7070810 100644 --- a/src/Http/Requests/Project/StoreRequest.php +++ b/src/Http/Requests/Project/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'project_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'project_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class StoreRequest extends BaseStoreRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,15 +74,24 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'duplicate' => ['boolean'], + 'featured' => ['boolean'], + 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], 'released' => ['boolean'], + 'resolved' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -110,6 +119,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_projects'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Project/UpdateRequest.php b/src/Http/Requests/Project/UpdateRequest.php index c91f21b..70ee951 100644 --- a/src/Http/Requests/Project/UpdateRequest.php +++ b/src/Http/Requests/Project/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'project_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'project_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class UpdateRequest extends BaseUpdateRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,15 +74,24 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'duplicate' => ['boolean'], + 'featured' => ['boolean'], + 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], 'released' => ['boolean'], + 'resolved' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -110,6 +119,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_projects'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Release/CreateRequest.php b/src/Http/Requests/Release/CreateRequest.php index 1b108a6..3aeb919 100644 --- a/src/Http/Requests/Release/CreateRequest.php +++ b/src/Http/Requests/Release/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'release_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'release_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class CreateRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,16 +74,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -101,6 +106,7 @@ class CreateRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Release/EditRequest.php b/src/Http/Requests/Release/EditRequest.php index fd876f9..ae925bb 100644 --- a/src/Http/Requests/Release/EditRequest.php +++ b/src/Http/Requests/Release/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'release_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'release_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class EditRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,16 +74,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -101,6 +106,7 @@ class EditRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Release/IndexRequest.php b/src/Http/Requests/Release/IndexRequest.php index 6715eaa..4b02fa7 100644 --- a/src/Http/Requests/Release/IndexRequest.php +++ b/src/Http/Requests/Release/IndexRequest.php @@ -18,20 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -43,14 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -59,14 +63,15 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'release_type' => ['column' => 'release_type', 'label' => 'Release Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], + 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'release_type' => ['column' => 'release_type', 'label' => 'Release type', 'type' => 'string', 'nullable' => true], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'uuid', 'nullable' => true], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'uuid', 'nullable' => true], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'uuid', 'nullable' => true], - 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'uuid', 'nullable' => true], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], 'milestone_id' => ['column' => 'milestone_id', 'label' => 'Milestone id', 'type' => 'uuid', 'nullable' => true], @@ -85,6 +90,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -100,11 +106,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'release_type' => ['column' => 'release_type', 'label' => 'Release Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'release_type' => ['column' => 'release_type', 'label' => 'Release type', 'type' => 'string'], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], @@ -123,18 +130,18 @@ class IndexRequest extends BaseIndexRequest 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -162,16 +169,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -189,6 +201,7 @@ class IndexRequest extends BaseIndexRequest 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], 'board' => ['column' => 'board', 'label' => 'Board', 'type' => 'JSON_OBJECT'], 'flow' => ['column' => 'flow', 'label' => 'Flow', 'type' => 'JSON_OBJECT'], + 'history' => ['column' => 'history', 'label' => 'History', 'type' => 'JSON_OBJECT'], 'meta' => ['column' => 'meta', 'label' => 'Meta', 'type' => 'JSON_OBJECT'], 'notes' => ['column' => 'notes', 'label' => 'Notes', 'type' => 'JSON_ARRAY'], 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], diff --git a/src/Http/Requests/Release/StoreRequest.php b/src/Http/Requests/Release/StoreRequest.php index ede9451..7473ba4 100644 --- a/src/Http/Requests/Release/StoreRequest.php +++ b/src/Http/Requests/Release/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'release_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'release_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class StoreRequest extends BaseStoreRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,16 +74,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -101,6 +106,7 @@ class StoreRequest extends BaseStoreRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -108,6 +114,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_releases'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Release/UpdateRequest.php b/src/Http/Requests/Release/UpdateRequest.php index a64d523..367fd53 100644 --- a/src/Http/Requests/Release/UpdateRequest.php +++ b/src/Http/Requests/Release/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'release_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'release_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class UpdateRequest extends BaseUpdateRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,16 +74,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -101,6 +106,7 @@ class UpdateRequest extends BaseUpdateRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -108,6 +114,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_releases'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Roadmap/CreateRequest.php b/src/Http/Requests/Roadmap/CreateRequest.php index 082179d..c9a9eea 100644 --- a/src/Http/Requests/Roadmap/CreateRequest.php +++ b/src/Http/Requests/Roadmap/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'roadmap_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'roadmap_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class CreateRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,16 +74,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -101,6 +106,7 @@ class CreateRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Roadmap/EditRequest.php b/src/Http/Requests/Roadmap/EditRequest.php index 34ddeef..7346d27 100644 --- a/src/Http/Requests/Roadmap/EditRequest.php +++ b/src/Http/Requests/Roadmap/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'roadmap_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'roadmap_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class EditRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,16 +74,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -101,6 +106,7 @@ class EditRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Roadmap/IndexRequest.php b/src/Http/Requests/Roadmap/IndexRequest.php index e85abfb..97fa587 100644 --- a/src/Http/Requests/Roadmap/IndexRequest.php +++ b/src/Http/Requests/Roadmap/IndexRequest.php @@ -18,20 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -43,14 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -59,11 +63,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'roadmap_type' => ['column' => 'roadmap_type', 'label' => 'Roadmap Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'roadmap_type' => ['column' => 'roadmap_type', 'label' => 'Roadmap type', 'type' => 'string', 'nullable' => true], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'uuid', 'nullable' => true], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'uuid', 'nullable' => true], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'uuid', 'nullable' => true], @@ -85,6 +90,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -100,11 +106,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'roadmap_type' => ['column' => 'roadmap_type', 'label' => 'Roadmap Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'roadmap_type' => ['column' => 'roadmap_type', 'label' => 'Roadmap type', 'type' => 'string'], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], @@ -123,18 +130,18 @@ class IndexRequest extends BaseIndexRequest 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -162,16 +169,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -189,6 +201,7 @@ class IndexRequest extends BaseIndexRequest 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], 'board' => ['column' => 'board', 'label' => 'Board', 'type' => 'JSON_OBJECT'], 'flow' => ['column' => 'flow', 'label' => 'Flow', 'type' => 'JSON_OBJECT'], + 'history' => ['column' => 'history', 'label' => 'History', 'type' => 'JSON_OBJECT'], 'meta' => ['column' => 'meta', 'label' => 'Meta', 'type' => 'JSON_OBJECT'], 'notes' => ['column' => 'notes', 'label' => 'Notes', 'type' => 'JSON_ARRAY'], 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], diff --git a/src/Http/Requests/Roadmap/StoreRequest.php b/src/Http/Requests/Roadmap/StoreRequest.php index e83690d..3ef9198 100644 --- a/src/Http/Requests/Roadmap/StoreRequest.php +++ b/src/Http/Requests/Roadmap/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'roadmap_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'roadmap_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class StoreRequest extends BaseStoreRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,16 +74,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -101,6 +106,7 @@ class StoreRequest extends BaseStoreRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -108,6 +114,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_roadmaps'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Roadmap/UpdateRequest.php b/src/Http/Requests/Roadmap/UpdateRequest.php index 70a5a2a..127a0c0 100644 --- a/src/Http/Requests/Roadmap/UpdateRequest.php +++ b/src/Http/Requests/Roadmap/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'roadmap_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'roadmap_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,18 +35,18 @@ class UpdateRequest extends BaseUpdateRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -74,16 +74,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -101,6 +106,7 @@ class UpdateRequest extends BaseUpdateRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -108,6 +114,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_roadmaps'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Source/CreateRequest.php b/src/Http/Requests/Source/CreateRequest.php index 9ea5ef5..f331f85 100644 --- a/src/Http/Requests/Source/CreateRequest.php +++ b/src/Http/Requests/Source/CreateRequest.php @@ -17,24 +17,25 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'source_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'source_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], + 'note_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -62,16 +63,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Source/EditRequest.php b/src/Http/Requests/Source/EditRequest.php index 0e09942..620d53b 100644 --- a/src/Http/Requests/Source/EditRequest.php +++ b/src/Http/Requests/Source/EditRequest.php @@ -17,24 +17,25 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'source_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'source_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], + 'note_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -62,16 +63,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Source/IndexRequest.php b/src/Http/Requests/Source/IndexRequest.php index b5d33ac..70a1b64 100644 --- a/src/Http/Requests/Source/IndexRequest.php +++ b/src/Http/Requests/Source/IndexRequest.php @@ -18,20 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -43,14 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -59,12 +63,14 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'source_type' => ['column' => 'source_type', 'label' => 'Source Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], - 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'source_type' => ['column' => 'source_type', 'label' => 'Source type', 'type' => 'string', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], + 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'uuid', 'nullable' => true], 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'uuid', 'nullable' => true], 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'uuid', 'nullable' => true], ]; @@ -73,6 +79,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -88,29 +95,31 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'source_type' => ['column' => 'source_type', 'label' => 'Source Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'source_type' => ['column' => 'source_type', 'label' => 'Source type', 'type' => 'string'], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'string'], + 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'string'], 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'string'], 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'string'], 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -138,16 +147,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], diff --git a/src/Http/Requests/Source/StoreRequest.php b/src/Http/Requests/Source/StoreRequest.php index 599dc1d..cfb94c1 100644 --- a/src/Http/Requests/Source/StoreRequest.php +++ b/src/Http/Requests/Source/StoreRequest.php @@ -17,24 +17,25 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'source_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'source_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], + 'note_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -62,16 +63,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -92,6 +98,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_sources'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Source/UpdateRequest.php b/src/Http/Requests/Source/UpdateRequest.php index 2b57f62..50e93db 100644 --- a/src/Http/Requests/Source/UpdateRequest.php +++ b/src/Http/Requests/Source/UpdateRequest.php @@ -17,24 +17,25 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'source_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'source_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], + 'note_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -62,16 +63,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -92,6 +98,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_sources'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Sprint/CreateRequest.php b/src/Http/Requests/Sprint/CreateRequest.php index 6ff0432..8eb4458 100644 --- a/src/Http/Requests/Sprint/CreateRequest.php +++ b/src/Http/Requests/Sprint/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'sprint_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'sprint_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class CreateRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class CreateRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Sprint/EditRequest.php b/src/Http/Requests/Sprint/EditRequest.php index 5c873ab..d910822 100644 --- a/src/Http/Requests/Sprint/EditRequest.php +++ b/src/Http/Requests/Sprint/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'sprint_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'sprint_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class EditRequest extends FormRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class EditRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Sprint/IndexRequest.php b/src/Http/Requests/Sprint/IndexRequest.php index 4513169..3e5639f 100644 --- a/src/Http/Requests/Sprint/IndexRequest.php +++ b/src/Http/Requests/Sprint/IndexRequest.php @@ -18,22 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -45,18 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'icon' => 'fa-solid fa-clone'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'icon' => 'fa-solid fa-wrench'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'icon' => 'fa-solid fa-check-double text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -65,11 +63,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'sprint_type' => ['column' => 'sprint_type', 'label' => 'Sprint Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'sprint_type' => ['column' => 'sprint_type', 'label' => 'Sprint type', 'type' => 'string', 'nullable' => true], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'uuid', 'nullable' => true], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'uuid', 'nullable' => true], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'uuid', 'nullable' => true], @@ -91,6 +90,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -106,11 +106,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'sprint_type' => ['column' => 'sprint_type', 'label' => 'Sprint Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'sprint_type' => ['column' => 'sprint_type', 'label' => 'Sprint type', 'type' => 'string'], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], @@ -129,20 +130,18 @@ class IndexRequest extends BaseIndexRequest 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released at', 'type' => 'string'], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -170,20 +169,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], - 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'type' => 'boolean'], - 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], - 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -201,6 +201,7 @@ class IndexRequest extends BaseIndexRequest 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], 'board' => ['column' => 'board', 'label' => 'Board', 'type' => 'JSON_OBJECT'], 'flow' => ['column' => 'flow', 'label' => 'Flow', 'type' => 'JSON_OBJECT'], + 'history' => ['column' => 'history', 'label' => 'History', 'type' => 'JSON_OBJECT'], 'meta' => ['column' => 'meta', 'label' => 'Meta', 'type' => 'JSON_OBJECT'], 'notes' => ['column' => 'notes', 'label' => 'Notes', 'type' => 'JSON_ARRAY'], 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], diff --git a/src/Http/Requests/Sprint/StoreRequest.php b/src/Http/Requests/Sprint/StoreRequest.php index de5372b..32e6d2f 100644 --- a/src/Http/Requests/Sprint/StoreRequest.php +++ b/src/Http/Requests/Sprint/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'sprint_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'sprint_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class StoreRequest extends BaseStoreRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class StoreRequest extends BaseStoreRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -114,6 +114,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_sprints'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Sprint/UpdateRequest.php b/src/Http/Requests/Sprint/UpdateRequest.php index 6001365..f3ddaf8 100644 --- a/src/Http/Requests/Sprint/UpdateRequest.php +++ b/src/Http/Requests/Sprint/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'sprint_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'sprint_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,20 +35,18 @@ class UpdateRequest extends BaseUpdateRequest 'team_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], - 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -76,20 +74,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], - 'duplicate' => ['boolean'], - 'fixed' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], 'retired' => ['boolean'], - 'resolved' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -107,6 +106,7 @@ class UpdateRequest extends BaseUpdateRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -114,6 +114,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_sprints'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Tag/CreateRequest.php b/src/Http/Requests/Tag/CreateRequest.php index eeec749..895dab2 100644 --- a/src/Http/Requests/Tag/CreateRequest.php +++ b/src/Http/Requests/Tag/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'tag_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'tag_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'gids' => ['integer'], 'po' => ['integer'], @@ -44,11 +44,15 @@ class CreateRequest extends FormRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Tag/EditRequest.php b/src/Http/Requests/Tag/EditRequest.php index a2b4499..9d2d8fd 100644 --- a/src/Http/Requests/Tag/EditRequest.php +++ b/src/Http/Requests/Tag/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'tag_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'tag_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'gids' => ['integer'], 'po' => ['integer'], @@ -44,11 +44,15 @@ class EditRequest extends FormRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Tag/IndexRequest.php b/src/Http/Requests/Tag/IndexRequest.php index d7580bb..044251a 100644 --- a/src/Http/Requests/Tag/IndexRequest.php +++ b/src/Http/Requests/Tag/IndexRequest.php @@ -18,8 +18,8 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], ]; /** @@ -27,10 +27,13 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationFlags = [ 'active' => ['column' => 'active', 'label' => 'Active', 'icon' => 'fa-solid fa-person-running'], + 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -38,17 +41,20 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'tag_type' => ['column' => 'tag_type', 'label' => 'Tag Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], - 'tag_type' => ['column' => 'tag_type', 'label' => 'Tag type', 'type' => 'string', 'nullable' => true], ]; /** * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -64,11 +70,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'tag_type' => ['column' => 'tag_type', 'label' => 'Tag Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'tag_type' => ['column' => 'tag_type', 'label' => 'Tag type', 'type' => 'string'], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'string'], 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], @@ -96,11 +103,15 @@ class IndexRequest extends BaseIndexRequest 'latitude' => ['column' => 'latitude', 'label' => 'Latitude', 'type' => 'float'], 'longitude' => ['column' => 'longitude', 'label' => 'Longitude', 'type' => 'float'], 'active' => ['column' => 'active', 'label' => 'Active', 'type' => 'boolean'], + 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], diff --git a/src/Http/Requests/Tag/StoreRequest.php b/src/Http/Requests/Tag/StoreRequest.php index b5ce914..5d79f3e 100644 --- a/src/Http/Requests/Tag/StoreRequest.php +++ b/src/Http/Requests/Tag/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'tag_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'tag_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'gids' => ['integer'], 'po' => ['integer'], @@ -44,11 +44,15 @@ class StoreRequest extends BaseStoreRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -69,6 +73,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_tags'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Tag/UpdateRequest.php b/src/Http/Requests/Tag/UpdateRequest.php index fb87eb0..470427f 100644 --- a/src/Http/Requests/Tag/UpdateRequest.php +++ b/src/Http/Requests/Tag/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'tag_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'tag_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], 'gids' => ['integer'], 'po' => ['integer'], @@ -44,11 +44,15 @@ class UpdateRequest extends BaseUpdateRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -69,6 +73,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_tags'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Team/CreateRequest.php b/src/Http/Requests/Team/CreateRequest.php index ea8f983..842e194 100644 --- a/src/Http/Requests/Team/CreateRequest.php +++ b/src/Http/Requests/Team/CreateRequest.php @@ -17,9 +17,9 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'team_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'team_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,16 +35,18 @@ class CreateRequest extends FormRequest 'tag_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -72,15 +74,21 @@ class CreateRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -98,6 +106,7 @@ class CreateRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Team/EditRequest.php b/src/Http/Requests/Team/EditRequest.php index 69a0f52..01af966 100644 --- a/src/Http/Requests/Team/EditRequest.php +++ b/src/Http/Requests/Team/EditRequest.php @@ -17,9 +17,9 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'team_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'team_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,16 +35,18 @@ class EditRequest extends FormRequest 'tag_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -72,15 +74,21 @@ class EditRequest extends FormRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -98,6 +106,7 @@ class EditRequest extends FormRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], diff --git a/src/Http/Requests/Team/IndexRequest.php b/src/Http/Requests/Team/IndexRequest.php index dd5e3b4..aabd853 100644 --- a/src/Http/Requests/Team/IndexRequest.php +++ b/src/Http/Requests/Team/IndexRequest.php @@ -18,18 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -41,13 +43,18 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], + 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], + 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -56,11 +63,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'team_type' => ['column' => 'team_type', 'label' => 'Team Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'team_type' => ['column' => 'team_type', 'label' => 'Team type', 'type' => 'string', 'nullable' => true], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'uuid', 'nullable' => true], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'uuid', 'nullable' => true], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'uuid', 'nullable' => true], @@ -82,6 +90,7 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -97,11 +106,12 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'team_type' => ['column' => 'team_type', 'label' => 'Team Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'team_type' => ['column' => 'team_type', 'label' => 'Team type', 'type' => 'string'], 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], @@ -120,16 +130,18 @@ class IndexRequest extends BaseIndexRequest 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start at', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End at', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -157,15 +169,21 @@ class IndexRequest extends BaseIndexRequest 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], + 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], + 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -183,6 +201,7 @@ class IndexRequest extends BaseIndexRequest 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], 'board' => ['column' => 'board', 'label' => 'Board', 'type' => 'JSON_OBJECT'], 'flow' => ['column' => 'flow', 'label' => 'Flow', 'type' => 'JSON_OBJECT'], + 'history' => ['column' => 'history', 'label' => 'History', 'type' => 'JSON_OBJECT'], 'meta' => ['column' => 'meta', 'label' => 'Meta', 'type' => 'JSON_OBJECT'], 'notes' => ['column' => 'notes', 'label' => 'Notes', 'type' => 'JSON_ARRAY'], 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], diff --git a/src/Http/Requests/Team/StoreRequest.php b/src/Http/Requests/Team/StoreRequest.php index 2c20218..ce35093 100644 --- a/src/Http/Requests/Team/StoreRequest.php +++ b/src/Http/Requests/Team/StoreRequest.php @@ -17,9 +17,9 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'team_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'team_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,16 +35,18 @@ class StoreRequest extends BaseStoreRequest 'tag_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -72,15 +74,21 @@ class StoreRequest extends BaseStoreRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -98,6 +106,7 @@ class StoreRequest extends BaseStoreRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -105,6 +114,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_teams'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Team/UpdateRequest.php b/src/Http/Requests/Team/UpdateRequest.php index 6a48a50..510bbbd 100644 --- a/src/Http/Requests/Team/UpdateRequest.php +++ b/src/Http/Requests/Team/UpdateRequest.php @@ -17,9 +17,9 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'team_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'team_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], @@ -35,16 +35,18 @@ class UpdateRequest extends BaseUpdateRequest 'tag_id' => ['nullable', 'uuid'], 'ticket_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -72,15 +74,21 @@ class UpdateRequest extends BaseUpdateRequest 'closed' => ['boolean'], 'completed' => ['boolean'], 'cron' => ['boolean'], + 'featured' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], 'pending' => ['boolean'], 'planned' => ['boolean'], + 'prioritized' => ['boolean'], 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -98,6 +106,7 @@ class UpdateRequest extends BaseUpdateRequest 'backlog' => ['nullable', 'array'], 'board' => ['nullable', 'array'], 'flow' => ['nullable', 'array'], + 'history' => ['nullable', 'array'], 'meta' => ['nullable', 'array'], 'options' => ['nullable', 'array'], 'roadmap' => ['nullable', 'array'], @@ -105,6 +114,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_teams'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Ticket/CreateRequest.php b/src/Http/Requests/Ticket/CreateRequest.php index ca13a0f..c9f8202 100644 --- a/src/Http/Requests/Ticket/CreateRequest.php +++ b/src/Http/Requests/Ticket/CreateRequest.php @@ -17,43 +17,42 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'ticket_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'ticket_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], - 'completed_by_id' => ['nullable', 'uuid'], - 'duplicate_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], - 'fixed_by_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], 'matrix_id' => ['nullable', 'uuid'], 'milestone_id' => ['nullable', 'uuid'], 'note_id' => ['nullable', 'uuid'], 'project_id' => ['nullable', 'uuid'], 'release_id' => ['nullable', 'uuid'], - 'reported_by_id' => ['nullable', 'uuid'], 'roadmap_id' => ['nullable', 'uuid'], 'source_id' => ['nullable', 'uuid'], 'sprint_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'version_fixed_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], + 'completed_by_id' => ['nullable', 'uuid'], + 'duplicate_id' => ['nullable', 'uuid'], + 'fixed_by_id' => ['nullable', 'uuid'], + 'reported_by_id' => ['nullable', 'uuid'], + 'version_fixed_id' => ['nullable', 'uuid'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -82,6 +81,7 @@ class CreateRequest extends FormRequest 'completed' => ['boolean'], 'cron' => ['boolean'], 'duplicate' => ['boolean'], + 'featured' => ['boolean'], 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], @@ -92,10 +92,12 @@ class CreateRequest extends FormRequest 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], - 'retired' => ['boolean'], 'resolved' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -105,13 +107,16 @@ class CreateRequest extends FormRequest 'introduction' => ['string'], 'content' => ['nullable', 'string'], 'summary' => ['nullable', 'string'], - 'handler' => ['string'], - 'priority' => ['string'], - 'severity' => ['string'], - 'resolution' => ['string'], - 'step' => ['string'], - 'state' => ['string'], - 'workflow_type' => ['string'], + 'handler' => ['nullable', 'string'], + 'key' => ['nullable', 'string'], + 'code' => ['nullable', 'integer'], + 'key_code_hash' => ['nullable', 'string'], + 'priority' => ['nullable', 'string'], + 'severity' => ['nullable', 'string'], + 'resolution' => ['nullable', 'string'], + 'step' => ['nullable', 'string'], + 'state' => ['nullable', 'string'], + 'workflow_type' => ['nullable', 'string'], 'points' => ['integer'], 'actual' => ['nullable', 'string'], 'expected' => ['nullable', 'string'], diff --git a/src/Http/Requests/Ticket/EditRequest.php b/src/Http/Requests/Ticket/EditRequest.php index 1425808..86b5b8b 100644 --- a/src/Http/Requests/Ticket/EditRequest.php +++ b/src/Http/Requests/Ticket/EditRequest.php @@ -17,43 +17,42 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'ticket_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'ticket_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], - 'completed_by_id' => ['nullable', 'uuid'], - 'duplicate_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], - 'fixed_by_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], 'matrix_id' => ['nullable', 'uuid'], 'milestone_id' => ['nullable', 'uuid'], 'note_id' => ['nullable', 'uuid'], 'project_id' => ['nullable', 'uuid'], 'release_id' => ['nullable', 'uuid'], - 'reported_by_id' => ['nullable', 'uuid'], 'roadmap_id' => ['nullable', 'uuid'], 'source_id' => ['nullable', 'uuid'], 'sprint_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'version_fixed_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], + 'completed_by_id' => ['nullable', 'uuid'], + 'duplicate_id' => ['nullable', 'uuid'], + 'fixed_by_id' => ['nullable', 'uuid'], + 'reported_by_id' => ['nullable', 'uuid'], + 'version_fixed_id' => ['nullable', 'uuid'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -82,6 +81,7 @@ class EditRequest extends FormRequest 'completed' => ['boolean'], 'cron' => ['boolean'], 'duplicate' => ['boolean'], + 'featured' => ['boolean'], 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], @@ -92,10 +92,12 @@ class EditRequest extends FormRequest 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], - 'retired' => ['boolean'], 'resolved' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], @@ -105,13 +107,16 @@ class EditRequest extends FormRequest 'introduction' => ['string'], 'content' => ['nullable', 'string'], 'summary' => ['nullable', 'string'], - 'handler' => ['string'], - 'priority' => ['string'], - 'severity' => ['string'], - 'resolution' => ['string'], - 'step' => ['string'], - 'state' => ['string'], - 'workflow_type' => ['string'], + 'handler' => ['nullable', 'string'], + 'key' => ['nullable', 'string'], + 'code' => ['nullable', 'integer'], + 'key_code_hash' => ['nullable', 'string'], + 'priority' => ['nullable', 'string'], + 'severity' => ['nullable', 'string'], + 'resolution' => ['nullable', 'string'], + 'step' => ['nullable', 'string'], + 'state' => ['nullable', 'string'], + 'workflow_type' => ['nullable', 'string'], 'points' => ['integer'], 'actual' => ['nullable', 'string'], 'expected' => ['nullable', 'string'], diff --git a/src/Http/Requests/Ticket/IndexRequest.php b/src/Http/Requests/Ticket/IndexRequest.php index e08a0ff..0b5e827 100644 --- a/src/Http/Requests/Ticket/IndexRequest.php +++ b/src/Http/Requests/Ticket/IndexRequest.php @@ -17,23 +17,22 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationDates = [ - 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'nullable' => true], - 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'nullable' => true], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'nullable' => true], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'nullable' => true], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'nullable' => true], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'nullable' => true], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'nullable' => true], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'nullable' => true], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'nullable' => true], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed At', 'nullable' => true], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'nullable' => true], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'nullable' => true], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'nullable' => true], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'nullable' => true], - 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved At', 'nullable' => true], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'nullable' => true], + 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], + 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -46,18 +45,20 @@ class IndexRequest extends BaseIndexRequest 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'icon' => 'fa-solid fa-clone'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'icon' => 'fa-solid fa-wrench'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], - 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], + 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], - 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'icon' => 'fa-solid fa-check-double text-success'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -66,62 +67,63 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ - 'id' => ['column' => 'id', 'label' => 'Id', 'type' => 'uuid', 'nullable' => false], - 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created By Id', 'type' => 'uuid', 'nullable' => true], - 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified By Id', 'type' => 'uuid', 'nullable' => true], - 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned By Id', 'type' => 'uuid', 'nullable' => true], - 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent Id', 'type' => 'uuid', 'nullable' => true], + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], 'ticket_type' => ['column' => 'ticket_type', 'label' => 'Ticket Type', 'type' => 'string', 'nullable' => true], - 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog Id', 'type' => 'uuid', 'nullable' => true], - 'board_id' => ['column' => 'board_id', 'label' => 'Board Id', 'type' => 'uuid', 'nullable' => true], - 'completed_by_id' => ['column' => 'completed_by_id', 'label' => 'Completed By Id', 'type' => 'uuid', 'nullable' => true], - 'duplicate_id' => ['column' => 'duplicate_id', 'label' => 'Duplicate Id', 'type' => 'uuid', 'nullable' => true], - 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic Id', 'type' => 'uuid', 'nullable' => true], - 'fixed_by_id' => ['column' => 'fixed_by_id', 'label' => 'Fixed by id', 'type' => 'uuid', 'nullable' => true], - 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow Id', 'type' => 'uuid', 'nullable' => true], + 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], + 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], + 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], + 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'uuid', 'nullable' => true], + 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'uuid', 'nullable' => true], + 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'uuid', 'nullable' => true], + 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'uuid', 'nullable' => true], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], - 'milestone_id' => ['column' => 'milestone_id', 'label' => 'Milestone Id', 'type' => 'uuid', 'nullable' => true], - 'note_id' => ['column' => 'note_id', 'label' => 'Note Id', 'type' => 'uuid', 'nullable' => true], - 'project_id' => ['column' => 'project_id', 'label' => 'Project Id', 'type' => 'uuid', 'nullable' => true], - 'release_id' => ['column' => 'release_id', 'label' => 'Release Id', 'type' => 'uuid', 'nullable' => true], - 'reported_by_id' => ['column' => 'reported_by_id', 'label' => 'Reported By Id', 'type' => 'uuid', 'nullable' => true], - 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap Id', 'type' => 'uuid', 'nullable' => true], - 'source_id' => ['column' => 'source_id', 'label' => 'Source Id', 'type' => 'uuid', 'nullable' => true], - 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint Id', 'type' => 'uuid', 'nullable' => true], - 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag Id', 'type' => 'uuid', 'nullable' => true], - 'team_id' => ['column' => 'team_id', 'label' => 'Team Id', 'type' => 'uuid', 'nullable' => true], - 'version_id' => ['column' => 'version_id', 'label' => 'Version Id', 'type' => 'uuid', 'nullable' => true], - 'version_fixed_id' => ['column' => 'version_fixed_id', 'label' => 'Version Fixed Id', 'type' => 'uuid', 'nullable' => true], + 'milestone_id' => ['column' => 'milestone_id', 'label' => 'Milestone id', 'type' => 'uuid', 'nullable' => true], + 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'uuid', 'nullable' => true], + 'project_id' => ['column' => 'project_id', 'label' => 'Project id', 'type' => 'uuid', 'nullable' => true], + 'release_id' => ['column' => 'release_id', 'label' => 'Release id', 'type' => 'uuid', 'nullable' => true], + 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap id', 'type' => 'uuid', 'nullable' => true], + 'source_id' => ['column' => 'source_id', 'label' => 'Source id', 'type' => 'uuid', 'nullable' => true], + 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint id', 'type' => 'uuid', 'nullable' => true], + 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'uuid', 'nullable' => true], + 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'uuid', 'nullable' => true], + 'version_id' => ['column' => 'version_id', 'label' => 'Version id', 'type' => 'uuid', 'nullable' => true], + 'completed_by_id' => ['column' => 'completed_by_id', 'label' => 'Completed by id', 'type' => 'uuid', 'nullable' => true], + 'duplicate_id' => ['column' => 'duplicate_id', 'label' => 'Duplicate id', 'type' => 'uuid', 'nullable' => true], + 'fixed_by_id' => ['column' => 'fixed_by_id', 'label' => 'Fixed by id', 'type' => 'uuid', 'nullable' => true], + 'reported_by_id' => ['column' => 'reported_by_id', 'label' => 'Reported by id', 'type' => 'uuid', 'nullable' => true], + 'version_fixed_id' => ['column' => 'version_fixed_id', 'label' => 'Version fixed id', 'type' => 'uuid', 'nullable' => true], ]; /** * @var array> */ protected array $paginationColumns = [ - 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => false], - 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => false], - 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => false], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], + 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], + 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], + 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], 'slug' => ['column' => 'slug', 'label' => 'Slug', 'type' => 'string', 'nullable' => true], - 'url' => ['column' => 'url', 'label' => 'Url', 'type' => 'string', 'nullable' => false], - 'description' => ['column' => 'description', 'label' => 'Description', 'type' => 'string', 'nullable' => false], - 'introduction' => ['column' => 'introduction', 'label' => 'Introduction', 'type' => 'string', 'nullable' => false], + 'url' => ['column' => 'url', 'label' => 'Url', 'type' => 'string', 'nullable' => true], + 'description' => ['column' => 'description', 'label' => 'Description', 'type' => 'string', 'nullable' => true], + 'introduction' => ['column' => 'introduction', 'label' => 'Introduction', 'type' => 'string', 'nullable' => true], 'content' => ['column' => 'content', 'label' => 'Content', 'type' => 'mediumText', 'nullable' => true], 'summary' => ['column' => 'summary', 'label' => 'Summary', 'type' => 'mediumText', 'nullable' => true], - 'key' => ['column' => 'key', 'label' => 'Key', 'type' => 'string', 'nullable' => false], - 'handler' => ['column' => 'handler', 'label' => 'Handler', 'type' => 'string', 'nullable' => false], - 'code' => ['column' => 'code', 'label' => 'Code', 'type' => 'bigInteger', 'nullable' => false], - 'key_code_hash' => ['column' => 'key_code_hash', 'label' => 'Key Code Hash', 'type' => 'string', 'nullable' => false], - 'priority' => ['column' => 'priority', 'label' => 'Priority', 'type' => 'string', 'nullable' => false], - 'severity' => ['column' => 'severity', 'label' => 'Severity', 'type' => 'string', 'nullable' => false], - 'resolution' => ['column' => 'resolution', 'label' => 'Resolution', 'type' => 'string', 'nullable' => false], - 'step' => ['column' => 'step', 'label' => 'Step', 'type' => 'string', 'nullable' => false], - 'state' => ['column' => 'state', 'label' => 'State', 'type' => 'string', 'nullable' => false], - 'workflow_type' => ['column' => 'workflow_type', 'label' => 'Workflow Type', 'type' => 'string', 'nullable' => false], - 'points' => ['column' => 'points', 'label' => 'Points', 'type' => 'tinyInteger', 'nullable' => false], + 'handler' => ['column' => 'handler', 'label' => 'Handler', 'type' => 'string', 'nullable' => true], + 'key' => ['column' => 'key', 'label' => 'Key', 'type' => 'string', 'nullable' => true], + 'code' => ['column' => 'code', 'label' => 'Code', 'type' => 'bigInteger', 'nullable' => true], + 'key_code_hash' => ['column' => 'key_code_hash', 'label' => 'Key code hash', 'type' => 'string', 'nullable' => true], + 'priority' => ['column' => 'priority', 'label' => 'Priority', 'type' => 'string', 'nullable' => true], + 'severity' => ['column' => 'severity', 'label' => 'Severity', 'type' => 'string', 'nullable' => true], + 'resolution' => ['column' => 'resolution', 'label' => 'Resolution', 'type' => 'string', 'nullable' => true], + 'step' => ['column' => 'step', 'label' => 'Step', 'type' => 'string', 'nullable' => true], + 'state' => ['column' => 'state', 'label' => 'State', 'type' => 'string', 'nullable' => true], + 'workflow_type' => ['column' => 'workflow_type', 'label' => 'Workflow type', 'type' => 'string', 'nullable' => true], + 'points' => ['column' => 'points', 'label' => 'Points', 'type' => 'bigInteger', 'nullable' => true], 'actual' => ['column' => 'actual', 'label' => 'Actual', 'type' => 'mediumText', 'nullable' => true], 'expected' => ['column' => 'expected', 'label' => 'Expected', 'type' => 'mediumText', 'nullable' => true], - 'steps' => ['column' => 'steps', 'label' => 'Steps', 'type' => 'mediumText', 'nullable' => true], 'story' => ['column' => 'story', 'label' => 'Story', 'type' => 'mediumText', 'nullable' => true], + 'steps' => ['column' => 'steps', 'label' => 'Steps', 'type' => 'mediumText', 'nullable' => true], 'criteria' => ['column' => 'criteria', 'label' => 'Criteria', 'type' => 'mediumText', 'nullable' => true], 'reproducibility' => ['column' => 'reproducibility', 'label' => 'Reproducibility', 'type' => 'decimal', 'nullable' => true], ]; @@ -130,57 +132,56 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ - 'id' => ['column' => 'id', 'label' => 'Id', 'type' => 'string'], - 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created By Id', 'type' => 'string'], - 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified By Id', 'type' => 'string'], - 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned By Id', 'type' => 'string'], - 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent Id', 'type' => 'string'], + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], 'ticket_type' => ['column' => 'ticket_type', 'label' => 'Ticket Type', 'type' => 'string'], - 'duplicate_id' => ['column' => 'duplicate_id', 'label' => 'Duplicate Id', 'type' => 'string'], - 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog Id', 'type' => 'string'], - 'board_id' => ['column' => 'board_id', 'label' => 'Board Id', 'type' => 'string'], - 'completed_by_id' => ['column' => 'completed_by_id', 'label' => 'Completed By Id', 'type' => 'string'], - 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic Id', 'type' => 'string'], - 'fixed_by_id' => ['column' => 'fixed_by_id', 'label' => 'Fixed by id', 'type' => 'string'], - 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow Id', 'type' => 'string'], + 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], + 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], + 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], + 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], + 'backlog_id' => ['column' => 'backlog_id', 'label' => 'Backlog id', 'type' => 'string'], + 'board_id' => ['column' => 'board_id', 'label' => 'Board id', 'type' => 'string'], + 'epic_id' => ['column' => 'epic_id', 'label' => 'Epic id', 'type' => 'string'], + 'flow_id' => ['column' => 'flow_id', 'label' => 'Flow id', 'type' => 'string'], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'string'], - 'milestone_id' => ['column' => 'milestone_id', 'label' => 'Milestone Id', 'type' => 'string'], - 'note_id' => ['column' => 'note_id', 'label' => 'Note Id', 'type' => 'string'], - 'project_id' => ['column' => 'project_id', 'label' => 'Project Id', 'type' => 'string'], - 'release_id' => ['column' => 'release_id', 'label' => 'Release Id', 'type' => 'string'], - 'reported_by_id' => ['column' => 'reported_by_id', 'label' => 'Reported By Id', 'type' => 'string'], - 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap Id', 'type' => 'string'], - 'source_id' => ['column' => 'source_id', 'label' => 'Source Id', 'type' => 'string'], - 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint Id', 'type' => 'string'], - 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag Id', 'type' => 'string'], - 'team_id' => ['column' => 'team_id', 'label' => 'Team Id', 'type' => 'string'], - 'version_id' => ['column' => 'version_id', 'label' => 'Version Id', 'type' => 'string'], - 'version_fixed_id' => ['column' => 'version_fixed_id', 'label' => 'Version Fixed Id', 'type' => 'string'], + 'milestone_id' => ['column' => 'milestone_id', 'label' => 'Milestone id', 'type' => 'string'], + 'note_id' => ['column' => 'note_id', 'label' => 'Note id', 'type' => 'string'], + 'project_id' => ['column' => 'project_id', 'label' => 'Project id', 'type' => 'string'], + 'release_id' => ['column' => 'release_id', 'label' => 'Release id', 'type' => 'string'], + 'roadmap_id' => ['column' => 'roadmap_id', 'label' => 'Roadmap id', 'type' => 'string'], + 'source_id' => ['column' => 'source_id', 'label' => 'Source id', 'type' => 'string'], + 'sprint_id' => ['column' => 'sprint_id', 'label' => 'Sprint id', 'type' => 'string'], + 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'string'], + 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'string'], + 'version_id' => ['column' => 'version_id', 'label' => 'Version id', 'type' => 'string'], + 'completed_by_id' => ['column' => 'completed_by_id', 'label' => 'Completed by id', 'type' => 'string'], + 'duplicate_id' => ['column' => 'duplicate_id', 'label' => 'Duplicate id', 'type' => 'string'], + 'fixed_by_id' => ['column' => 'fixed_by_id', 'label' => 'Fixed by id', 'type' => 'string'], + 'reported_by_id' => ['column' => 'reported_by_id', 'label' => 'Reported by id', 'type' => 'string'], + 'version_fixed_id' => ['column' => 'version_fixed_id', 'label' => 'Version fixed id', 'type' => 'string'], 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], - 'start_at' => ['column' => 'start_at', 'label' => 'Start At', 'type' => 'string'], - 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned Start At', 'type' => 'string'], - 'end_at' => ['column' => 'end_at', 'label' => 'End At', 'type' => 'string'], - 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned End At', 'type' => 'string'], - 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled At', 'type' => 'string'], - 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed At', 'type' => 'string'], - 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo At', 'type' => 'string'], - 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed At', 'type' => 'string'], - 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed At', 'type' => 'string'], - 'published_at' => ['column' => 'published_at', 'label' => 'Published At', 'type' => 'string'], - 'released_at' => ['column' => 'released_at', 'label' => 'Released At', 'type' => 'string'], - 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed At', 'type' => 'string'], - 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved At', 'type' => 'string'], - 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended At', 'type' => 'string'], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'fixed_at' => ['column' => 'fixed_at', 'label' => 'Fixed at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], 'pw' => ['column' => 'pw', 'label' => 'Pw', 'type' => 'integer'], - 'only_admin' => ['column' => 'only_admin', 'label' => 'Only Admin', 'type' => 'boolean'], - 'only_user' => ['column' => 'only_user', 'label' => 'Only User', 'type' => 'boolean'], - 'only_guest' => ['column' => 'only_guest', 'label' => 'Only Guest', 'type' => 'boolean'], - 'allow_public' => ['column' => 'allow_public', 'label' => 'Allow Public', 'type' => 'boolean'], + 'only_admin' => ['column' => 'only_admin', 'label' => 'Only admin', 'type' => 'boolean'], + 'only_user' => ['column' => 'only_user', 'label' => 'Only user', 'type' => 'boolean'], + 'only_guest' => ['column' => 'only_guest', 'label' => 'Only guest', 'type' => 'boolean'], + 'allow_public' => ['column' => 'allow_public', 'label' => 'Allow public', 'type' => 'boolean'], 'status' => ['column' => 'status', 'label' => 'Status', 'type' => 'integer'], 'rank' => ['column' => 'rank', 'label' => 'Rank', 'type' => 'integer'], 'size' => ['column' => 'size', 'label' => 'Size', 'type' => 'integer'], @@ -199,7 +200,9 @@ class IndexRequest extends BaseIndexRequest 'canceled' => ['column' => 'canceled', 'label' => 'Canceled', 'type' => 'boolean'], 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], + 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], 'duplicate' => ['column' => 'duplicate', 'label' => 'Duplicate', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], @@ -210,10 +213,12 @@ class IndexRequest extends BaseIndexRequest 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], - 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'type' => 'boolean'], + 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], @@ -223,24 +228,26 @@ class IndexRequest extends BaseIndexRequest 'introduction' => ['column' => 'introduction', 'label' => 'Introduction', 'type' => 'string'], 'content' => ['column' => 'content', 'label' => 'Content', 'type' => 'string'], 'summary' => ['column' => 'summary', 'label' => 'Summary', 'type' => 'string'], - 'key' => ['column' => 'key', 'label' => 'Key', 'type' => 'string'], 'handler' => ['column' => 'handler', 'label' => 'Handler', 'type' => 'string'], + 'key' => ['column' => 'key', 'label' => 'Key', 'type' => 'string'], 'code' => ['column' => 'code', 'label' => 'Code', 'type' => 'integer'], - 'key_code_hash' => ['column' => 'key_code_hash', 'label' => 'Key Code Hash', 'type' => 'string'], + 'key_code_hash' => ['column' => 'key_code_hash', 'label' => 'Key code hash', 'type' => 'string'], 'priority' => ['column' => 'priority', 'label' => 'Priority', 'type' => 'string'], 'severity' => ['column' => 'severity', 'label' => 'Severity', 'type' => 'string'], 'resolution' => ['column' => 'resolution', 'label' => 'Resolution', 'type' => 'string'], 'step' => ['column' => 'step', 'label' => 'Step', 'type' => 'string'], 'state' => ['column' => 'state', 'label' => 'State', 'type' => 'string'], - 'workflow_type' => ['column' => 'workflow_type', 'label' => 'Workflow Type', 'type' => 'string'], + 'workflow_type' => ['column' => 'workflow_type', 'label' => 'Workflow type', 'type' => 'string'], 'points' => ['column' => 'points', 'label' => 'Points', 'type' => 'integer'], + 'actual' => ['column' => 'actual', 'label' => 'Actual', 'type' => 'string'], + 'expected' => ['column' => 'expected', 'label' => 'Expected', 'type' => 'string'], 'story' => ['column' => 'story', 'label' => 'Story', 'type' => 'string'], + 'steps' => ['column' => 'steps', 'label' => 'Steps', 'type' => 'string'], 'criteria' => ['column' => 'criteria', 'label' => 'Criteria', 'type' => 'string'], 'reproducibility' => ['column' => 'reproducibility', 'label' => 'Reproducibility', 'type' => 'float'], 'icon' => ['column' => 'icon', 'label' => 'Icon', 'type' => 'string'], 'image' => ['column' => 'image', 'label' => 'Image', 'type' => 'string'], 'avatar' => ['column' => 'avatar', 'label' => 'Avatar', 'type' => 'string'], - 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], 'ui' => ['column' => 'ui', 'label' => 'Ui', 'type' => 'JSON_OBJECT'], 'assets' => ['column' => 'assets', 'label' => 'Assets', 'type' => 'JSON_OBJECT'], 'backlog' => ['column' => 'backlog', 'label' => 'Backlog', 'type' => 'JSON_OBJECT'], @@ -252,8 +259,5 @@ class IndexRequest extends BaseIndexRequest 'options' => ['column' => 'options', 'label' => 'Options', 'type' => 'JSON_OBJECT'], 'roadmap' => ['column' => 'roadmap', 'label' => 'Roadmap', 'type' => 'JSON_OBJECT'], 'sources' => ['column' => 'sources', 'label' => 'Sources', 'type' => 'JSON_OBJECT'], - 'actual' => ['column' => 'actual', 'label' => 'Actual', 'type' => 'string'], - 'expected' => ['column' => 'expected', 'label' => 'Expected', 'type' => 'string'], - 'steps' => ['column' => 'steps', 'label' => 'Steps', 'type' => 'string'], ]; } diff --git a/src/Http/Requests/Ticket/StoreRequest.php b/src/Http/Requests/Ticket/StoreRequest.php index 5fce47e..086e13f 100644 --- a/src/Http/Requests/Ticket/StoreRequest.php +++ b/src/Http/Requests/Ticket/StoreRequest.php @@ -17,43 +17,42 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'ticket_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'ticket_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], - 'completed_by_id' => ['nullable', 'uuid'], - 'duplicate_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], - 'fixed_by_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], 'matrix_id' => ['nullable', 'uuid'], 'milestone_id' => ['nullable', 'uuid'], 'note_id' => ['nullable', 'uuid'], 'project_id' => ['nullable', 'uuid'], 'release_id' => ['nullable', 'uuid'], - 'reported_by_id' => ['nullable', 'uuid'], 'roadmap_id' => ['nullable', 'uuid'], 'source_id' => ['nullable', 'uuid'], 'sprint_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'version_fixed_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], + 'completed_by_id' => ['nullable', 'uuid'], + 'duplicate_id' => ['nullable', 'uuid'], + 'fixed_by_id' => ['nullable', 'uuid'], + 'reported_by_id' => ['nullable', 'uuid'], + 'version_fixed_id' => ['nullable', 'uuid'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -82,6 +81,7 @@ class StoreRequest extends BaseStoreRequest 'completed' => ['boolean'], 'cron' => ['boolean'], 'duplicate' => ['boolean'], + 'featured' => ['boolean'], 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], @@ -92,10 +92,12 @@ class StoreRequest extends BaseStoreRequest 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], - 'retired' => ['boolean'], 'resolved' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -105,13 +107,16 @@ class StoreRequest extends BaseStoreRequest 'introduction' => ['string'], 'content' => ['nullable', 'string'], 'summary' => ['nullable', 'string'], - 'handler' => ['string'], - 'priority' => ['string'], - 'severity' => ['string'], - 'resolution' => ['string'], - 'step' => ['string'], - 'state' => ['string'], - 'workflow_type' => ['string'], + 'handler' => ['nullable', 'string'], + 'key' => ['nullable', 'string'], + 'code' => ['nullable', 'integer'], + 'key_code_hash' => ['nullable', 'string'], + 'priority' => ['nullable', 'string'], + 'severity' => ['nullable', 'string'], + 'resolution' => ['nullable', 'string'], + 'step' => ['nullable', 'string'], + 'state' => ['nullable', 'string'], + 'workflow_type' => ['nullable', 'string'], 'points' => ['integer'], 'actual' => ['nullable', 'string'], 'expected' => ['nullable', 'string'], @@ -135,6 +140,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_tickets'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * @@ -151,54 +179,6 @@ protected function prepareForValidation() $this->filterStatus($input); $this->filterSystemFields($input); - if ($this->exists('handler')) { - $input['handler'] = $this->filterHtml($this->input('handler')); - } - - if ($this->exists('priority')) { - $input['priority'] = $this->filterHtml($this->input('priority')); - } - - if ($this->exists('resolution')) { - $input['resolution'] = $this->filterHtml($this->input('resolution')); - } - - if ($this->exists('severity')) { - $input['severity'] = $this->filterHtml($this->input('severity')); - } - - if ($this->exists('step')) { - $input['step'] = $this->filterHtml($this->input('step')); - } - - if ($this->exists('state')) { - $input['state'] = $this->filterHtml($this->input('state')); - } - - if ($this->exists('workflow_type')) { - $input['workflow_type'] = $this->filterHtml($this->input('workflow_type')); - } - - if ($this->filled('actual')) { - $input['actual'] = $this->purify($this->input('actual')); - } - - if ($this->filled('expected')) { - $input['expected'] = $this->purify($this->input('expected')); - } - - if ($this->filled('steps')) { - $input['steps'] = $this->purify($this->input('steps')); - } - - if ($this->filled('story')) { - $input['story'] = $this->purify($this->input('story')); - } - - if ($this->filled('criteria')) { - $input['criteria'] = $this->purify($this->input('criteria')); - } - if (! empty($input)) { $this->merge($input); } diff --git a/src/Http/Requests/Ticket/UpdateRequest.php b/src/Http/Requests/Ticket/UpdateRequest.php index a2e9223..e839305 100644 --- a/src/Http/Requests/Ticket/UpdateRequest.php +++ b/src/Http/Requests/Ticket/UpdateRequest.php @@ -17,43 +17,42 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'ticket_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'ticket_type' => ['nullable', 'string'], 'backlog_id' => ['nullable', 'uuid'], 'board_id' => ['nullable', 'uuid'], - 'completed_by_id' => ['nullable', 'uuid'], - 'duplicate_id' => ['nullable', 'uuid'], 'epic_id' => ['nullable', 'uuid'], - 'fixed_by_id' => ['nullable', 'uuid'], 'flow_id' => ['nullable', 'uuid'], 'matrix_id' => ['nullable', 'uuid'], 'milestone_id' => ['nullable', 'uuid'], 'note_id' => ['nullable', 'uuid'], 'project_id' => ['nullable', 'uuid'], 'release_id' => ['nullable', 'uuid'], - 'reported_by_id' => ['nullable', 'uuid'], 'roadmap_id' => ['nullable', 'uuid'], 'source_id' => ['nullable', 'uuid'], 'sprint_id' => ['nullable', 'uuid'], 'tag_id' => ['nullable', 'uuid'], 'team_id' => ['nullable', 'uuid'], - 'version_fixed_id' => ['nullable', 'uuid'], 'version_id' => ['nullable', 'uuid'], - 'start_at' => ['nullable', 'string'], - 'planned_start_at' => ['nullable', 'string'], - 'end_at' => ['nullable', 'string'], - 'planned_end_at' => ['nullable', 'string'], + 'completed_by_id' => ['nullable', 'uuid'], + 'duplicate_id' => ['nullable', 'uuid'], + 'fixed_by_id' => ['nullable', 'uuid'], + 'reported_by_id' => ['nullable', 'uuid'], + 'version_fixed_id' => ['nullable', 'uuid'], 'canceled_at' => ['nullable', 'string'], 'closed_at' => ['nullable', 'string'], 'embargo_at' => ['nullable', 'string'], 'fixed_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], 'postponed_at' => ['nullable', 'string'], 'published_at' => ['nullable', 'string'], - 'released_at' => ['nullable', 'string'], - 'resumed_at' => ['nullable', 'string'], 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -82,6 +81,7 @@ class UpdateRequest extends BaseUpdateRequest 'completed' => ['boolean'], 'cron' => ['boolean'], 'duplicate' => ['boolean'], + 'featured' => ['boolean'], 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], @@ -92,10 +92,12 @@ class UpdateRequest extends BaseUpdateRequest 'problem' => ['boolean'], 'published' => ['boolean'], 'released' => ['boolean'], - 'retired' => ['boolean'], 'resolved' => ['boolean'], + 'retired' => ['boolean'], + 'special' => ['boolean'], 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -105,13 +107,16 @@ class UpdateRequest extends BaseUpdateRequest 'introduction' => ['string'], 'content' => ['nullable', 'string'], 'summary' => ['nullable', 'string'], - 'handler' => ['string'], - 'priority' => ['string'], - 'severity' => ['string'], - 'resolution' => ['string'], - 'step' => ['string'], - 'state' => ['string'], - 'workflow_type' => ['string'], + 'handler' => ['nullable', 'string'], + 'key' => ['nullable', 'string'], + 'code' => ['nullable', 'integer'], + 'key_code_hash' => ['nullable', 'string'], + 'priority' => ['nullable', 'string'], + 'severity' => ['nullable', 'string'], + 'resolution' => ['nullable', 'string'], + 'step' => ['nullable', 'string'], + 'state' => ['nullable', 'string'], + 'workflow_type' => ['nullable', 'string'], 'points' => ['integer'], 'actual' => ['nullable', 'string'], 'expected' => ['nullable', 'string'], @@ -135,6 +140,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_tickets'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * @@ -151,54 +179,6 @@ protected function prepareForValidation() $this->filterStatus($input); $this->filterSystemFields($input); - if ($this->exists('handler')) { - $input['handler'] = $this->filterHtml($this->input('handler')); - } - - if ($this->exists('priority')) { - $input['priority'] = $this->filterHtml($this->input('priority')); - } - - if ($this->exists('resolution')) { - $input['resolution'] = $this->filterHtml($this->input('resolution')); - } - - if ($this->exists('severity')) { - $input['severity'] = $this->filterHtml($this->input('severity')); - } - - if ($this->exists('step')) { - $input['step'] = $this->filterHtml($this->input('step')); - } - - if ($this->exists('state')) { - $input['state'] = $this->filterHtml($this->input('state')); - } - - if ($this->exists('workflow_type')) { - $input['workflow_type'] = $this->filterHtml($this->input('workflow_type')); - } - - if ($this->filled('actual')) { - $input['actual'] = $this->purify($this->input('actual')); - } - - if ($this->filled('expected')) { - $input['expected'] = $this->purify($this->input('expected')); - } - - if ($this->filled('steps')) { - $input['steps'] = $this->purify($this->input('steps')); - } - - if ($this->filled('story')) { - $input['story'] = $this->purify($this->input('story')); - } - - if ($this->filled('criteria')) { - $input['criteria'] = $this->purify($this->input('criteria')); - } - if (! empty($input)) { $this->merge($input); } diff --git a/src/Http/Requests/Version/CreateRequest.php b/src/Http/Requests/Version/CreateRequest.php index 9c8c4e7..bcc279c 100644 --- a/src/Http/Requests/Version/CreateRequest.php +++ b/src/Http/Requests/Version/CreateRequest.php @@ -17,10 +17,26 @@ class CreateRequest extends FormRequest * @var array> */ public const RULES = [ + 'version_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'version_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], + 'project_id' => ['nullable', 'uuid'], + 'tag_id' => ['nullable', 'uuid'], + 'team_id' => ['nullable', 'uuid'], + 'ticket_id' => ['nullable', 'uuid'], + 'canceled_at' => ['nullable', 'string'], + 'closed_at' => ['nullable', 'string'], + 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], + 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], + 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -44,11 +60,27 @@ class CreateRequest extends FormRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'canceled' => ['boolean'], + 'closed' => ['boolean'], + 'completed' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], + 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], + 'pending' => ['boolean'], + 'planned' => ['boolean'], + 'prioritized' => ['boolean'], + 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], + 'resolved' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], + 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Version/EditRequest.php b/src/Http/Requests/Version/EditRequest.php index ddd7ff7..be2f876 100644 --- a/src/Http/Requests/Version/EditRequest.php +++ b/src/Http/Requests/Version/EditRequest.php @@ -17,10 +17,26 @@ class EditRequest extends FormRequest * @var array> */ public const RULES = [ + 'version_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'version_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], + 'project_id' => ['nullable', 'uuid'], + 'tag_id' => ['nullable', 'uuid'], + 'team_id' => ['nullable', 'uuid'], + 'ticket_id' => ['nullable', 'uuid'], + 'canceled_at' => ['nullable', 'string'], + 'closed_at' => ['nullable', 'string'], + 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], + 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], + 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -44,11 +60,27 @@ class EditRequest extends FormRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'canceled' => ['boolean'], + 'closed' => ['boolean'], + 'completed' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], + 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], + 'pending' => ['boolean'], + 'planned' => ['boolean'], + 'prioritized' => ['boolean'], + 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], + 'resolved' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], + 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string'], 'byline' => ['string'], diff --git a/src/Http/Requests/Version/IndexRequest.php b/src/Http/Requests/Version/IndexRequest.php index d319029..758d487 100644 --- a/src/Http/Requests/Version/IndexRequest.php +++ b/src/Http/Requests/Version/IndexRequest.php @@ -18,8 +18,20 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationDates = [ 'created_at' => ['column' => 'created_at', 'label' => 'Created at', 'nullable' => true], - 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated at', 'nullable' => true], + 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted at', 'nullable' => true], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'nullable' => true], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'nullable' => true], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'nullable' => true], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'nullable' => true], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'nullable' => true], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'nullable' => true], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'nullable' => true], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'nullable' => true], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'nullable' => true], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'nullable' => true], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'nullable' => true], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'nullable' => true], ]; /** @@ -27,10 +39,25 @@ class IndexRequest extends BaseIndexRequest */ protected array $paginationFlags = [ 'active' => ['column' => 'active', 'label' => 'Active', 'icon' => 'fa-solid fa-person-running'], + 'canceled' => ['column' => 'canceled', 'label' => 'Canceled', 'icon' => 'fa-solid fa-ban text-warning'], + 'closed' => ['column' => 'closed', 'label' => 'Closed', 'icon' => 'fa-solid fa-xmark'], + 'completed' => ['column' => 'completed', 'label' => 'Completed', 'icon' => 'fa-solid fa-check'], + 'cron' => ['column' => 'cron', 'label' => 'Cron', 'icon' => 'fa-regular fa-clock'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'icon' => 'fa-solid fa-star text-warning'], + 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'icon' => 'fa-solid fa-wrench'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'icon' => 'fa-solid fa-flag'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'icon' => 'fa-solid fa-server'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'icon' => 'fa-solid fa-lock text-warning'], + 'pending' => ['column' => 'pending', 'label' => 'Pending', 'icon' => 'fa-solid fa-circle-pause text-warning'], + 'planned' => ['column' => 'planned', 'label' => 'Planned', 'icon' => 'fa-solid fa-circle-pause text-success'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'icon' => 'fa-solid fa-triangle-exclamation text-success'], + 'problem' => ['column' => 'problem', 'label' => 'Problem', 'icon' => 'fa-solid fa-triangle-exclamation text-danger'], + 'published' => ['column' => 'published', 'label' => 'Published', 'icon' => 'fa-solid fa-book'], + 'released' => ['column' => 'released', 'label' => 'Released', 'icon' => 'fa-solid fa-dove'], + 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'icon' => 'fa-solid fa-check-double text-success'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'icon' => 'fa-solid fa-chair text-success'], + 'special' => ['column' => 'special', 'label' => 'Special', 'icon' => 'fa-solid fa-star text-success'], + 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'icon' => 'fa-solid fa-hand text-danger'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'icon' => 'fa-solid fa-question text-warning'], ]; @@ -38,18 +65,24 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $paginationIds = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string', 'nullable' => true], + 'version_type' => ['column' => 'version_type', 'label' => 'Version Type', 'type' => 'string', 'nullable' => true], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'uuid', 'nullable' => true], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'uuid', 'nullable' => true], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'uuid', 'nullable' => true], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'uuid', 'nullable' => true], - 'version_type' => ['column' => 'version_type', 'label' => 'Version type', 'type' => 'string', 'nullable' => true], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'uuid', 'nullable' => true], + 'project_id' => ['column' => 'project_id', 'label' => 'Project id', 'type' => 'uuid', 'nullable' => true], + 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'uuid', 'nullable' => true], + 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'uuid', 'nullable' => true], + 'ticket_id' => ['column' => 'ticket_id', 'label' => 'Ticket id', 'type' => 'uuid', 'nullable' => true], ]; /** * @var array> */ protected array $paginationColumns = [ + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string', 'nullable' => true], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string', 'nullable' => true], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string', 'nullable' => true], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string', 'nullable' => true], @@ -65,15 +98,32 @@ class IndexRequest extends BaseIndexRequest * @var array> */ protected array $sortable = [ + 'id' => ['column' => 'id', 'label' => 'ID', 'type' => 'string'], + 'version_type' => ['column' => 'version_type', 'label' => 'Version Type', 'type' => 'string'], 'created_by_id' => ['column' => 'created_by_id', 'label' => 'Created by id', 'type' => 'string'], 'modified_by_id' => ['column' => 'modified_by_id', 'label' => 'Modified by id', 'type' => 'string'], 'owned_by_id' => ['column' => 'owned_by_id', 'label' => 'Owned by id', 'type' => 'string'], 'parent_id' => ['column' => 'parent_id', 'label' => 'Parent id', 'type' => 'string'], - 'version_type' => ['column' => 'version_type', 'label' => 'Version type', 'type' => 'string'], 'matrix_id' => ['column' => 'matrix_id', 'label' => 'Matrix id', 'type' => 'string'], + 'project_id' => ['column' => 'project_id', 'label' => 'Project id', 'type' => 'string'], + 'tag_id' => ['column' => 'tag_id', 'label' => 'Tag id', 'type' => 'string'], + 'team_id' => ['column' => 'team_id', 'label' => 'Team id', 'type' => 'string'], + 'ticket_id' => ['column' => 'ticket_id', 'label' => 'Ticket id', 'type' => 'string'], 'created_at' => ['column' => 'created_at', 'label' => 'Created At', 'type' => 'string'], 'updated_at' => ['column' => 'updated_at', 'label' => 'Updated At', 'type' => 'string'], 'deleted_at' => ['column' => 'deleted_at', 'label' => 'Deleted At', 'type' => 'string'], + 'canceled_at' => ['column' => 'canceled_at', 'label' => 'Canceled at', 'type' => 'string'], + 'closed_at' => ['column' => 'closed_at', 'label' => 'Closed at', 'type' => 'string'], + 'embargo_at' => ['column' => 'embargo_at', 'label' => 'Embargo at', 'type' => 'string'], + 'planned_end_at' => ['column' => 'planned_end_at', 'label' => 'Planned end at', 'type' => 'string'], + 'planned_start_at' => ['column' => 'planned_start_at', 'label' => 'Planned start at', 'type' => 'string'], + 'postponed_at' => ['column' => 'postponed_at', 'label' => 'Postponed at', 'type' => 'string'], + 'published_at' => ['column' => 'published_at', 'label' => 'Published at', 'type' => 'string'], + 'resolved_at' => ['column' => 'resolved_at', 'label' => 'Resolved at', 'type' => 'string'], + 'resumed_at' => ['column' => 'resumed_at', 'label' => 'Resumed at', 'type' => 'string'], + 'suspended_at' => ['column' => 'suspended_at', 'label' => 'Suspended at', 'type' => 'string'], + 'timer_end_at' => ['column' => 'timer_end_at', 'label' => 'Timer end at', 'type' => 'string'], + 'timer_start_at' => ['column' => 'timer_start_at', 'label' => 'Timer start at', 'type' => 'string'], 'gids' => ['column' => 'gids', 'label' => 'Gids', 'type' => 'integer'], 'po' => ['column' => 'po', 'label' => 'Po', 'type' => 'integer'], 'pg' => ['column' => 'pg', 'label' => 'Pg', 'type' => 'integer'], @@ -97,11 +147,27 @@ class IndexRequest extends BaseIndexRequest 'latitude' => ['column' => 'latitude', 'label' => 'Latitude', 'type' => 'float'], 'longitude' => ['column' => 'longitude', 'label' => 'Longitude', 'type' => 'float'], 'active' => ['column' => 'active', 'label' => 'Active', 'type' => 'boolean'], + 'canceled' => ['column' => 'canceled', 'label' => 'Canceled', 'type' => 'boolean'], + 'closed' => ['column' => 'closed', 'label' => 'Closed', 'type' => 'boolean'], + 'completed' => ['column' => 'completed', 'label' => 'Completed', 'type' => 'boolean'], + 'cron' => ['column' => 'cron', 'label' => 'Cron', 'type' => 'boolean'], + 'featured' => ['column' => 'featured', 'label' => 'Featured', 'type' => 'boolean'], + 'fixed' => ['column' => 'fixed', 'label' => 'Fixed', 'type' => 'boolean'], 'flagged' => ['column' => 'flagged', 'label' => 'Flagged', 'type' => 'boolean'], 'internal' => ['column' => 'internal', 'label' => 'Internal', 'type' => 'boolean'], 'locked' => ['column' => 'locked', 'label' => 'Locked', 'type' => 'boolean'], + 'pending' => ['column' => 'pending', 'label' => 'Pending', 'type' => 'boolean'], + 'planned' => ['column' => 'planned', 'label' => 'Planned', 'type' => 'boolean'], + 'prioritized' => ['column' => 'prioritized', 'label' => 'Prioritized', 'type' => 'boolean'], + 'problem' => ['column' => 'problem', 'label' => 'Problem', 'type' => 'boolean'], + 'published' => ['column' => 'published', 'label' => 'Published', 'type' => 'boolean'], + 'released' => ['column' => 'released', 'label' => 'Released', 'type' => 'boolean'], + 'resolved' => ['column' => 'resolved', 'label' => 'Resolved', 'type' => 'boolean'], 'retired' => ['column' => 'retired', 'label' => 'Retired', 'type' => 'boolean'], + 'special' => ['column' => 'special', 'label' => 'Special', 'type' => 'boolean'], + 'suspended' => ['column' => 'suspended', 'label' => 'Suspended', 'type' => 'boolean'], 'unknown' => ['column' => 'unknown', 'label' => 'Unknown', 'type' => 'boolean'], + 'locale' => ['column' => 'locale', 'label' => 'Locale', 'type' => 'string'], 'label' => ['column' => 'label', 'label' => 'Label', 'type' => 'string'], 'title' => ['column' => 'title', 'label' => 'Title', 'type' => 'string'], 'byline' => ['column' => 'byline', 'label' => 'Byline', 'type' => 'string'], diff --git a/src/Http/Requests/Version/StoreRequest.php b/src/Http/Requests/Version/StoreRequest.php index 09e6fdb..b3d390f 100644 --- a/src/Http/Requests/Version/StoreRequest.php +++ b/src/Http/Requests/Version/StoreRequest.php @@ -17,10 +17,26 @@ class StoreRequest extends BaseStoreRequest * @var array> */ public const RULES = [ + 'version_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'version_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], + 'project_id' => ['nullable', 'uuid'], + 'tag_id' => ['nullable', 'uuid'], + 'team_id' => ['nullable', 'uuid'], + 'ticket_id' => ['nullable', 'uuid'], + 'canceled_at' => ['nullable', 'string'], + 'closed_at' => ['nullable', 'string'], + 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], + 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], + 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -44,11 +60,27 @@ class StoreRequest extends BaseStoreRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'canceled' => ['boolean'], + 'closed' => ['boolean'], + 'completed' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], + 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], + 'pending' => ['boolean'], + 'planned' => ['boolean'], + 'prioritized' => ['boolean'], + 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], + 'resolved' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], + 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -69,6 +101,29 @@ class StoreRequest extends BaseStoreRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_versions'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Requests/Version/UpdateRequest.php b/src/Http/Requests/Version/UpdateRequest.php index 40781c8..9adc479 100644 --- a/src/Http/Requests/Version/UpdateRequest.php +++ b/src/Http/Requests/Version/UpdateRequest.php @@ -17,10 +17,26 @@ class UpdateRequest extends BaseUpdateRequest * @var array> */ public const RULES = [ + 'version_type' => ['nullable', 'string'], 'owned_by_id' => ['nullable', 'uuid'], 'parent_id' => ['nullable', 'uuid'], - 'version_type' => ['nullable', 'string'], 'matrix_id' => ['nullable', 'uuid'], + 'project_id' => ['nullable', 'uuid'], + 'tag_id' => ['nullable', 'uuid'], + 'team_id' => ['nullable', 'uuid'], + 'ticket_id' => ['nullable', 'uuid'], + 'canceled_at' => ['nullable', 'string'], + 'closed_at' => ['nullable', 'string'], + 'embargo_at' => ['nullable', 'string'], + 'planned_end_at' => ['nullable', 'string'], + 'planned_start_at' => ['nullable', 'string'], + 'postponed_at' => ['nullable', 'string'], + 'published_at' => ['nullable', 'string'], + 'resolved_at' => ['nullable', 'string'], + 'resumed_at' => ['nullable', 'string'], + 'suspended_at' => ['nullable', 'string'], + 'timer_end_at' => ['nullable', 'string'], + 'timer_start_at' => ['nullable', 'string'], 'gids' => ['integer'], 'po' => ['integer'], 'pg' => ['integer'], @@ -44,11 +60,27 @@ class UpdateRequest extends BaseUpdateRequest 'latitude' => ['nullable', 'numeric'], 'longitude' => ['nullable', 'numeric'], 'active' => ['boolean'], + 'canceled' => ['boolean'], + 'closed' => ['boolean'], + 'completed' => ['boolean'], + 'cron' => ['boolean'], + 'featured' => ['boolean'], + 'fixed' => ['boolean'], 'flagged' => ['boolean'], 'internal' => ['boolean'], 'locked' => ['boolean'], + 'pending' => ['boolean'], + 'planned' => ['boolean'], + 'prioritized' => ['boolean'], + 'problem' => ['boolean'], + 'published' => ['boolean'], + 'released' => ['boolean'], + 'resolved' => ['boolean'], 'retired' => ['boolean'], + 'special' => ['boolean'], + 'suspended' => ['boolean'], 'unknown' => ['boolean'], + 'locale' => ['string'], 'label' => ['string'], 'title' => ['string', 'required'], 'byline' => ['string'], @@ -69,6 +101,29 @@ class UpdateRequest extends BaseUpdateRequest '_return_url' => ['nullable', 'url'], ]; + protected string $slug_table = 'matrix_versions'; + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + $rules = parent::rules(); + + /** + * @var array $revisions + */ + $revisions = config('playground-matrix-resource.revisions'); + + if (! empty($revisions['optional'])) { + $rules['revision'] = 'bool'; + } + + return $rules; + } + /** * Prepare the data for validation. * diff --git a/src/Http/Resources/Backlog.php b/src/Http/Resources/Backlog.php index c9b8aba..dcb3330 100644 --- a/src/Http/Resources/Backlog.php +++ b/src/Http/Resources/Backlog.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $backlog = $request->route('backlog'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $backlog?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Board.php b/src/Http/Resources/Board.php index 86cf0ae..77ba77c 100644 --- a/src/Http/Resources/Board.php +++ b/src/Http/Resources/Board.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $board = $request->route('board'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $board?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Epic.php b/src/Http/Resources/Epic.php index 7e120d8..5e7e441 100644 --- a/src/Http/Resources/Epic.php +++ b/src/Http/Resources/Epic.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $epic = $request->route('epic'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $epic?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Flow.php b/src/Http/Resources/Flow.php index f6ee155..18e72b0 100644 --- a/src/Http/Resources/Flow.php +++ b/src/Http/Resources/Flow.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $flow = $request->route('flow'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $flow?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Matrix.php b/src/Http/Resources/Matrix.php index 60ae80f..7f6dc96 100644 --- a/src/Http/Resources/Matrix.php +++ b/src/Http/Resources/Matrix.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $matrix = $request->route('matrix'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $matrix?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Milestone.php b/src/Http/Resources/Milestone.php index d19fe76..aa4d829 100644 --- a/src/Http/Resources/Milestone.php +++ b/src/Http/Resources/Milestone.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $milestone = $request->route('milestone'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $milestone?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Note.php b/src/Http/Resources/Note.php index f26a908..a4d4593 100644 --- a/src/Http/Resources/Note.php +++ b/src/Http/Resources/Note.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $note = $request->route('note'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $note?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Project.php b/src/Http/Resources/Project.php index f59a659..80d4b79 100644 --- a/src/Http/Resources/Project.php +++ b/src/Http/Resources/Project.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $project = $request->route('project'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $project?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Release.php b/src/Http/Resources/Release.php index f9e14b9..1c10e12 100644 --- a/src/Http/Resources/Release.php +++ b/src/Http/Resources/Release.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $release = $request->route('release'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $release?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Roadmap.php b/src/Http/Resources/Roadmap.php index 55b2a1e..1b53d43 100644 --- a/src/Http/Resources/Roadmap.php +++ b/src/Http/Resources/Roadmap.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $roadmap = $request->route('roadmap'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $roadmap?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Source.php b/src/Http/Resources/Source.php index dbc1aba..a419e45 100644 --- a/src/Http/Resources/Source.php +++ b/src/Http/Resources/Source.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $source = $request->route('source'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $source?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Sprint.php b/src/Http/Resources/Sprint.php index 2529f74..10081cb 100644 --- a/src/Http/Resources/Sprint.php +++ b/src/Http/Resources/Sprint.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $sprint = $request->route('sprint'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $sprint?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Tag.php b/src/Http/Resources/Tag.php index 344a66b..4cc4f29 100644 --- a/src/Http/Resources/Tag.php +++ b/src/Http/Resources/Tag.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $tag = $request->route('tag'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $tag?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Team.php b/src/Http/Resources/Team.php index 8e80a30..3c0d1d0 100644 --- a/src/Http/Resources/Team.php +++ b/src/Http/Resources/Team.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $team = $request->route('team'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $team?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Ticket.php b/src/Http/Resources/Ticket.php index cc23a04..1980a5d 100644 --- a/src/Http/Resources/Ticket.php +++ b/src/Http/Resources/Ticket.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $ticket = $request->route('ticket'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $ticket?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/Http/Resources/Version.php b/src/Http/Resources/Version.php index 7e0262d..0f629a1 100644 --- a/src/Http/Resources/Version.php +++ b/src/Http/Resources/Version.php @@ -6,6 +6,7 @@ declare(strict_types=1); namespace Playground\Matrix\Resource\Http\Resources; +use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Carbon; @@ -30,11 +31,16 @@ public function with(Request $request): array */ $version = $request->route('version'); + /** + * @var ?Authenticatable $user; + */ + $user = $request->user(); + return [ 'meta' => [ 'id' => $version?->id, 'rules' => $request->rules(), - 'session_user_id' => $request->user()?->id, + 'session_user_id' => $user?->getAttributeValue('id'), 'timestamp' => Carbon::now()->toJson(), 'validated' => $request->validated(), ], diff --git a/src/ServiceProvider.php b/src/ServiceProvider.php index 963cbd7..bd2fbc4 100644 --- a/src/ServiceProvider.php +++ b/src/ServiceProvider.php @@ -197,6 +197,7 @@ public function about(): void 'Load Policies' => ! empty($load['policies']) ? 'ENABLED' : 'DISABLED', 'Load Routes' => ! empty($load['routes']) ? 'ENABLED' : 'DISABLED', + // 'Load Translations' => ! empty($load['translations']) ? 'ENABLED' : 'DISABLED', 'Load Views' => ! empty($load['views']) ? 'ENABLED' : 'DISABLED', 'Middleware auth' => ! empty($middleware['auth']) ? sprintf('%s', json_encode($middleware['auth'])) : '', diff --git a/swagger.json b/swagger.json index e0237ff..f838b6e 100644 --- a/swagger.json +++ b/swagger.json @@ -1,30 +1,37 @@ { "openapi": "3.0.3", + "info": { + "title": "Playground Matrix Resource", + "description": "Playground: Provides an API and a Blade UI for interacting with Playground Matrix, a Project Management System for Laravel applications.", + "version": "73.0.0" + }, + "externalDocs": { + "url": "https://gammamatrix-playground.readthedocs.io/en/develop/components/matrix.html", + "description": "Read the Docs: Playground Matrix Packages" + }, "servers": [ { "url": "https://api.example.com", - "description": "Production server" + "description": "Production Server" }, { "url": "https://api.staging.example.com", - "description": "Staging server" + "description": "Staging Server" }, { "url": "https://api.dev.example.com", - "description": "Dev server" + "description": "Dev Server" + }, + { + "url": "http://localhost", + "description": "Local Server" } ], - "info": { - "title": "Playground Matrix Resource", - "description": "", - "termsOfService": "", - "version": "73.0.0" - }, - "externalDocs": { - "description": "", - "url": "" - }, "tags": [ + { + "name": "Backlog", + "description": "Manage backlogs in storage." + }, { "name": "Board", "description": "Manage boards in storage." @@ -33,14 +40,14 @@ "name": "Epic", "description": "Manage epics in storage." }, - { - "name": "Backlog", - "description": "Manage backlogs in storage." - }, { "name": "Flow", "description": "Manage flows in storage." }, + { + "name": "Matrix", + "description": "Manage matrices in storage." + }, { "name": "Milestone", "description": "Manage milestones in storage." @@ -87,13 +94,13 @@ } ], "paths": { - "/api/boards/{id}": { + "/resource/matrix/backlogs/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The board id.", + "description": "The backlog id.", "schema": { "type": "string", "format": "uuid" @@ -102,20 +109,20 @@ ], "get": { "tags": [ - "Board" + "Backlog" ], - "summary": "Get a board by id.", - "operationId": "get_board", + "summary": "Get a backlog by id.", + "operationId": "get_backlog", "responses": { "200": { - "description": "The board data.", + "description": "The backlog data.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Board" + "$ref": "#/components/schemas/Backlog" }, "meta": { "type": "object" @@ -135,13 +142,13 @@ }, "delete": { "tags": [ - "Board" + "Backlog" ], - "summary": "Delete a board by id.", - "operationId": "delete_board", + "summary": "Delete a backlog by id.", + "operationId": "delete_backlog", "responses": { "204": { - "description": "The board has been deleted." + "description": "The backlog has been deleted." }, "401": { "description": "Unauthorized" @@ -150,198 +157,198 @@ "description": "Forbidden" }, "423": { - "description": "The board is locked. Unlock to delete." + "description": "The backlog is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Board" + "Backlog" ], - "summary": "Update a board by id.", - "operationId": "patch_board", + "summary": "Patch a backlog by id.", + "operationId": "patch_backlog", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Board fillable properties.", + "description": "The Matrix Backlog fillable properties.", "type": "object", "properties": { + "backlog_type": { + "description": "The backlog type of this backlog.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this board.", + "description": "Foreign key: links an owned by user to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this board.", + "description": "ID: a parent of this backlog.", "type": "string", "format": "uuid", "nullable": true }, - "board_type": { - "description": "The board type of this board.", + "board_id": { + "description": "Foreign key: links a board to this backlog.", "type": "string", + "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this board.", + "description": "Foreign key: links an epic to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this board.", + "description": "Foreign key: links a flow to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this board.", + "description": "Foreign key: links a milestone to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this board.", + "description": "Foreign key: links a note to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this board.", + "description": "Foreign key: links a project to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this board.", + "description": "Foreign key: links a release to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this board.", + "description": "Foreign key: links a roadmap to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this board.", + "description": "Foreign key: links a source to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this board.", + "description": "Foreign key: links a sprint to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this board.", + "description": "Foreign key: links a tag to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this board.", + "description": "Foreign key: links a team to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this board.", + "description": "Foreign key: links a ticket to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this board.", + "description": "Foreign key: links a version to this backlog.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this board.", + "canceled_at": { + "description": "The canceled at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this board.", + "closed_at": { + "description": "The closed at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this board.", + "embargo_at": { + "description": "The embargo at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this board.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this board.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this board.", + "description": "The planned end at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this board.", + "planned_start_at": { + "description": "The planned start at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this board.", + "postponed_at": { + "description": "The postponed at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this board.", + "published_at": { + "description": "The published at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this board.", + "resolved_at": { + "description": "The resolved at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this board.", + "resumed_at": { + "description": "The resumed at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this board.", + "suspended_at": { + "description": "The suspended at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this board.", + "timer_end_at": { + "description": "The timer end at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this board.", + "timer_start_at": { + "description": "The timer start at date for this backlog.", "type": "string", "format": "date-time", "nullable": true @@ -383,7 +390,7 @@ "type": "boolean" }, "status": { - "description": "The status of the board.", + "description": "The status of the backlog.", "type": "integer", "format": "int64" }, @@ -413,7 +420,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the board.", + "description": "The ui of the backlog.", "type": "object", "nullable": true }, @@ -421,6 +428,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -441,6 +468,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -449,10 +480,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -461,44 +500,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the backlog.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the board.", + "description": "The label of the backlog.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the backlog.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the board.", + "description": "The byline of the backlog.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the board.", + "description": "The slug of the backlog.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the board.", + "description": "The url of the backlog.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the board.", + "description": "The description of the backlog.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the board.", + "description": "The introduction of the backlog.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the board. Allows HTML.", + "description": "The content of the backlog. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the board. Allows HTML.", + "description": "The summary of the backlog. Allows HTML.", "type": "string", "nullable": true }, @@ -522,6 +571,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -549,14 +603,14 @@ }, "responses": { "200": { - "description": "The updated board.", + "description": "The backlog has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Board" + "$ref": "#/components/schemas/Backlog" }, "meta": { "type": "object" @@ -582,11 +636,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -595,20 +649,23 @@ } } } + }, + "423": { + "description": "The backlog is locked. Unlock to patch." } } } }, - "/api/boards": { + "/resource/matrix/backlogs": { "get": { "tags": [ - "Board" + "Backlog" ], - "summary": "Get boards from the index.", - "operationId": "get_boards_index", + "summary": "Get backlogs from the index.", + "operationId": "get_backlogs_index", "responses": { "200": { - "description": "Get the boards from the index.", + "description": "Get the backlogs from the index.", "content": { "application/json": { "schema": { @@ -617,7 +674,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Board" + "$ref": "#/components/schemas/Backlog" } }, "meta": { @@ -638,192 +695,192 @@ }, "post": { "tags": [ - "Board" + "Backlog" ], - "summary": "Create a board.", - "operationId": "post_board", + "summary": "Create a backlog.", + "operationId": "post_backlog", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Board fillable properties.", + "description": "The Matrix Backlog fillable properties.", "type": "object", "properties": { + "backlog_type": { + "description": "The backlog type of this backlog.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this board.", + "description": "Foreign key: links an owned by user to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this board.", + "description": "ID: a parent of this backlog.", "type": "string", "format": "uuid", "nullable": true }, - "board_type": { - "description": "The board type of this board.", + "board_id": { + "description": "Foreign key: links a board to this backlog.", "type": "string", + "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this board.", + "description": "Foreign key: links an epic to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this board.", + "description": "Foreign key: links a flow to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this board.", + "description": "Foreign key: links a milestone to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this board.", + "description": "Foreign key: links a note to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this board.", + "description": "Foreign key: links a project to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this board.", + "description": "Foreign key: links a release to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this board.", + "description": "Foreign key: links a roadmap to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this board.", + "description": "Foreign key: links a source to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this board.", + "description": "Foreign key: links a sprint to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this board.", + "description": "Foreign key: links a tag to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this board.", + "description": "Foreign key: links a team to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this board.", + "description": "Foreign key: links a ticket to this backlog.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this board.", + "description": "Foreign key: links a version to this backlog.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this board.", + "canceled_at": { + "description": "The canceled at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this board.", + "closed_at": { + "description": "The closed at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this board.", + "embargo_at": { + "description": "The embargo at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this board.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this board.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this board.", + "description": "The planned end at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this board.", + "planned_start_at": { + "description": "The planned start at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this board.", + "postponed_at": { + "description": "The postponed at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this board.", + "published_at": { + "description": "The published at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this board.", + "resolved_at": { + "description": "The resolved at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this board.", + "resumed_at": { + "description": "The resumed at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this board.", + "suspended_at": { + "description": "The suspended at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this board.", + "timer_end_at": { + "description": "The timer end at date for this backlog.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this board.", + "timer_start_at": { + "description": "The timer start at date for this backlog.", "type": "string", "format": "date-time", "nullable": true @@ -865,7 +922,7 @@ "type": "boolean" }, "status": { - "description": "The status of the board.", + "description": "The status of the backlog.", "type": "integer", "format": "int64" }, @@ -895,7 +952,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the board.", + "description": "The ui of the backlog.", "type": "object", "nullable": true }, @@ -903,6 +960,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -923,6 +1000,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -931,10 +1012,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -943,44 +1032,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the backlog.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the board.", + "description": "The label of the backlog.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the backlog.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the board.", + "description": "The byline of the backlog.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the board.", + "description": "The slug of the backlog.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the board.", + "description": "The url of the backlog.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the board.", + "description": "The description of the backlog.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the board.", + "description": "The introduction of the backlog.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the board. Allows HTML.", + "description": "The content of the backlog. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the board. Allows HTML.", + "description": "The summary of the backlog. Allows HTML.", "type": "string", "nullable": true }, @@ -1004,6 +1103,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -1031,14 +1135,14 @@ }, "responses": { "200": { - "description": "The created boards.", + "description": "The created backlog.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Board" + "$ref": "#/components/schemas/Backlog" }, "meta": { "type": "object" @@ -1064,11 +1168,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -1077,17 +1181,106 @@ } } } + }, + "423": { + "description": "The backlog is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/backlogs/index": { + "post": { + "tags": [ + "Backlog" + ], + "summary": "Get backlogs from the index using POST.", + "operationId": "post_backlogs_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Backlog index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Backlog.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Backlog type of this Backlog.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the backlogs from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Backlog" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/boards/lock/{id}": { + "/resource/matrix/backlogs/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The board id.", + "description": "The backlog id.", "schema": { "type": "string", "format": "uuid" @@ -1096,13 +1289,13 @@ ], "delete": { "tags": [ - "Board" + "Backlog" ], - "summary": "Unlock a board by id.", - "operationId": "lock_board", + "summary": "Delete a backlog by id.", + "operationId": "unlock_backlog", "responses": { "204": { - "description": "The board has been unlocked." + "description": "The backlog has been unlocked." }, "401": { "description": "Unauthorized" @@ -1114,20 +1307,20 @@ }, "put": { "tags": [ - "Board" + "Backlog" ], - "summary": "Lock a board by id.", - "operationId": "unlock_board", + "summary": "Lock a backlog by ID.", + "operationId": "lock_backlog", "responses": { "200": { - "description": "The unlocked board.", + "description": "The unlocked backlog.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Board" + "$ref": "#/components/schemas/Backlog" }, "meta": { "type": "object" @@ -1146,13 +1339,13 @@ } } }, - "/api/boards/restore/{id}": { + "/resource/matrix/backlogs/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The board id.", + "description": "The backlog id.", "schema": { "type": "string", "format": "uuid" @@ -1161,26 +1354,67 @@ ], "put": { "tags": [ - "Board" + "Backlog" ], - "summary": "Restore a board by id.", - "operationId": "restore_board", + "summary": "Restore a backlog from the trash by ID.", + "operationId": "restore_backlog", "responses": { "200": { - "description": "The restored board.", + "description": "The restored backlog.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Board" + "$ref": "#/components/schemas/Backlog" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/backlogs/create": { + "get": { + "tags": [ + "Backlog" + ], + "summary": "Create a backlog form.", + "operationId": "create_backlog", + "responses": { + "200": { + "description": "The create backlog information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Backlog" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a backlog
" + } } } }, @@ -1193,13 +1427,13 @@ } } }, - "/api/epics/{id}": { + "/resource/matrix/backlogs/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The epic id.", + "description": "The backlog id.", "schema": { "type": "string", "format": "uuid" @@ -1208,26 +1442,32 @@ ], "get": { "tags": [ - "Epic" + "Backlog" ], - "summary": "Get a epic by id.", - "operationId": "get_epic", + "summary": "Edit a backlog form.", + "operationId": "edit_backlog", "responses": { "200": { - "description": "The epic data.", + "description": "The edit backlog information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Epic" + "$ref": "#/components/schemas/Backlog" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a backlog
" + } } } }, @@ -1238,16 +1478,63 @@ "description": "Forbidden" } } - }, - "delete": { + } + }, + "/resource/matrix/boards/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The board id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { "tags": [ - "Epic" + "Board" ], - "summary": "Delete a epic by id.", - "operationId": "delete_epic", + "summary": "Get a board by id.", + "operationId": "get_board", + "responses": { + "200": { + "description": "The board data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Board" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + }, + "delete": { + "tags": [ + "Board" + ], + "summary": "Delete a board by id.", + "operationId": "delete_board", "responses": { "204": { - "description": "The epic has been deleted." + "description": "The board has been deleted." }, "401": { "description": "Unauthorized" @@ -1256,198 +1543,198 @@ "description": "Forbidden" }, "423": { - "description": "The epic is locked. Unlock to delete." + "description": "The board is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Epic" + "Board" ], - "summary": "Update a epic by id.", - "operationId": "patch_epic", + "summary": "Patch a board by id.", + "operationId": "patch_board", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Epic fillable properties.", + "description": "The Matrix Board fillable properties.", "type": "object", "properties": { + "board_type": { + "description": "The board type of this board.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this epic.", + "description": "Foreign key: links an owned by user to this board.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this epic.", + "description": "ID: a parent of this board.", "type": "string", "format": "uuid", "nullable": true }, - "epic_type": { - "description": "The epic type of this epic.", + "backlog_id": { + "description": "Foreign key: links a backlog to this board.", "type": "string", + "format": "uuid", "nullable": true }, - "board_id": { - "description": "Foreign key: links a board to this epic.", + "epic_id": { + "description": "Foreign key: links an epic to this board.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this epic.", + "description": "Foreign key: links a flow to this board.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this board.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this epic.", + "description": "Foreign key: links a milestone to this board.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this epic.", + "description": "Foreign key: links a note to this board.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this epic.", + "description": "Foreign key: links a project to this board.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this epic.", + "description": "Foreign key: links a release to this board.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this epic.", + "description": "Foreign key: links a roadmap to this board.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this epic.", + "description": "Foreign key: links a source to this board.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this epic.", + "description": "Foreign key: links a sprint to this board.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this epic.", + "description": "Foreign key: links a tag to this board.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this epic.", + "description": "Foreign key: links a team to this board.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this epic.", + "description": "Foreign key: links a ticket to this board.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this epic.", + "description": "Foreign key: links a version to this board.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this epic.", + "canceled_at": { + "description": "The canceled at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this epic.", + "closed_at": { + "description": "The closed at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this epic.", + "embargo_at": { + "description": "The embargo at date for this board.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this epic.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this epic.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this epic.", + "description": "The planned end at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this epic.", + "planned_start_at": { + "description": "The planned start at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this epic.", + "postponed_at": { + "description": "The postponed at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this epic.", + "published_at": { + "description": "The published at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this epic.", + "resolved_at": { + "description": "The resolved at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this epic.", + "resumed_at": { + "description": "The resumed at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this epic.", + "suspended_at": { + "description": "The suspended at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this epic.", + "timer_end_at": { + "description": "The timer end at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this epic.", + "timer_start_at": { + "description": "The timer start at date for this board.", "type": "string", "format": "date-time", "nullable": true @@ -1489,7 +1776,7 @@ "type": "boolean" }, "status": { - "description": "The status of the epic.", + "description": "The status of the board.", "type": "integer", "format": "int64" }, @@ -1519,7 +1806,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the epic.", + "description": "The ui of the board.", "type": "object", "nullable": true }, @@ -1527,6 +1814,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -1547,6 +1854,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -1555,10 +1866,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -1567,44 +1886,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the board.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the epic.", + "description": "The label of the board.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the board.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the epic.", + "description": "The byline of the board.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the epic.", + "description": "The slug of the board.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the epic.", + "description": "The url of the board.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the epic.", + "description": "The description of the board.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the epic.", + "description": "The introduction of the board.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the epic. Allows HTML.", + "description": "The content of the board. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the epic. Allows HTML.", + "description": "The summary of the board. Allows HTML.", "type": "string", "nullable": true }, @@ -1628,6 +1957,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -1655,14 +1989,14 @@ }, "responses": { "200": { - "description": "The updated epic.", + "description": "The board has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Epic" + "$ref": "#/components/schemas/Board" }, "meta": { "type": "object" @@ -1688,11 +2022,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -1701,20 +2035,23 @@ } } } + }, + "423": { + "description": "The board is locked. Unlock to patch." } } } }, - "/api/epics": { + "/resource/matrix/boards": { "get": { "tags": [ - "Epic" + "Board" ], - "summary": "Get epics from the index.", - "operationId": "get_epics_index", + "summary": "Get boards from the index.", + "operationId": "get_boards_index", "responses": { "200": { - "description": "Get the epics from the index.", + "description": "Get the boards from the index.", "content": { "application/json": { "schema": { @@ -1723,7 +2060,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Epic" + "$ref": "#/components/schemas/Board" } }, "meta": { @@ -1744,192 +2081,192 @@ }, "post": { "tags": [ - "Epic" + "Board" ], - "summary": "Create a epic.", - "operationId": "post_epic", + "summary": "Create a board.", + "operationId": "post_board", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Epic fillable properties.", + "description": "The Matrix Board fillable properties.", "type": "object", "properties": { + "board_type": { + "description": "The board type of this board.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this epic.", + "description": "Foreign key: links an owned by user to this board.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this epic.", + "description": "ID: a parent of this board.", "type": "string", "format": "uuid", "nullable": true }, - "epic_type": { - "description": "The epic type of this epic.", + "backlog_id": { + "description": "Foreign key: links a backlog to this board.", "type": "string", + "format": "uuid", "nullable": true }, - "board_id": { - "description": "Foreign key: links a board to this epic.", + "epic_id": { + "description": "Foreign key: links an epic to this board.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this epic.", + "description": "Foreign key: links a flow to this board.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this board.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this epic.", + "description": "Foreign key: links a milestone to this board.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this epic.", + "description": "Foreign key: links a note to this board.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this epic.", + "description": "Foreign key: links a project to this board.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this epic.", + "description": "Foreign key: links a release to this board.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this epic.", + "description": "Foreign key: links a roadmap to this board.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this epic.", + "description": "Foreign key: links a source to this board.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this epic.", + "description": "Foreign key: links a sprint to this board.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this epic.", + "description": "Foreign key: links a tag to this board.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this epic.", + "description": "Foreign key: links a team to this board.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this epic.", + "description": "Foreign key: links a ticket to this board.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this epic.", + "description": "Foreign key: links a version to this board.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this epic.", + "canceled_at": { + "description": "The canceled at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this epic.", + "closed_at": { + "description": "The closed at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this epic.", + "embargo_at": { + "description": "The embargo at date for this board.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this epic.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this epic.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this epic.", + "description": "The planned end at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this epic.", + "planned_start_at": { + "description": "The planned start at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this epic.", + "postponed_at": { + "description": "The postponed at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this epic.", + "published_at": { + "description": "The published at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this epic.", + "resolved_at": { + "description": "The resolved at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this epic.", + "resumed_at": { + "description": "The resumed at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this epic.", + "suspended_at": { + "description": "The suspended at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this epic.", + "timer_end_at": { + "description": "The timer end at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this epic.", + "timer_start_at": { + "description": "The timer start at date for this board.", "type": "string", "format": "date-time", "nullable": true @@ -1971,7 +2308,7 @@ "type": "boolean" }, "status": { - "description": "The status of the epic.", + "description": "The status of the board.", "type": "integer", "format": "int64" }, @@ -2001,7 +2338,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the epic.", + "description": "The ui of the board.", "type": "object", "nullable": true }, @@ -2009,6 +2346,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -2029,6 +2386,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -2037,10 +2398,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -2049,44 +2418,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the board.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the epic.", + "description": "The label of the board.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the board.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the epic.", + "description": "The byline of the board.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the epic.", + "description": "The slug of the board.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the epic.", + "description": "The url of the board.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the epic.", + "description": "The description of the board.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the epic.", + "description": "The introduction of the board.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the epic. Allows HTML.", + "description": "The content of the board. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the epic. Allows HTML.", + "description": "The summary of the board. Allows HTML.", "type": "string", "nullable": true }, @@ -2110,6 +2489,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -2137,14 +2521,14 @@ }, "responses": { "200": { - "description": "The created epics.", + "description": "The created board.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Epic" + "$ref": "#/components/schemas/Board" }, "meta": { "type": "object" @@ -2170,11 +2554,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -2183,17 +2567,106 @@ } } } + }, + "423": { + "description": "The board is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/boards/index": { + "post": { + "tags": [ + "Board" + ], + "summary": "Get boards from the index using POST.", + "operationId": "post_boards_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Board index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Board.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Board type of this Board.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the boards from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Board" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/epics/lock/{id}": { + "/resource/matrix/boards/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The epic id.", + "description": "The board id.", "schema": { "type": "string", "format": "uuid" @@ -2202,13 +2675,13 @@ ], "delete": { "tags": [ - "Epic" + "Board" ], - "summary": "Unlock a epic by id.", - "operationId": "lock_epic", + "summary": "Delete a board by id.", + "operationId": "unlock_board", "responses": { "204": { - "description": "The epic has been unlocked." + "description": "The board has been unlocked." }, "401": { "description": "Unauthorized" @@ -2220,20 +2693,20 @@ }, "put": { "tags": [ - "Epic" + "Board" ], - "summary": "Lock a epic by id.", - "operationId": "unlock_epic", + "summary": "Lock a board by ID.", + "operationId": "lock_board", "responses": { "200": { - "description": "The unlocked epic.", + "description": "The unlocked board.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Epic" + "$ref": "#/components/schemas/Board" }, "meta": { "type": "object" @@ -2252,13 +2725,13 @@ } } }, - "/api/epics/restore/{id}": { + "/resource/matrix/boards/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The epic id.", + "description": "The board id.", "schema": { "type": "string", "format": "uuid" @@ -2267,20 +2740,20 @@ ], "put": { "tags": [ - "Epic" + "Board" ], - "summary": "Restore a epic by id.", - "operationId": "restore_epic", + "summary": "Restore a board from the trash by ID.", + "operationId": "restore_board", "responses": { "200": { - "description": "The restored epic.", + "description": "The restored board.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Epic" + "$ref": "#/components/schemas/Board" }, "meta": { "type": "object" @@ -2299,13 +2772,54 @@ } } }, - "/api/backlogs/{id}": { + "/resource/matrix/boards/create": { + "get": { + "tags": [ + "Board" + ], + "summary": "Create a board form.", + "operationId": "create_board", + "responses": { + "200": { + "description": "The create board information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Board" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a board
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/boards/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The backlog id.", + "description": "The board id.", "schema": { "type": "string", "format": "uuid" @@ -2314,26 +2828,32 @@ ], "get": { "tags": [ - "Backlog" + "Board" ], - "summary": "Get a backlog by id.", - "operationId": "get_backlog", + "summary": "Edit a board form.", + "operationId": "edit_board", "responses": { "200": { - "description": "The backlog data.", + "description": "The edit board information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Backlog" + "$ref": "#/components/schemas/Board" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a board
" + } } } }, @@ -2344,16 +2864,63 @@ "description": "Forbidden" } } - }, - "delete": { + } + }, + "/resource/matrix/epics/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The epic id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { "tags": [ - "Backlog" + "Epic" ], - "summary": "Delete a backlog by id.", - "operationId": "delete_backlog", + "summary": "Get a epic by id.", + "operationId": "get_epic", + "responses": { + "200": { + "description": "The epic data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Epic" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + }, + "delete": { + "tags": [ + "Epic" + ], + "summary": "Delete a epic by id.", + "operationId": "delete_epic", "responses": { "204": { - "description": "The backlog has been deleted." + "description": "The epic has been deleted." }, "401": { "description": "Unauthorized" @@ -2362,204 +2929,198 @@ "description": "Forbidden" }, "423": { - "description": "The backlog is locked. Unlock to delete." + "description": "The epic is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Backlog" + "Epic" ], - "summary": "Update a backlog by id.", - "operationId": "patch_backlog", + "summary": "Patch a epic by id.", + "operationId": "patch_epic", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Backlog fillable properties.", + "description": "The Matrix Epic fillable properties.", "type": "object", "properties": { + "epic_type": { + "description": "The epic type of this epic.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this backlog.", + "description": "Foreign key: links an owned by user to this epic.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this backlog.", + "description": "ID: a parent of this epic.", "type": "string", "format": "uuid", "nullable": true }, - "backlog_type": { - "description": "The backlog type of this backlog.", + "backlog_id": { + "description": "Foreign key: links a backlog to this epic.", "type": "string", + "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this backlog.", + "description": "Foreign key: links a board to this epic.", "type": "string", "format": "uuid", "nullable": true }, - "epic_id": { - "description": "Foreign key: links an epic to this backlog.", + "flow_id": { + "description": "Foreign key: links a flow to this epic.", "type": "string", "format": "uuid", "nullable": true }, - "flow_id": { - "description": "Foreign key: links a flow to this backlog.", + "matrix_id": { + "description": "Foreign key: links a matrix to this epic.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this backlog.", + "description": "Foreign key: links a milestone to this epic.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this backlog.", + "description": "Foreign key: links a note to this epic.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this backlog.", + "description": "Foreign key: links a project to this epic.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this backlog.", + "description": "Foreign key: links a release to this epic.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this backlog.", + "description": "Foreign key: links a roadmap to this epic.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this backlog.", + "description": "Foreign key: links a source to this epic.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this backlog.", + "description": "Foreign key: links a sprint to this epic.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this backlog.", + "description": "Foreign key: links a tag to this epic.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this backlog.", + "description": "Foreign key: links a team to this epic.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this backlog.", + "description": "Foreign key: links a ticket to this epic.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this backlog.", + "description": "Foreign key: links a version to this epic.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this backlog.", + "canceled_at": { + "description": "The canceled at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this backlog.", + "closed_at": { + "description": "The closed at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this backlog.", + "embargo_at": { + "description": "The embargo at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this backlog.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this backlog.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this backlog.", + "description": "The planned end at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this backlog.", + "planned_start_at": { + "description": "The planned start at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this backlog.", + "postponed_at": { + "description": "The postponed at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this backlog.", + "published_at": { + "description": "The published at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this backlog.", + "resolved_at": { + "description": "The resolved at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this backlog.", + "resumed_at": { + "description": "The resumed at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this backlog.", + "suspended_at": { + "description": "The suspended at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this backlog.", + "timer_end_at": { + "description": "The timer end at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this backlog.", + "timer_start_at": { + "description": "The timer start at date for this epic.", "type": "string", "format": "date-time", "nullable": true @@ -2601,7 +3162,7 @@ "type": "boolean" }, "status": { - "description": "The status of the backlog.", + "description": "The status of the epic.", "type": "integer", "format": "int64" }, @@ -2631,7 +3192,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the backlog.", + "description": "The ui of the epic.", "type": "object", "nullable": true }, @@ -2651,12 +3212,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -2679,6 +3240,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -2695,8 +3260,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -2707,49 +3272,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the epic.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the backlog.", + "description": "The label of the epic.", "type": "string", "maxLength": 128 }, "title": { - "description": "The title of the backlog.", + "description": "The title of the epic.", "type": "string", "maxLength": 255 }, "byline": { - "description": "The byline of the backlog.", + "description": "The byline of the epic.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the backlog.", + "description": "The slug of the epic.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the backlog.", + "description": "The url of the epic.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the backlog.", + "description": "The description of the epic.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the backlog.", + "description": "The introduction of the epic.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the backlog. Allows HTML.", + "description": "The content of the epic. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the backlog. Allows HTML.", + "description": "The summary of the epic. Allows HTML.", "type": "string", "nullable": true }, @@ -2773,6 +3343,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -2800,14 +3375,14 @@ }, "responses": { "200": { - "description": "The updated backlog.", + "description": "The epic has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Backlog" + "$ref": "#/components/schemas/Epic" }, "meta": { "type": "object" @@ -2833,11 +3408,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -2846,20 +3421,23 @@ } } } + }, + "423": { + "description": "The epic is locked. Unlock to patch." } } } }, - "/api/backlogs": { + "/resource/matrix/epics": { "get": { "tags": [ - "Backlog" + "Epic" ], - "summary": "Get backlogs from the index.", - "operationId": "get_backlogs_index", + "summary": "Get epics from the index.", + "operationId": "get_epics_index", "responses": { "200": { - "description": "Get the backlogs from the index.", + "description": "Get the epics from the index.", "content": { "application/json": { "schema": { @@ -2868,7 +3446,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Backlog" + "$ref": "#/components/schemas/Epic" } }, "meta": { @@ -2889,198 +3467,192 @@ }, "post": { "tags": [ - "Backlog" + "Epic" ], - "summary": "Create a backlog.", - "operationId": "post_backlog", + "summary": "Create a epic.", + "operationId": "post_epic", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Backlog fillable properties.", + "description": "The Matrix Epic fillable properties.", "type": "object", "properties": { + "epic_type": { + "description": "The epic type of this epic.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this backlog.", + "description": "Foreign key: links an owned by user to this epic.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this backlog.", + "description": "ID: a parent of this epic.", "type": "string", "format": "uuid", "nullable": true }, - "backlog_type": { - "description": "The backlog type of this backlog.", + "backlog_id": { + "description": "Foreign key: links a backlog to this epic.", "type": "string", + "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this backlog.", + "description": "Foreign key: links a board to this epic.", "type": "string", "format": "uuid", "nullable": true }, - "epic_id": { - "description": "Foreign key: links an epic to this backlog.", + "flow_id": { + "description": "Foreign key: links a flow to this epic.", "type": "string", "format": "uuid", "nullable": true }, - "flow_id": { - "description": "Foreign key: links a flow to this backlog.", + "matrix_id": { + "description": "Foreign key: links a matrix to this epic.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this backlog.", + "description": "Foreign key: links a milestone to this epic.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this backlog.", + "description": "Foreign key: links a note to this epic.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this backlog.", + "description": "Foreign key: links a project to this epic.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this backlog.", + "description": "Foreign key: links a release to this epic.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this backlog.", + "description": "Foreign key: links a roadmap to this epic.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this backlog.", + "description": "Foreign key: links a source to this epic.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this backlog.", + "description": "Foreign key: links a sprint to this epic.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this backlog.", + "description": "Foreign key: links a tag to this epic.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this backlog.", + "description": "Foreign key: links a team to this epic.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this backlog.", + "description": "Foreign key: links a ticket to this epic.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this backlog.", + "description": "Foreign key: links a version to this epic.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this backlog.", + "canceled_at": { + "description": "The canceled at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this backlog.", + "closed_at": { + "description": "The closed at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this backlog.", + "embargo_at": { + "description": "The embargo at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this backlog.", + "description": "The planned end at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "canceled_at": { - "description": "The canceled at date for this backlog.", + "planned_start_at": { + "description": "The planned start at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "closed_at": { - "description": "The closed at date for this backlog.", + "postponed_at": { + "description": "The postponed at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this backlog.", + "published_at": { + "description": "The published at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this backlog.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "postponed_at": { - "description": "The postponed at date for this backlog.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "published_at": { - "description": "The published at date for this backlog.", + "resolved_at": { + "description": "The resolved at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this backlog.", + "resumed_at": { + "description": "The resumed at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this backlog.", + "suspended_at": { + "description": "The suspended at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this backlog.", + "timer_end_at": { + "description": "The timer end at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this backlog.", + "timer_start_at": { + "description": "The timer start at date for this epic.", "type": "string", "format": "date-time", "nullable": true @@ -3122,7 +3694,7 @@ "type": "boolean" }, "status": { - "description": "The status of the backlog.", + "description": "The status of the epic.", "type": "integer", "format": "int64" }, @@ -3152,7 +3724,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the backlog.", + "description": "The ui of the epic.", "type": "object", "nullable": true }, @@ -3172,12 +3744,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -3200,6 +3772,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -3216,8 +3792,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -3228,49 +3804,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the epic.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the backlog.", + "description": "The label of the epic.", "type": "string", "maxLength": 128 }, "title": { - "description": "The title of the backlog.", + "description": "The title of the epic.", "type": "string", "maxLength": 255 }, "byline": { - "description": "The byline of the backlog.", + "description": "The byline of the epic.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the backlog.", + "description": "The slug of the epic.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the backlog.", + "description": "The url of the epic.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the backlog.", + "description": "The description of the epic.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the backlog.", + "description": "The introduction of the epic.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the backlog. Allows HTML.", + "description": "The content of the epic. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the backlog. Allows HTML.", + "description": "The summary of the epic. Allows HTML.", "type": "string", "nullable": true }, @@ -3294,6 +3875,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -3321,14 +3907,14 @@ }, "responses": { "200": { - "description": "The created backlogs.", + "description": "The created epic.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Backlog" + "$ref": "#/components/schemas/Epic" }, "meta": { "type": "object" @@ -3354,11 +3940,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -3367,17 +3953,106 @@ } } } + }, + "423": { + "description": "The epic is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/epics/index": { + "post": { + "tags": [ + "Epic" + ], + "summary": "Get epics from the index using POST.", + "operationId": "post_epics_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Epic index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Epic.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Epic type of this Epic.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the epics from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Epic" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/backlogs/lock/{id}": { + "/resource/matrix/epics/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The backlog id.", + "description": "The epic id.", "schema": { "type": "string", "format": "uuid" @@ -3386,13 +4061,13 @@ ], "delete": { "tags": [ - "Backlog" + "Epic" ], - "summary": "Unlock a backlog by id.", - "operationId": "lock_backlog", + "summary": "Delete a epic by id.", + "operationId": "unlock_epic", "responses": { "204": { - "description": "The backlog has been unlocked." + "description": "The epic has been unlocked." }, "401": { "description": "Unauthorized" @@ -3404,20 +4079,20 @@ }, "put": { "tags": [ - "Backlog" + "Epic" ], - "summary": "Lock a backlog by id.", - "operationId": "unlock_backlog", + "summary": "Lock a epic by ID.", + "operationId": "lock_epic", "responses": { "200": { - "description": "The unlocked backlog.", + "description": "The unlocked epic.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Backlog" + "$ref": "#/components/schemas/Epic" }, "meta": { "type": "object" @@ -3436,13 +4111,13 @@ } } }, - "/api/backlogs/restore/{id}": { + "/resource/matrix/epics/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The backlog id.", + "description": "The epic id.", "schema": { "type": "string", "format": "uuid" @@ -3451,26 +4126,120 @@ ], "put": { "tags": [ - "Backlog" + "Epic" ], - "summary": "Restore a backlog by id.", - "operationId": "restore_backlog", + "summary": "Restore a epic from the trash by ID.", + "operationId": "restore_epic", "responses": { "200": { - "description": "The restored backlog.", + "description": "The restored epic.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Backlog" + "$ref": "#/components/schemas/Epic" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/epics/create": { + "get": { + "tags": [ + "Epic" + ], + "summary": "Create a epic form.", + "operationId": "create_epic", + "responses": { + "200": { + "description": "The create epic information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Epic" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a epic
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/epics/edit/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The epic id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Epic" + ], + "summary": "Edit a epic form.", + "operationId": "edit_epic", + "responses": { + "200": { + "description": "The edit epic information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Epic" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a epic
" + } } } }, @@ -3483,7 +4252,7 @@ } } }, - "/api/flows/{id}": { + "/resource/matrix/flows/{id}": { "parameters": [ { "in": "path", @@ -3554,7 +4323,7 @@ "tags": [ "Flow" ], - "summary": "Update a flow by id.", + "summary": "Patch a flow by id.", "operationId": "patch_flow", "requestBody": { "content": { @@ -3563,6 +4332,11 @@ "description": "The Matrix Flow fillable properties.", "type": "object", "properties": { + "flow_type": { + "description": "The flow type of this flow.", + "type": "string", + "nullable": true + }, "owned_by_id": { "description": "Foreign key: links an owned by user to this flow.", "type": "string", @@ -3570,14 +4344,15 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this flow.", + "description": "ID: a parent of this flow.", "type": "string", "format": "uuid", "nullable": true }, - "flow_type": { - "description": "The flow type of this flow.", + "matrix_id": { + "description": "Foreign key: links a matrix to this flow.", "type": "string", + "format": "uuid", "nullable": true }, "note_id": { @@ -3598,20 +4373,20 @@ "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this flow.", + "canceled_at": { + "description": "The canceled at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this flow.", + "closed_at": { + "description": "The closed at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this flow.", + "embargo_at": { + "description": "The embargo at date for this flow.", "type": "string", "format": "date-time", "nullable": true @@ -3622,50 +4397,50 @@ "format": "date-time", "nullable": true }, - "canceled_at": { - "description": "The canceled at date for this flow.", + "planned_start_at": { + "description": "The planned start at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "closed_at": { - "description": "The closed at date for this flow.", + "postponed_at": { + "description": "The postponed at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this flow.", + "published_at": { + "description": "The published at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this flow.", + "resolved_at": { + "description": "The resolved at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this flow.", + "resumed_at": { + "description": "The resumed at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this flow.", + "suspended_at": { + "description": "The suspended at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this flow.", + "timer_end_at": { + "description": "The timer end at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this flow.", + "timer_start_at": { + "description": "The timer start at date for this flow.", "type": "string", "format": "date-time", "nullable": true @@ -3745,6 +4520,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -3765,6 +4560,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -3773,10 +4572,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -3785,11 +4592,21 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the flow.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the flow.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the flow.", + "type": "string", + "maxLength": 255 + }, "byline": { "description": "The byline of the flow.", "type": "string", @@ -3831,11 +4648,6 @@ "type": "object", "nullable": true }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -3845,6 +4657,11 @@ "description": "JSON: options", "type": "object", "nullable": true + }, + "sources": { + "description": "JSON: sources", + "type": "object", + "nullable": true } } } @@ -3853,7 +4670,7 @@ }, "responses": { "200": { - "description": "The updated flow.", + "description": "The flow has been patched.", "content": { "application/json": { "schema": { @@ -3886,11 +4703,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -3899,11 +4716,14 @@ } } } + }, + "423": { + "description": "The flow is locked. Unlock to patch." } } } }, - "/api/flows": { + "/resource/matrix/flows": { "get": { "tags": [ "Flow" @@ -3953,6 +4773,11 @@ "description": "The Matrix Flow fillable properties.", "type": "object", "properties": { + "flow_type": { + "description": "The flow type of this flow.", + "type": "string", + "nullable": true + }, "owned_by_id": { "description": "Foreign key: links an owned by user to this flow.", "type": "string", @@ -3960,14 +4785,15 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this flow.", + "description": "ID: a parent of this flow.", "type": "string", "format": "uuid", "nullable": true }, - "flow_type": { - "description": "The flow type of this flow.", + "matrix_id": { + "description": "Foreign key: links a matrix to this flow.", "type": "string", + "format": "uuid", "nullable": true }, "note_id": { @@ -3988,20 +4814,20 @@ "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this flow.", + "canceled_at": { + "description": "The canceled at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this flow.", + "closed_at": { + "description": "The closed at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this flow.", + "embargo_at": { + "description": "The embargo at date for this flow.", "type": "string", "format": "date-time", "nullable": true @@ -4012,20 +4838,8 @@ "format": "date-time", "nullable": true }, - "canceled_at": { - "description": "The canceled at date for this flow.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this flow.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "embargo_at": { - "description": "The embargo at date for this flow.", + "planned_start_at": { + "description": "The planned start at date for this flow.", "type": "string", "format": "date-time", "nullable": true @@ -4042,8 +4856,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this flow.", + "resolved_at": { + "description": "The resolved at date for this flow.", "type": "string", "format": "date-time", "nullable": true @@ -4060,6 +4874,18 @@ "format": "date-time", "nullable": true }, + "timer_end_at": { + "description": "The timer end at date for this flow.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this flow.", + "type": "string", + "format": "date-time", + "nullable": true + }, "gids": { "description": "Permissions: gids", "type": "integer", @@ -4135,6 +4961,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -4155,6 +5001,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -4163,10 +5013,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -4175,11 +5033,21 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the flow.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the flow.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the flow.", + "type": "string", + "maxLength": 255 + }, "byline": { "description": "The byline of the flow.", "type": "string", @@ -4221,11 +5089,6 @@ "type": "object", "nullable": true }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -4235,6 +5098,11 @@ "description": "JSON: options", "type": "object", "nullable": true + }, + "sources": { + "description": "JSON: sources", + "type": "object", + "nullable": true } } } @@ -4243,7 +5111,7 @@ }, "responses": { "200": { - "description": "The created flows.", + "description": "The created flow.", "content": { "application/json": { "schema": { @@ -4276,11 +5144,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -4289,11 +5157,100 @@ } } } + }, + "423": { + "description": "The flow is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/flows/index": { + "post": { + "tags": [ + "Flow" + ], + "summary": "Get flows from the index using POST.", + "operationId": "post_flows_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Flow index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Flow.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Flow type of this Flow.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the flows from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Flow" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/flows/lock/{id}": { + "/resource/matrix/flows/lock/{id}": { "parameters": [ { "in": "path", @@ -4310,8 +5267,8 @@ "tags": [ "Flow" ], - "summary": "Unlock a flow by id.", - "operationId": "lock_flow", + "summary": "Delete a flow by id.", + "operationId": "unlock_flow", "responses": { "204": { "description": "The flow has been unlocked." @@ -4328,8 +5285,8 @@ "tags": [ "Flow" ], - "summary": "Lock a flow by id.", - "operationId": "unlock_flow", + "summary": "Lock a flow by ID.", + "operationId": "lock_flow", "responses": { "200": { "description": "The unlocked flow.", @@ -4358,7 +5315,7 @@ } } }, - "/api/flows/restore/{id}": { + "/resource/matrix/flows/restore/{id}": { "parameters": [ { "in": "path", @@ -4375,7 +5332,7 @@ "tags": [ "Flow" ], - "summary": "Restore a flow by id.", + "summary": "Restore a flow from the trash by ID.", "operationId": "restore_flow", "responses": { "200": { @@ -4405,13 +5362,54 @@ } } }, - "/api/milestones/{id}": { + "/resource/matrix/flows/create": { + "get": { + "tags": [ + "Flow" + ], + "summary": "Create a flow form.", + "operationId": "create_flow", + "responses": { + "200": { + "description": "The create flow information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Flow" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a flow
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/flows/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The milestone id.", + "description": "The flow id.", "schema": { "type": "string", "format": "uuid" @@ -4420,26 +5418,32 @@ ], "get": { "tags": [ - "Milestone" + "Flow" ], - "summary": "Get a milestone by id.", - "operationId": "get_milestone", + "summary": "Edit a flow form.", + "operationId": "edit_flow", "responses": { "200": { - "description": "The milestone data.", + "description": "The edit flow information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Milestone" + "$ref": "#/components/schemas/Flow" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a flow
" + } } } }, @@ -4450,16 +5454,63 @@ "description": "Forbidden" } } - }, - "delete": { + } + }, + "/resource/matrix/matrices/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The matrix id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { "tags": [ - "Milestone" + "Matrix" ], - "summary": "Delete a milestone by id.", - "operationId": "delete_milestone", + "summary": "Get a matrix by id.", + "operationId": "get_matrix", + "responses": { + "200": { + "description": "The matrix data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Matrix" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + }, + "delete": { + "tags": [ + "Matrix" + ], + "summary": "Delete a matrix by id.", + "operationId": "delete_matrix", "responses": { "204": { - "description": "The milestone has been deleted." + "description": "The matrix has been deleted." }, "401": { "description": "Unauthorized" @@ -4468,204 +5519,108 @@ "description": "Forbidden" }, "423": { - "description": "The milestone is locked. Unlock to delete." + "description": "The matrix is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Milestone" + "Matrix" ], - "summary": "Update a milestone by id.", - "operationId": "patch_milestone", + "summary": "Patch a matrix by id.", + "operationId": "patch_matrix", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Milestone fillable properties.", + "description": "The Matrix Matrix fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "parent_id": { - "description": "Foreign key: links a parent to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "milestone_type": { - "description": "The milestone type of this milestone.", - "type": "string", - "nullable": true - }, - "backlog_id": { - "description": "Foreign key: links a backlog to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "board_id": { - "description": "Foreign key: links a board to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "epic_id": { - "description": "Foreign key: links an epic to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "flow_id": { - "description": "Foreign key: links a flow to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "note_id": { - "description": "Foreign key: links a note to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "project_id": { - "description": "Foreign key: links a project to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "release_id": { - "description": "Foreign key: links a release to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this milestone.", + "matrix_type": { + "description": "The matrix type of this matrix.", "type": "string", - "format": "uuid", - "nullable": true - }, - "source_id": { - "description": "Foreign key: links a source to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "sprint_id": { - "description": "Foreign key: links a sprint to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "tag_id": { - "description": "Foreign key: links a tag to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "team_id": { - "description": "Foreign key: links a team to this milestone.", - "type": "string", - "format": "uuid", "nullable": true }, - "ticket_id": { - "description": "Foreign key: links a ticket to this milestone.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this matrix.", "type": "string", "format": "uuid", "nullable": true }, - "version_id": { - "description": "Foreign key: links a version to this milestone.", + "parent_id": { + "description": "ID: a parent of this matrix.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this milestone.", + "canceled_at": { + "description": "The canceled at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this milestone.", + "closed_at": { + "description": "The closed at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this milestone.", + "embargo_at": { + "description": "The embargo at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this milestone.", + "description": "The planned end at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this milestone.", + "planned_start_at": { + "description": "The planned start at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this milestone.", + "postponed_at": { + "description": "The postponed at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this milestone.", + "published_at": { + "description": "The published at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this milestone.", + "resolved_at": { + "description": "The resolved at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this milestone.", + "resumed_at": { + "description": "The resumed at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this milestone.", + "suspended_at": { + "description": "The suspended at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this milestone.", + "timer_end_at": { + "description": "The timer end at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this milestone.", + "timer_start_at": { + "description": "The timer start at date for this matrix.", "type": "string", "format": "date-time", "nullable": true @@ -4707,7 +5662,7 @@ "type": "boolean" }, "status": { - "description": "The status of the milestone.", + "description": "The status of the matrix.", "type": "integer", "format": "int64" }, @@ -4737,7 +5692,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the milestone.", + "description": "The ui of the matrix.", "type": "object", "nullable": true }, @@ -4745,6 +5700,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -4765,6 +5740,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -4773,10 +5752,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -4785,44 +5772,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the matrix.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the milestone.", + "description": "The label of the matrix.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the matrix.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the milestone.", + "description": "The byline of the matrix.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the milestone.", + "description": "The slug of the matrix.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the milestone.", + "description": "The url of the matrix.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the milestone.", + "description": "The description of the matrix.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the milestone.", + "description": "The introduction of the matrix.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the milestone. Allows HTML.", + "description": "The content of the matrix. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the milestone. Allows HTML.", + "description": "The summary of the matrix. Allows HTML.", "type": "string", "nullable": true }, @@ -4831,21 +5828,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -4856,11 +5838,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -4873,14 +5850,14 @@ }, "responses": { "200": { - "description": "The updated milestone.", + "description": "The matrix has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Milestone" + "$ref": "#/components/schemas/Matrix" }, "meta": { "type": "object" @@ -4906,11 +5883,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -4919,20 +5896,23 @@ } } } + }, + "423": { + "description": "The matrix is locked. Unlock to patch." } } } }, - "/api/milestones": { + "/resource/matrix/matrices": { "get": { "tags": [ - "Milestone" + "Matrix" ], - "summary": "Get milestones from the index.", - "operationId": "get_milestones_index", + "summary": "Get matrices from the index.", + "operationId": "get_matrices_index", "responses": { "200": { - "description": "Get the milestones from the index.", + "description": "Get the matrices from the index.", "content": { "application/json": { "schema": { @@ -4941,7 +5921,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Milestone" + "$ref": "#/components/schemas/Matrix" } }, "meta": { @@ -4962,198 +5942,102 @@ }, "post": { "tags": [ - "Milestone" + "Matrix" ], - "summary": "Create a milestone.", - "operationId": "post_milestone", + "summary": "Create a matrix.", + "operationId": "post_matrix", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Milestone fillable properties.", + "description": "The Matrix Matrix fillable properties.", "type": "object", "properties": { + "matrix_type": { + "description": "The matrix type of this matrix.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this milestone.", + "description": "Foreign key: links an owned by user to this matrix.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this milestone.", + "description": "ID: a parent of this matrix.", "type": "string", "format": "uuid", "nullable": true }, - "milestone_type": { - "description": "The milestone type of this milestone.", + "canceled_at": { + "description": "The canceled at date for this matrix.", "type": "string", + "format": "date-time", "nullable": true }, - "backlog_id": { - "description": "Foreign key: links a backlog to this milestone.", + "closed_at": { + "description": "The closed at date for this matrix.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "board_id": { - "description": "Foreign key: links a board to this milestone.", + "embargo_at": { + "description": "The embargo at date for this matrix.", "type": "string", - "format": "uuid", - "nullable": true - }, - "epic_id": { - "description": "Foreign key: links an epic to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "flow_id": { - "description": "Foreign key: links a flow to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "note_id": { - "description": "Foreign key: links a note to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "project_id": { - "description": "Foreign key: links a project to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "release_id": { - "description": "Foreign key: links a release to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "source_id": { - "description": "Foreign key: links a source to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "sprint_id": { - "description": "Foreign key: links a sprint to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "tag_id": { - "description": "Foreign key: links a tag to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "team_id": { - "description": "Foreign key: links a team to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "ticket_id": { - "description": "Foreign key: links a ticket to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_id": { - "description": "Foreign key: links a version to this milestone.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "start_at": { - "description": "The start at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this milestone.", - "type": "string", - "format": "date-time", + "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this milestone.", + "description": "The planned end at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this milestone.", + "planned_start_at": { + "description": "The planned start at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this milestone.", + "postponed_at": { + "description": "The postponed at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this milestone.", + "published_at": { + "description": "The published at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this milestone.", + "resolved_at": { + "description": "The resolved at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this milestone.", + "resumed_at": { + "description": "The resumed at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this milestone.", + "suspended_at": { + "description": "The suspended at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this milestone.", + "timer_end_at": { + "description": "The timer end at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this milestone.", + "timer_start_at": { + "description": "The timer start at date for this matrix.", "type": "string", "format": "date-time", "nullable": true @@ -5195,7 +6079,7 @@ "type": "boolean" }, "status": { - "description": "The status of the milestone.", + "description": "The status of the matrix.", "type": "integer", "format": "int64" }, @@ -5225,7 +6109,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the milestone.", + "description": "The ui of the matrix.", "type": "object", "nullable": true }, @@ -5233,6 +6117,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -5253,6 +6157,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -5261,10 +6169,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -5273,44 +6189,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the matrix.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the milestone.", + "description": "The label of the matrix.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the matrix.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the milestone.", + "description": "The byline of the matrix.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the milestone.", + "description": "The slug of the matrix.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the milestone.", + "description": "The url of the matrix.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the milestone.", + "description": "The description of the matrix.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the milestone.", + "description": "The introduction of the matrix.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the milestone. Allows HTML.", + "description": "The content of the matrix. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the milestone. Allows HTML.", + "description": "The summary of the matrix. Allows HTML.", "type": "string", "nullable": true }, @@ -5319,21 +6245,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -5344,11 +6255,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -5361,14 +6267,14 @@ }, "responses": { "200": { - "description": "The created milestones.", + "description": "The created matrix.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Milestone" + "$ref": "#/components/schemas/Matrix" }, "meta": { "type": "object" @@ -5394,11 +6300,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -5407,17 +6313,106 @@ } } } + }, + "423": { + "description": "The matrix is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/matrices/index": { + "post": { + "tags": [ + "Matrix" + ], + "summary": "Get matrices from the index using POST.", + "operationId": "post_matrices_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Matrix index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Matrix.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Matrix type of this Matrix.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the matrices from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Matrix" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/milestones/lock/{id}": { + "/resource/matrix/matrices/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The milestone id.", + "description": "The matrix id.", "schema": { "type": "string", "format": "uuid" @@ -5426,13 +6421,13 @@ ], "delete": { "tags": [ - "Milestone" + "Matrix" ], - "summary": "Unlock a milestone by id.", - "operationId": "lock_milestone", + "summary": "Delete a matrix by id.", + "operationId": "unlock_matrix", "responses": { "204": { - "description": "The milestone has been unlocked." + "description": "The matrix has been unlocked." }, "401": { "description": "Unauthorized" @@ -5444,20 +6439,20 @@ }, "put": { "tags": [ - "Milestone" + "Matrix" ], - "summary": "Lock a milestone by id.", - "operationId": "unlock_milestone", + "summary": "Lock a matrix by ID.", + "operationId": "lock_matrix", "responses": { "200": { - "description": "The unlocked milestone.", + "description": "The unlocked matrix.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Milestone" + "$ref": "#/components/schemas/Matrix" }, "meta": { "type": "object" @@ -5476,13 +6471,13 @@ } } }, - "/api/milestones/restore/{id}": { + "/resource/matrix/matrices/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The milestone id.", + "description": "The matrix id.", "schema": { "type": "string", "format": "uuid" @@ -5491,20 +6486,20 @@ ], "put": { "tags": [ - "Milestone" + "Matrix" ], - "summary": "Restore a milestone by id.", - "operationId": "restore_milestone", + "summary": "Restore a matrix from the trash by ID.", + "operationId": "restore_matrix", "responses": { "200": { - "description": "The restored milestone.", + "description": "The restored matrix.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Milestone" + "$ref": "#/components/schemas/Matrix" }, "meta": { "type": "object" @@ -5523,35 +6518,129 @@ } } }, - "/api/notes/{id}": { - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "description": "The note id.", - "schema": { - "type": "string", - "format": "uuid" - } - } + "/resource/matrix/matrices/create": { + "get": { + "tags": [ + "Matrix" + ], + "summary": "Create a matrix form.", + "operationId": "create_matrix", + "responses": { + "200": { + "description": "The create matrix information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Matrix" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a matrix
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/matrices/edit/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The matrix id.", + "schema": { + "type": "string", + "format": "uuid" + } + } ], "get": { "tags": [ - "Note" + "Matrix" ], - "summary": "Get a note by id.", - "operationId": "get_note", + "summary": "Edit a matrix form.", + "operationId": "edit_matrix", "responses": { "200": { - "description": "The note data.", + "description": "The edit matrix information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Note" + "$ref": "#/components/schemas/Matrix" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a matrix
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/milestones/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The milestone id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Milestone" + ], + "summary": "Get a milestone by id.", + "operationId": "get_milestone", + "responses": { + "200": { + "description": "The milestone data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Milestone" }, "meta": { "type": "object" @@ -5571,13 +6660,13 @@ }, "delete": { "tags": [ - "Note" + "Milestone" ], - "summary": "Delete a note by id.", - "operationId": "delete_note", + "summary": "Delete a milestone by id.", + "operationId": "delete_milestone", "responses": { "204": { - "description": "The note has been deleted." + "description": "The milestone has been deleted." }, "401": { "description": "Unauthorized" @@ -5586,120 +6675,198 @@ "description": "Forbidden" }, "423": { - "description": "The note is locked. Unlock to delete." + "description": "The milestone is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Note" + "Milestone" ], - "summary": "Update a note by id.", - "operationId": "patch_note", + "summary": "Patch a milestone by id.", + "operationId": "patch_milestone", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Note fillable properties.", + "description": "The Matrix Milestone fillable properties.", "type": "object", "properties": { + "milestone_type": { + "description": "The milestone type of this milestone.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this note.", + "description": "Foreign key: links an owned by user to this milestone.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this note.", + "description": "ID: a parent of this milestone.", "type": "string", "format": "uuid", "nullable": true }, - "note_type": { - "description": "The note type of this note.", + "backlog_id": { + "description": "Foreign key: links a backlog to this milestone.", "type": "string", + "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this note.", + "board_id": { + "description": "Foreign key: links a board to this milestone.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this note.", + "epic_id": { + "description": "Foreign key: links an epic to this milestone.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "end_at": { - "description": "The end at date for this note.", + "flow_id": { + "description": "Foreign key: links a flow to this milestone.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_end_at": { - "description": "The planned end at date for this note.", + "matrix_id": { + "description": "Foreign key: links a matrix to this milestone.", "type": "string", - "format": "date-time", + "format": "uuid", + "nullable": true + }, + "note_id": { + "description": "Foreign key: links a note to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "project_id": { + "description": "Foreign key: links a project to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "release_id": { + "description": "Foreign key: links a release to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "roadmap_id": { + "description": "Foreign key: links a roadmap to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "source_id": { + "description": "Foreign key: links a source to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "sprint_id": { + "description": "Foreign key: links a sprint to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "tag_id": { + "description": "Foreign key: links a tag to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "team_id": { + "description": "Foreign key: links a team to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "ticket_id": { + "description": "Foreign key: links a ticket to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "version_id": { + "description": "Foreign key: links a version to this milestone.", + "type": "string", + "format": "uuid", "nullable": true }, "canceled_at": { - "description": "The canceled at date for this note.", + "description": "The canceled at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "closed_at": { - "description": "The closed at date for this note.", + "description": "The closed at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "embargo_at": { - "description": "The embargo at date for this note.", + "description": "The embargo at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this note.", + "planned_end_at": { + "description": "The planned end at date for this milestone.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "postponed_at": { - "description": "The postponed at date for this note.", + "description": "The postponed at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "published_at": { - "description": "The published at date for this note.", + "description": "The published at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this note.", + "resolved_at": { + "description": "The resolved at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "resumed_at": { - "description": "The resumed at date for this note.", + "description": "The resumed at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this note.", + "suspended_at": { + "description": "The suspended at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this note.", + "timer_end_at": { + "description": "The timer end at date for this milestone.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this milestone.", "type": "string", "format": "date-time", "nullable": true @@ -5741,7 +6908,7 @@ "type": "boolean" }, "status": { - "description": "The status of the note.", + "description": "The status of the milestone.", "type": "integer", "format": "int64" }, @@ -5771,7 +6938,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the note.", + "description": "The ui of the milestone.", "type": "object", "nullable": true }, @@ -5779,6 +6946,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -5799,6 +6986,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -5807,10 +6998,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -5819,44 +7018,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the milestone.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the note.", + "description": "The label of the milestone.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the milestone.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the note.", + "description": "The byline of the milestone.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the note.", + "description": "The slug of the milestone.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the note.", + "description": "The url of the milestone.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the note.", + "description": "The description of the milestone.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the note.", + "description": "The introduction of the milestone.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the note. Allows HTML.", + "description": "The content of the milestone. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the note. Allows HTML.", + "description": "The summary of the milestone. Allows HTML.", "type": "string", "nullable": true }, @@ -5880,6 +7089,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -5907,14 +7121,14 @@ }, "responses": { "200": { - "description": "The updated note.", + "description": "The milestone has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Note" + "$ref": "#/components/schemas/Milestone" }, "meta": { "type": "object" @@ -5940,11 +7154,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -5953,20 +7167,23 @@ } } } + }, + "423": { + "description": "The milestone is locked. Unlock to patch." } } } }, - "/api/notes": { + "/resource/matrix/milestones": { "get": { "tags": [ - "Note" + "Milestone" ], - "summary": "Get notes from the index.", - "operationId": "get_notes_index", + "summary": "Get milestones from the index.", + "operationId": "get_milestones_index", "responses": { "200": { - "description": "Get the notes from the index.", + "description": "Get the milestones from the index.", "content": { "application/json": { "schema": { @@ -5975,7 +7192,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Note" + "$ref": "#/components/schemas/Milestone" } }, "meta": { @@ -5996,114 +7213,192 @@ }, "post": { "tags": [ - "Note" + "Milestone" ], - "summary": "Create a note.", - "operationId": "post_note", + "summary": "Create a milestone.", + "operationId": "post_milestone", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Note fillable properties.", + "description": "The Matrix Milestone fillable properties.", "type": "object", "properties": { + "milestone_type": { + "description": "The milestone type of this milestone.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this note.", + "description": "Foreign key: links an owned by user to this milestone.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this note.", + "description": "ID: a parent of this milestone.", "type": "string", "format": "uuid", "nullable": true }, - "note_type": { - "description": "The note type of this note.", + "backlog_id": { + "description": "Foreign key: links a backlog to this milestone.", "type": "string", + "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this note.", + "board_id": { + "description": "Foreign key: links a board to this milestone.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this note.", + "epic_id": { + "description": "Foreign key: links an epic to this milestone.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "end_at": { - "description": "The end at date for this note.", + "flow_id": { + "description": "Foreign key: links a flow to this milestone.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_end_at": { - "description": "The planned end at date for this note.", + "matrix_id": { + "description": "Foreign key: links a matrix to this milestone.", "type": "string", - "format": "date-time", + "format": "uuid", + "nullable": true + }, + "note_id": { + "description": "Foreign key: links a note to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "project_id": { + "description": "Foreign key: links a project to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "release_id": { + "description": "Foreign key: links a release to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "roadmap_id": { + "description": "Foreign key: links a roadmap to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "source_id": { + "description": "Foreign key: links a source to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "sprint_id": { + "description": "Foreign key: links a sprint to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "tag_id": { + "description": "Foreign key: links a tag to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "team_id": { + "description": "Foreign key: links a team to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "ticket_id": { + "description": "Foreign key: links a ticket to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "version_id": { + "description": "Foreign key: links a version to this milestone.", + "type": "string", + "format": "uuid", "nullable": true }, "canceled_at": { - "description": "The canceled at date for this note.", + "description": "The canceled at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "closed_at": { - "description": "The closed at date for this note.", + "description": "The closed at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "embargo_at": { - "description": "The embargo at date for this note.", + "description": "The embargo at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this note.", + "planned_end_at": { + "description": "The planned end at date for this milestone.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "postponed_at": { - "description": "The postponed at date for this note.", + "description": "The postponed at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "published_at": { - "description": "The published at date for this note.", + "description": "The published at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this note.", + "resolved_at": { + "description": "The resolved at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, "resumed_at": { - "description": "The resumed at date for this note.", + "description": "The resumed at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this note.", + "suspended_at": { + "description": "The suspended at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this note.", + "timer_end_at": { + "description": "The timer end at date for this milestone.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this milestone.", "type": "string", "format": "date-time", "nullable": true @@ -6145,7 +7440,7 @@ "type": "boolean" }, "status": { - "description": "The status of the note.", + "description": "The status of the milestone.", "type": "integer", "format": "int64" }, @@ -6175,7 +7470,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the note.", + "description": "The ui of the milestone.", "type": "object", "nullable": true }, @@ -6183,6 +7478,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -6203,6 +7518,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -6211,10 +7530,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -6223,44 +7550,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the milestone.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the note.", + "description": "The label of the milestone.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the milestone.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the note.", + "description": "The byline of the milestone.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the note.", + "description": "The slug of the milestone.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the note.", + "description": "The url of the milestone.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the note.", + "description": "The description of the milestone.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the note.", + "description": "The introduction of the milestone.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the note. Allows HTML.", + "description": "The content of the milestone. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the note. Allows HTML.", + "description": "The summary of the milestone. Allows HTML.", "type": "string", "nullable": true }, @@ -6284,6 +7621,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -6311,14 +7653,14 @@ }, "responses": { "200": { - "description": "The created notes.", + "description": "The created milestone.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Note" + "$ref": "#/components/schemas/Milestone" }, "meta": { "type": "object" @@ -6344,11 +7686,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -6357,32 +7699,121 @@ } } } + }, + "423": { + "description": "The milestone is locked. Unlock to patch." } } } }, - "/api/notes/lock/{id}": { - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "description": "The note id.", - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "delete": { + "/resource/matrix/milestones/index": { + "post": { "tags": [ - "Note" + "Milestone" ], - "summary": "Unlock a note by id.", - "operationId": "lock_note", + "summary": "Get milestones from the index using POST.", + "operationId": "post_milestones_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Milestone index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Milestone.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Milestone type of this Milestone.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, "responses": { - "204": { - "description": "The note has been unlocked." + "200": { + "description": "Get the milestones from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Milestone" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/milestones/lock/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The milestone id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "delete": { + "tags": [ + "Milestone" + ], + "summary": "Delete a milestone by id.", + "operationId": "unlock_milestone", + "responses": { + "204": { + "description": "The milestone has been unlocked." }, "401": { "description": "Unauthorized" @@ -6394,20 +7825,20 @@ }, "put": { "tags": [ - "Note" + "Milestone" ], - "summary": "Lock a note by id.", - "operationId": "unlock_note", + "summary": "Lock a milestone by ID.", + "operationId": "lock_milestone", "responses": { "200": { - "description": "The unlocked note.", + "description": "The unlocked milestone.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Note" + "$ref": "#/components/schemas/Milestone" }, "meta": { "type": "object" @@ -6426,13 +7857,13 @@ } } }, - "/api/notes/restore/{id}": { + "/resource/matrix/milestones/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The note id.", + "description": "The milestone id.", "schema": { "type": "string", "format": "uuid" @@ -6441,26 +7872,67 @@ ], "put": { "tags": [ - "Note" + "Milestone" ], - "summary": "Restore a note by id.", - "operationId": "restore_note", + "summary": "Restore a milestone from the trash by ID.", + "operationId": "restore_milestone", "responses": { "200": { - "description": "The restored note.", + "description": "The restored milestone.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Note" + "$ref": "#/components/schemas/Milestone" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/milestones/create": { + "get": { + "tags": [ + "Milestone" + ], + "summary": "Create a milestone form.", + "operationId": "create_milestone", + "responses": { + "200": { + "description": "The create milestone information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Milestone" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a milestone
" + } } } }, @@ -6473,13 +7945,13 @@ } } }, - "/api/projects/{id}": { + "/resource/matrix/milestones/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The project id.", + "description": "The milestone id.", "schema": { "type": "string", "format": "uuid" @@ -6488,20 +7960,73 @@ ], "get": { "tags": [ - "Project" + "Milestone" ], - "summary": "Get a project by id.", - "operationId": "get_project", + "summary": "Edit a milestone form.", + "operationId": "edit_milestone", "responses": { "200": { - "description": "The project data.", + "description": "The edit milestone information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/Milestone" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a milestone
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/notes/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The note id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Note" + ], + "summary": "Get a note by id.", + "operationId": "get_note", + "responses": { + "200": { + "description": "The note data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Note" }, "meta": { "type": "object" @@ -6521,13 +8046,13 @@ }, "delete": { "tags": [ - "Project" + "Note" ], - "summary": "Delete a project by id.", - "operationId": "delete_project", + "summary": "Delete a note by id.", + "operationId": "delete_note", "responses": { "204": { - "description": "The project has been deleted." + "description": "The note has been deleted." }, "401": { "description": "Unauthorized" @@ -6536,246 +8061,90 @@ "description": "Forbidden" }, "423": { - "description": "The project is locked. Unlock to delete." + "description": "The note is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Project" + "Note" ], - "summary": "Update a project by id.", - "operationId": "patch_project", + "summary": "Patch a note by id.", + "operationId": "patch_note", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Project fillable properties.", + "description": "The Matrix Note fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this project.", + "note_type": { + "description": "The note type of this note.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this project.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this note.", "type": "string", "format": "uuid", "nullable": true }, - "project_type": { - "description": "The project type of this project.", - "type": "string", - "nullable": true - }, - "backlog_id": { - "description": "Foreign key: links a backlog to this project.", + "parent_id": { + "description": "ID: a parent of this note.", "type": "string", "format": "uuid", "nullable": true }, - "board_id": { - "description": "Foreign key: links a board to this project.", + "matrix_id": { + "description": "Foreign key: links a matrix to this note.", "type": "string", "format": "uuid", "nullable": true }, - "epic_id": { - "description": "Foreign key: links an epic to this project.", + "tag_id": { + "description": "Foreign key: links a tag to this note.", "type": "string", "format": "uuid", "nullable": true }, - "flow_id": { - "description": "Foreign key: links a flow to this project.", - "type": "string", - "format": "uuid", - "nullable": true + "gids": { + "description": "Permissions: gids", + "type": "integer", + "format": "int64" }, - "milestone_id": { - "description": "Foreign key: links a milestone to this project.", - "type": "string", - "format": "uuid", - "nullable": true + "po": { + "description": "Permissions: po", + "type": "integer", + "format": "int32" }, - "note_id": { - "description": "Foreign key: links a note to this project.", - "type": "string", - "format": "uuid", - "nullable": true + "pg": { + "description": "Permissions: pg", + "type": "integer", + "format": "int32" }, - "release_id": { - "description": "Foreign key: links a release to this project.", - "type": "string", - "format": "uuid", - "nullable": true + "pw": { + "description": "Permissions: pw", + "type": "integer", + "format": "int32" }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this project.", - "type": "string", - "format": "uuid", - "nullable": true + "only_admin": { + "description": "Permissions: only admin", + "type": "boolean" }, - "source_id": { - "description": "Foreign key: links a source to this project.", - "type": "string", - "format": "uuid", - "nullable": true + "only_user": { + "description": "Permissions: only user", + "type": "boolean" }, - "sprint_id": { - "description": "Foreign key: links a sprint to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "tag_id": { - "description": "Foreign key: links a tag to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "team_id": { - "description": "Foreign key: links a team to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "ticket_id": { - "description": "Foreign key: links a ticket to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_id": { - "description": "Foreign key: links a version to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "start_at": { - "description": "The start at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "embargo_at": { - "description": "The embargo at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "fixed_at": { - "description": "The fixed at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "postponed_at": { - "description": "The postponed at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "published_at": { - "description": "The published at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "released_at": { - "description": "The released at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resumed_at": { - "description": "The resumed at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resolved_at": { - "description": "The resolved at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "suspended_at": { - "description": "The suspended at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "gids": { - "description": "Permissions: gids", - "type": "integer", - "format": "int64" - }, - "po": { - "description": "Permissions: po", - "type": "integer", - "format": "int32" - }, - "pg": { - "description": "Permissions: pg", - "type": "integer", - "format": "int32" - }, - "pw": { - "description": "Permissions: pw", - "type": "integer", - "format": "int32" - }, - "only_admin": { - "description": "Permissions: only admin", - "type": "boolean" - }, - "only_user": { - "description": "Permissions: only user", - "type": "boolean" - }, - "only_guest": { - "description": "Permissions: only guest", - "type": "boolean" + "only_guest": { + "description": "Permissions: only guest", + "type": "boolean" }, "allow_public": { "description": "Permissions: allow public", "type": "boolean" }, "status": { - "description": "The status of the project.", + "description": "The status of the note.", "type": "integer", "format": "int64" }, @@ -6805,7 +8174,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the project.", + "description": "The ui of the note.", "type": "object", "nullable": true }, @@ -6813,6 +8182,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -6833,6 +8222,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -6841,10 +8234,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -6853,44 +8254,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the note.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the project.", + "description": "The label of the note.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the note.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the project.", + "description": "The byline of the note.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the project.", + "description": "The slug of the note.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the project.", + "description": "The url of the note.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the project.", + "description": "The description of the note.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the project.", + "description": "The introduction of the note.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the project. Allows HTML.", + "description": "The content of the note. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the project. Allows HTML.", + "description": "The summary of the note. Allows HTML.", "type": "string", "nullable": true }, @@ -6899,21 +8310,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -6924,11 +8320,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -6941,14 +8332,14 @@ }, "responses": { "200": { - "description": "The updated project.", + "description": "The note has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/Note" }, "meta": { "type": "object" @@ -6974,11 +8365,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -6987,20 +8378,23 @@ } } } + }, + "423": { + "description": "The note is locked. Unlock to patch." } } } }, - "/api/projects": { + "/resource/matrix/notes": { "get": { "tags": [ - "Project" + "Note" ], - "summary": "Get projects from the index.", - "operationId": "get_projects_index", + "summary": "Get notes from the index.", + "operationId": "get_notes_index", "responses": { "200": { - "description": "Get the projects from the index.", + "description": "Get the notes from the index.", "content": { "application/json": { "schema": { @@ -7009,7 +8403,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/Note" } }, "meta": { @@ -7030,206 +8424,50 @@ }, "post": { "tags": [ - "Project" + "Note" ], - "summary": "Create a project.", - "operationId": "post_project", + "summary": "Create a note.", + "operationId": "post_note", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Project fillable properties.", + "description": "The Matrix Note fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this project.", + "note_type": { + "description": "The note type of this note.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this project.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this note.", "type": "string", "format": "uuid", "nullable": true }, - "project_type": { - "description": "The project type of this project.", - "type": "string", - "nullable": true - }, - "backlog_id": { - "description": "Foreign key: links a backlog to this project.", + "parent_id": { + "description": "ID: a parent of this note.", "type": "string", "format": "uuid", "nullable": true }, - "board_id": { - "description": "Foreign key: links a board to this project.", + "matrix_id": { + "description": "Foreign key: links a matrix to this note.", "type": "string", "format": "uuid", "nullable": true }, - "epic_id": { - "description": "Foreign key: links an epic to this project.", + "tag_id": { + "description": "Foreign key: links a tag to this note.", "type": "string", "format": "uuid", "nullable": true }, - "flow_id": { - "description": "Foreign key: links a flow to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "milestone_id": { - "description": "Foreign key: links a milestone to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "note_id": { - "description": "Foreign key: links a note to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "release_id": { - "description": "Foreign key: links a release to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "source_id": { - "description": "Foreign key: links a source to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "sprint_id": { - "description": "Foreign key: links a sprint to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "tag_id": { - "description": "Foreign key: links a tag to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "team_id": { - "description": "Foreign key: links a team to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "ticket_id": { - "description": "Foreign key: links a ticket to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_id": { - "description": "Foreign key: links a version to this project.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "start_at": { - "description": "The start at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "embargo_at": { - "description": "The embargo at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "fixed_at": { - "description": "The fixed at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "postponed_at": { - "description": "The postponed at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "published_at": { - "description": "The published at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "released_at": { - "description": "The released at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resumed_at": { - "description": "The resumed at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resolved_at": { - "description": "The resolved at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "suspended_at": { - "description": "The suspended at date for this project.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "gids": { - "description": "Permissions: gids", - "type": "integer", - "format": "int64" + "gids": { + "description": "Permissions: gids", + "type": "integer", + "format": "int64" }, "po": { "description": "Permissions: po", @@ -7263,7 +8501,7 @@ "type": "boolean" }, "status": { - "description": "The status of the project.", + "description": "The status of the note.", "type": "integer", "format": "int64" }, @@ -7293,7 +8531,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the project.", + "description": "The ui of the note.", "type": "object", "nullable": true }, @@ -7301,6 +8539,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -7321,6 +8579,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -7329,10 +8591,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -7341,44 +8611,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the note.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the project.", + "description": "The label of the note.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the note.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the project.", + "description": "The byline of the note.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the project.", + "description": "The slug of the note.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the project.", + "description": "The url of the note.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the project.", + "description": "The description of the note.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the project.", + "description": "The introduction of the note.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the project. Allows HTML.", + "description": "The content of the note. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the project. Allows HTML.", + "description": "The summary of the note. Allows HTML.", "type": "string", "nullable": true }, @@ -7387,21 +8667,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -7412,11 +8677,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -7429,14 +8689,14 @@ }, "responses": { "200": { - "description": "The created projects.", + "description": "The created note.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/Note" }, "meta": { "type": "object" @@ -7462,11 +8722,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -7475,33 +8735,122 @@ } } } + }, + "423": { + "description": "The note is locked. Unlock to patch." } } } }, - "/api/projects/lock/{id}": { - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "description": "The project id.", - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "delete": { + "/resource/matrix/notes/index": { + "post": { "tags": [ - "Project" + "Note" ], - "summary": "Unlock a project by id.", - "operationId": "lock_project", + "summary": "Get notes from the index using POST.", + "operationId": "post_notes_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Note index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Note.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Note type of this Note.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, "responses": { - "204": { - "description": "The project has been unlocked." - }, + "200": { + "description": "Get the notes from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Note" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/notes/lock/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The note id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "delete": { + "tags": [ + "Note" + ], + "summary": "Delete a note by id.", + "operationId": "unlock_note", + "responses": { + "204": { + "description": "The note has been unlocked." + }, "401": { "description": "Unauthorized" }, @@ -7512,20 +8861,20 @@ }, "put": { "tags": [ - "Project" + "Note" ], - "summary": "Lock a project by id.", - "operationId": "unlock_project", + "summary": "Lock a note by ID.", + "operationId": "lock_note", "responses": { "200": { - "description": "The unlocked project.", + "description": "The unlocked note.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/Note" }, "meta": { "type": "object" @@ -7544,13 +8893,13 @@ } } }, - "/api/projects/restore/{id}": { + "/resource/matrix/notes/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The project id.", + "description": "The note id.", "schema": { "type": "string", "format": "uuid" @@ -7559,26 +8908,67 @@ ], "put": { "tags": [ - "Project" + "Note" ], - "summary": "Restore a project by id.", - "operationId": "restore_project", + "summary": "Restore a note from the trash by ID.", + "operationId": "restore_note", "responses": { "200": { - "description": "The restored project.", + "description": "The restored note.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/Note" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/notes/create": { + "get": { + "tags": [ + "Note" + ], + "summary": "Create a note form.", + "operationId": "create_note", + "responses": { + "200": { + "description": "The create note information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Note" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a note
" + } } } }, @@ -7591,13 +8981,13 @@ } } }, - "/api/releases/{id}": { + "/resource/matrix/notes/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The release id.", + "description": "The note id.", "schema": { "type": "string", "format": "uuid" @@ -7606,20 +8996,73 @@ ], "get": { "tags": [ - "Release" + "Note" ], - "summary": "Get a release by id.", - "operationId": "get_release", + "summary": "Edit a note form.", + "operationId": "edit_note", "responses": { "200": { - "description": "The release data.", + "description": "The edit note information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Release" + "$ref": "#/components/schemas/Note" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a note
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/projects/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The project id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Project" + ], + "summary": "Get a project by id.", + "operationId": "get_project", + "responses": { + "200": { + "description": "The project data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Project" }, "meta": { "type": "object" @@ -7639,13 +9082,13 @@ }, "delete": { "tags": [ - "Release" + "Project" ], - "summary": "Delete a release by id.", - "operationId": "delete_release", + "summary": "Delete a project by id.", + "operationId": "delete_project", "responses": { "204": { - "description": "The release has been deleted." + "description": "The project has been deleted." }, "401": { "description": "Unauthorized" @@ -7654,204 +9097,198 @@ "description": "Forbidden" }, "423": { - "description": "The release is locked. Unlock to delete." + "description": "The project is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Release" + "Project" ], - "summary": "Update a release by id.", - "operationId": "patch_release", + "summary": "Patch a project by id.", + "operationId": "patch_project", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Release fillable properties.", + "description": "The Matrix Project fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this release.", + "project_type": { + "description": "The project type of this project.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this release.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this project.", "type": "string", "format": "uuid", "nullable": true }, - "release_type": { - "description": "The release type of this release.", + "parent_id": { + "description": "ID: a parent of this project.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this release.", + "description": "Foreign key: links a backlog to this project.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this release.", + "description": "Foreign key: links a board to this project.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this release.", + "description": "Foreign key: links an epic to this project.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this release.", + "description": "Foreign key: links a flow to this project.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this project.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this release.", + "description": "Foreign key: links a milestone to this project.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this release.", + "description": "Foreign key: links a note to this project.", "type": "string", "format": "uuid", "nullable": true }, - "project_id": { - "description": "Foreign key: links a project to this release.", + "release_id": { + "description": "Foreign key: links a release to this project.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this release.", + "description": "Foreign key: links a roadmap to this project.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this release.", + "description": "Foreign key: links a source to this project.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this release.", + "description": "Foreign key: links a sprint to this project.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this release.", + "description": "Foreign key: links a tag to this project.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this release.", + "description": "Foreign key: links a team to this project.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this release.", + "description": "Foreign key: links a ticket to this project.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this release.", + "description": "Foreign key: links a version to this project.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this release.", + "canceled_at": { + "description": "The canceled at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this release.", + "closed_at": { + "description": "The closed at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this release.", + "embargo_at": { + "description": "The embargo at date for this project.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this release.", + "description": "The planned end at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "canceled_at": { - "description": "The canceled at date for this release.", + "planned_start_at": { + "description": "The planned start at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "closed_at": { - "description": "The closed at date for this release.", + "postponed_at": { + "description": "The postponed at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this release.", + "published_at": { + "description": "The published at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this release.", + "resolved_at": { + "description": "The resolved at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this release.", + "resumed_at": { + "description": "The resumed at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this release.", + "suspended_at": { + "description": "The suspended at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this release.", + "timer_end_at": { + "description": "The timer end at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this release.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resolved_at": { - "description": "The resolved at date for this release.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "suspended_at": { - "description": "The suspended at date for this release.", + "timer_start_at": { + "description": "The timer start at date for this project.", "type": "string", "format": "date-time", "nullable": true @@ -7893,7 +9330,7 @@ "type": "boolean" }, "status": { - "description": "The status of the release.", + "description": "The status of the project.", "type": "integer", "format": "int64" }, @@ -7923,7 +9360,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the release.", + "description": "The ui of the project.", "type": "object", "nullable": true }, @@ -7931,6 +9368,34 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "duplicate": { + "description": "Flags: duplicate", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, + "fixed": { + "description": "Flags: fixed", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -7951,6 +9416,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -7959,10 +9428,22 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, + "resolved": { + "description": "Flags: resolved", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -7971,45 +9452,67 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the project.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the release.", + "description": "The label of the project.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the project.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the release.", + "description": "The byline of the project.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the release.", + "description": "The slug of the project.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the release.", + "description": "The url of the project.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the release.", + "description": "The description of the project.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the release.", + "description": "The introduction of the project.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the release. Allows HTML.", + "description": "The content of the project. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the release. Allows HTML.", + "description": "The summary of the project. Allows HTML.", + "type": "string", + "nullable": true + }, + "key": { + "description": "The key of the project.", "type": "string", + "maxLength": 32, + "nullable": true + }, + "code_name": { + "description": "The code name of the project.", + "type": "string", + "maxLength": 128, "nullable": true }, "assets": { @@ -8032,6 +9535,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -8059,14 +9567,14 @@ }, "responses": { "200": { - "description": "The updated release.", + "description": "The project has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Release" + "$ref": "#/components/schemas/Project" }, "meta": { "type": "object" @@ -8092,11 +9600,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -8105,20 +9613,23 @@ } } } + }, + "423": { + "description": "The project is locked. Unlock to patch." } } } }, - "/api/releases": { + "/resource/matrix/projects": { "get": { "tags": [ - "Release" + "Project" ], - "summary": "Get releases from the index.", - "operationId": "get_releases_index", + "summary": "Get projects from the index.", + "operationId": "get_projects_index", "responses": { "200": { - "description": "Get the releases from the index.", + "description": "Get the projects from the index.", "content": { "application/json": { "schema": { @@ -8127,7 +9638,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Release" + "$ref": "#/components/schemas/Project" } }, "meta": { @@ -8148,198 +9659,192 @@ }, "post": { "tags": [ - "Release" + "Project" ], - "summary": "Create a release.", - "operationId": "post_release", + "summary": "Create a project.", + "operationId": "post_project", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Release fillable properties.", + "description": "The Matrix Project fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this release.", + "project_type": { + "description": "The project type of this project.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this release.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this project.", "type": "string", "format": "uuid", "nullable": true }, - "release_type": { - "description": "The release type of this release.", + "parent_id": { + "description": "ID: a parent of this project.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this release.", + "description": "Foreign key: links a backlog to this project.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this release.", + "description": "Foreign key: links a board to this project.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this release.", + "description": "Foreign key: links an epic to this project.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this release.", + "description": "Foreign key: links a flow to this project.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this project.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this release.", + "description": "Foreign key: links a milestone to this project.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this release.", + "description": "Foreign key: links a note to this project.", "type": "string", "format": "uuid", "nullable": true }, - "project_id": { - "description": "Foreign key: links a project to this release.", + "release_id": { + "description": "Foreign key: links a release to this project.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this release.", + "description": "Foreign key: links a roadmap to this project.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this release.", + "description": "Foreign key: links a source to this project.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this release.", + "description": "Foreign key: links a sprint to this project.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this release.", + "description": "Foreign key: links a tag to this project.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this release.", + "description": "Foreign key: links a team to this project.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this release.", + "description": "Foreign key: links a ticket to this project.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this release.", + "description": "Foreign key: links a version to this project.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this release.", + "canceled_at": { + "description": "The canceled at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this release.", + "closed_at": { + "description": "The closed at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this release.", + "embargo_at": { + "description": "The embargo at date for this project.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this release.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this release.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this release.", + "description": "The planned end at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this release.", + "planned_start_at": { + "description": "The planned start at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this release.", + "postponed_at": { + "description": "The postponed at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this release.", + "published_at": { + "description": "The published at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this release.", + "resolved_at": { + "description": "The resolved at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this release.", + "resumed_at": { + "description": "The resumed at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this release.", + "suspended_at": { + "description": "The suspended at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this release.", + "timer_end_at": { + "description": "The timer end at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this release.", + "timer_start_at": { + "description": "The timer start at date for this project.", "type": "string", "format": "date-time", "nullable": true @@ -8381,7 +9886,7 @@ "type": "boolean" }, "status": { - "description": "The status of the release.", + "description": "The status of the project.", "type": "integer", "format": "int64" }, @@ -8411,7 +9916,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the release.", + "description": "The ui of the project.", "type": "object", "nullable": true }, @@ -8419,6 +9924,34 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "duplicate": { + "description": "Flags: duplicate", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, + "fixed": { + "description": "Flags: fixed", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -8439,6 +9972,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -8447,10 +9984,22 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, + "resolved": { + "description": "Flags: resolved", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -8459,45 +10008,67 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the project.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the release.", + "description": "The label of the project.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the project.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the release.", + "description": "The byline of the project.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the release.", + "description": "The slug of the project.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the release.", + "description": "The url of the project.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the release.", + "description": "The description of the project.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the release.", + "description": "The introduction of the project.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the release. Allows HTML.", + "description": "The content of the project. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the release. Allows HTML.", + "description": "The summary of the project. Allows HTML.", + "type": "string", + "nullable": true + }, + "key": { + "description": "The key of the project.", + "type": "string", + "maxLength": 32, + "nullable": true + }, + "code_name": { + "description": "The code name of the project.", "type": "string", + "maxLength": 128, "nullable": true }, "assets": { @@ -8520,6 +10091,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -8547,14 +10123,14 @@ }, "responses": { "200": { - "description": "The created releases.", + "description": "The created project.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Release" + "$ref": "#/components/schemas/Project" }, "meta": { "type": "object" @@ -8580,11 +10156,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -8593,17 +10169,106 @@ } } } + }, + "423": { + "description": "The project is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/projects/index": { + "post": { + "tags": [ + "Project" + ], + "summary": "Get projects from the index using POST.", + "operationId": "post_projects_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Project index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Project.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Project type of this Project.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the projects from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Project" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/releases/lock/{id}": { + "/resource/matrix/projects/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The release id.", + "description": "The project id.", "schema": { "type": "string", "format": "uuid" @@ -8612,13 +10277,13 @@ ], "delete": { "tags": [ - "Release" + "Project" ], - "summary": "Unlock a release by id.", - "operationId": "lock_release", + "summary": "Delete a project by id.", + "operationId": "unlock_project", "responses": { "204": { - "description": "The release has been unlocked." + "description": "The project has been unlocked." }, "401": { "description": "Unauthorized" @@ -8630,20 +10295,20 @@ }, "put": { "tags": [ - "Release" + "Project" ], - "summary": "Lock a release by id.", - "operationId": "unlock_release", + "summary": "Lock a project by ID.", + "operationId": "lock_project", "responses": { "200": { - "description": "The unlocked release.", + "description": "The unlocked project.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Release" + "$ref": "#/components/schemas/Project" }, "meta": { "type": "object" @@ -8662,13 +10327,13 @@ } } }, - "/api/releases/restore/{id}": { + "/resource/matrix/projects/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The release id.", + "description": "The project id.", "schema": { "type": "string", "format": "uuid" @@ -8677,26 +10342,67 @@ ], "put": { "tags": [ - "Release" + "Project" ], - "summary": "Restore a release by id.", - "operationId": "restore_release", + "summary": "Restore a project from the trash by ID.", + "operationId": "restore_project", "responses": { "200": { - "description": "The restored release.", + "description": "The restored project.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Release" + "$ref": "#/components/schemas/Project" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/projects/create": { + "get": { + "tags": [ + "Project" + ], + "summary": "Create a project form.", + "operationId": "create_project", + "responses": { + "200": { + "description": "The create project information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Project" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a project
" + } } } }, @@ -8709,13 +10415,13 @@ } } }, - "/api/roadmaps/{id}": { + "/resource/matrix/projects/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The roadmap id.", + "description": "The project id.", "schema": { "type": "string", "format": "uuid" @@ -8724,20 +10430,73 @@ ], "get": { "tags": [ - "Roadmap" + "Project" ], - "summary": "Get a roadmap by id.", - "operationId": "get_roadmap", + "summary": "Edit a project form.", + "operationId": "edit_project", "responses": { "200": { - "description": "The roadmap data.", + "description": "The edit project information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Roadmap" + "$ref": "#/components/schemas/Project" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a project
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/releases/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The release id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Release" + ], + "summary": "Get a release by id.", + "operationId": "get_release", + "responses": { + "200": { + "description": "The release data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Release" }, "meta": { "type": "object" @@ -8757,13 +10516,13 @@ }, "delete": { "tags": [ - "Roadmap" + "Release" ], - "summary": "Delete a roadmap by id.", - "operationId": "delete_roadmap", + "summary": "Delete a release by id.", + "operationId": "delete_release", "responses": { "204": { - "description": "The roadmap has been deleted." + "description": "The release has been deleted." }, "401": { "description": "Unauthorized" @@ -8772,204 +10531,198 @@ "description": "Forbidden" }, "423": { - "description": "The roadmap is locked. Unlock to delete." + "description": "The release is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Roadmap" + "Release" ], - "summary": "Update a roadmap by id.", - "operationId": "patch_roadmap", + "summary": "Patch a release by id.", + "operationId": "patch_release", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Roadmap fillable properties.", + "description": "The Matrix Release fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this roadmap.", + "release_type": { + "description": "The release type of this release.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this roadmap.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this release.", "type": "string", "format": "uuid", "nullable": true }, - "roadmap_type": { - "description": "The roadmap type of this roadmap.", + "parent_id": { + "description": "ID: a parent of this release.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this roadmap.", + "description": "Foreign key: links a backlog to this release.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this roadmap.", + "description": "Foreign key: links a board to this release.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this roadmap.", + "description": "Foreign key: links an epic to this release.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this roadmap.", + "description": "Foreign key: links a flow to this release.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this release.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this roadmap.", + "description": "Foreign key: links a milestone to this release.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this roadmap.", + "description": "Foreign key: links a note to this release.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this roadmap.", + "description": "Foreign key: links a project to this release.", "type": "string", "format": "uuid", "nullable": true }, - "release_id": { - "description": "Foreign key: links a release to this roadmap.", + "roadmap_id": { + "description": "Foreign key: links a roadmap to this release.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this roadmap.", + "description": "Foreign key: links a source to this release.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this roadmap.", + "description": "Foreign key: links a sprint to this release.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this roadmap.", + "description": "Foreign key: links a tag to this release.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this roadmap.", + "description": "Foreign key: links a team to this release.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this roadmap.", + "description": "Foreign key: links a ticket to this release.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this roadmap.", + "description": "Foreign key: links a version to this release.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this roadmap.", + "canceled_at": { + "description": "The canceled at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this roadmap.", + "closed_at": { + "description": "The closed at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this roadmap.", + "embargo_at": { + "description": "The embargo at date for this release.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this roadmap.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this roadmap.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this roadmap.", + "description": "The planned end at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this roadmap.", + "planned_start_at": { + "description": "The planned start at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this roadmap.", + "postponed_at": { + "description": "The postponed at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this roadmap.", + "published_at": { + "description": "The published at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this roadmap.", + "resolved_at": { + "description": "The resolved at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this roadmap.", + "resumed_at": { + "description": "The resumed at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this roadmap.", + "suspended_at": { + "description": "The suspended at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this roadmap.", + "timer_end_at": { + "description": "The timer end at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this roadmap.", + "timer_start_at": { + "description": "The timer start at date for this release.", "type": "string", "format": "date-time", "nullable": true @@ -9011,7 +10764,7 @@ "type": "boolean" }, "status": { - "description": "The status of the roadmap.", + "description": "The status of the release.", "type": "integer", "format": "int64" }, @@ -9041,7 +10794,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the roadmap.", + "description": "The ui of the release.", "type": "object", "nullable": true }, @@ -9049,6 +10802,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -9069,6 +10842,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -9077,10 +10854,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -9089,44 +10874,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the release.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the roadmap.", + "description": "The label of the release.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the release.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the roadmap.", + "description": "The byline of the release.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the roadmap.", + "description": "The slug of the release.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the roadmap.", + "description": "The url of the release.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the roadmap.", + "description": "The description of the release.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the roadmap.", + "description": "The introduction of the release.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the roadmap. Allows HTML.", + "description": "The content of the release. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the roadmap. Allows HTML.", + "description": "The summary of the release. Allows HTML.", "type": "string", "nullable": true }, @@ -9150,6 +10945,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -9177,14 +10977,14 @@ }, "responses": { "200": { - "description": "The updated roadmap.", + "description": "The release has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Roadmap" + "$ref": "#/components/schemas/Release" }, "meta": { "type": "object" @@ -9210,11 +11010,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -9223,20 +11023,23 @@ } } } + }, + "423": { + "description": "The release is locked. Unlock to patch." } } } }, - "/api/roadmaps": { + "/resource/matrix/releases": { "get": { "tags": [ - "Roadmap" + "Release" ], - "summary": "Get roadmaps from the index.", - "operationId": "get_roadmaps_index", + "summary": "Get releases from the index.", + "operationId": "get_releases_index", "responses": { "200": { - "description": "Get the roadmaps from the index.", + "description": "Get the releases from the index.", "content": { "application/json": { "schema": { @@ -9245,7 +11048,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Roadmap" + "$ref": "#/components/schemas/Release" } }, "meta": { @@ -9266,198 +11069,192 @@ }, "post": { "tags": [ - "Roadmap" + "Release" ], - "summary": "Create a roadmap.", - "operationId": "post_roadmap", + "summary": "Create a release.", + "operationId": "post_release", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Roadmap fillable properties.", + "description": "The Matrix Release fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this roadmap.", + "release_type": { + "description": "The release type of this release.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this roadmap.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this release.", "type": "string", "format": "uuid", "nullable": true }, - "roadmap_type": { - "description": "The roadmap type of this roadmap.", + "parent_id": { + "description": "ID: a parent of this release.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this roadmap.", + "description": "Foreign key: links a backlog to this release.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this roadmap.", + "description": "Foreign key: links a board to this release.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this roadmap.", + "description": "Foreign key: links an epic to this release.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this roadmap.", + "description": "Foreign key: links a flow to this release.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this release.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this roadmap.", + "description": "Foreign key: links a milestone to this release.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this roadmap.", + "description": "Foreign key: links a note to this release.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this roadmap.", + "description": "Foreign key: links a project to this release.", "type": "string", "format": "uuid", "nullable": true }, - "release_id": { - "description": "Foreign key: links a release to this roadmap.", + "roadmap_id": { + "description": "Foreign key: links a roadmap to this release.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this roadmap.", + "description": "Foreign key: links a source to this release.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this roadmap.", + "description": "Foreign key: links a sprint to this release.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this roadmap.", + "description": "Foreign key: links a tag to this release.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this roadmap.", + "description": "Foreign key: links a team to this release.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this roadmap.", + "description": "Foreign key: links a ticket to this release.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this roadmap.", + "description": "Foreign key: links a version to this release.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this roadmap.", + "canceled_at": { + "description": "The canceled at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this roadmap.", + "closed_at": { + "description": "The closed at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this roadmap.", + "embargo_at": { + "description": "The embargo at date for this release.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this roadmap.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this roadmap.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this roadmap.", + "description": "The planned end at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this roadmap.", + "planned_start_at": { + "description": "The planned start at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this roadmap.", + "postponed_at": { + "description": "The postponed at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this roadmap.", + "published_at": { + "description": "The published at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this roadmap.", + "resolved_at": { + "description": "The resolved at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this roadmap.", + "resumed_at": { + "description": "The resumed at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this roadmap.", + "suspended_at": { + "description": "The suspended at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this roadmap.", + "timer_end_at": { + "description": "The timer end at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this roadmap.", + "timer_start_at": { + "description": "The timer start at date for this release.", "type": "string", "format": "date-time", "nullable": true @@ -9499,7 +11296,7 @@ "type": "boolean" }, "status": { - "description": "The status of the roadmap.", + "description": "The status of the release.", "type": "integer", "format": "int64" }, @@ -9529,7 +11326,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the roadmap.", + "description": "The ui of the release.", "type": "object", "nullable": true }, @@ -9537,6 +11334,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -9557,6 +11374,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -9565,10 +11386,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -9577,44 +11406,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the release.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the roadmap.", + "description": "The label of the release.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the release.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the roadmap.", + "description": "The byline of the release.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the roadmap.", + "description": "The slug of the release.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the roadmap.", + "description": "The url of the release.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the roadmap.", + "description": "The description of the release.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the roadmap.", + "description": "The introduction of the release.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the roadmap. Allows HTML.", + "description": "The content of the release. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the roadmap. Allows HTML.", + "description": "The summary of the release. Allows HTML.", "type": "string", "nullable": true }, @@ -9638,6 +11477,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -9665,14 +11509,14 @@ }, "responses": { "200": { - "description": "The created roadmaps.", + "description": "The created release.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Roadmap" + "$ref": "#/components/schemas/Release" }, "meta": { "type": "object" @@ -9698,11 +11542,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -9711,17 +11555,106 @@ } } } + }, + "423": { + "description": "The release is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/releases/index": { + "post": { + "tags": [ + "Release" + ], + "summary": "Get releases from the index using POST.", + "operationId": "post_releases_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Release index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Release.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Release type of this Release.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the releases from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Release" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/roadmaps/lock/{id}": { + "/resource/matrix/releases/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The roadmap id.", + "description": "The release id.", "schema": { "type": "string", "format": "uuid" @@ -9730,13 +11663,13 @@ ], "delete": { "tags": [ - "Roadmap" + "Release" ], - "summary": "Unlock a roadmap by id.", - "operationId": "lock_roadmap", + "summary": "Delete a release by id.", + "operationId": "unlock_release", "responses": { "204": { - "description": "The roadmap has been unlocked." + "description": "The release has been unlocked." }, "401": { "description": "Unauthorized" @@ -9748,20 +11681,20 @@ }, "put": { "tags": [ - "Roadmap" + "Release" ], - "summary": "Lock a roadmap by id.", - "operationId": "unlock_roadmap", + "summary": "Lock a release by ID.", + "operationId": "lock_release", "responses": { "200": { - "description": "The unlocked roadmap.", + "description": "The unlocked release.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Roadmap" + "$ref": "#/components/schemas/Release" }, "meta": { "type": "object" @@ -9780,13 +11713,13 @@ } } }, - "/api/roadmaps/restore/{id}": { + "/resource/matrix/releases/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The roadmap id.", + "description": "The release id.", "schema": { "type": "string", "format": "uuid" @@ -9795,26 +11728,67 @@ ], "put": { "tags": [ - "Roadmap" + "Release" ], - "summary": "Restore a roadmap by id.", - "operationId": "restore_roadmap", + "summary": "Restore a release from the trash by ID.", + "operationId": "restore_release", "responses": { "200": { - "description": "The restored roadmap.", + "description": "The restored release.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Roadmap" + "$ref": "#/components/schemas/Release" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/releases/create": { + "get": { + "tags": [ + "Release" + ], + "summary": "Create a release form.", + "operationId": "create_release", + "responses": { + "200": { + "description": "The create release information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Release" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a release
" + } } } }, @@ -9827,13 +11801,13 @@ } } }, - "/api/sources/{id}": { + "/resource/matrix/releases/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The source id.", + "description": "The release id.", "schema": { "type": "string", "format": "uuid" @@ -9842,20 +11816,73 @@ ], "get": { "tags": [ - "Source" + "Release" ], - "summary": "Get a source by id.", - "operationId": "get_source", + "summary": "Edit a release form.", + "operationId": "edit_release", "responses": { "200": { - "description": "The source data.", + "description": "The edit release information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Source" + "$ref": "#/components/schemas/Release" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a release
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/roadmaps/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The roadmap id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Roadmap" + ], + "summary": "Get a roadmap by id.", + "operationId": "get_roadmap", + "responses": { + "200": { + "description": "The roadmap data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Roadmap" }, "meta": { "type": "object" @@ -9875,13 +11902,13 @@ }, "delete": { "tags": [ - "Source" + "Roadmap" ], - "summary": "Delete a source by id.", - "operationId": "delete_source", + "summary": "Delete a roadmap by id.", + "operationId": "delete_roadmap", "responses": { "204": { - "description": "The source has been deleted." + "description": "The roadmap has been deleted." }, "401": { "description": "Unauthorized" @@ -9890,204 +11917,198 @@ "description": "Forbidden" }, "423": { - "description": "The source is locked. Unlock to delete." + "description": "The roadmap is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Source" + "Roadmap" ], - "summary": "Update a source by id.", - "operationId": "patch_source", + "summary": "Patch a roadmap by id.", + "operationId": "patch_roadmap", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Source fillable properties.", + "description": "The Matrix Roadmap fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this source.", + "roadmap_type": { + "description": "The roadmap type of this roadmap.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this source.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, - "source_type": { - "description": "The source type of this source.", + "parent_id": { + "description": "ID: a parent of this roadmap.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this source.", + "description": "Foreign key: links a backlog to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this source.", + "description": "Foreign key: links a board to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this source.", + "description": "Foreign key: links an epic to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this source.", + "description": "Foreign key: links a flow to this roadmap.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this source.", + "description": "Foreign key: links a milestone to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this source.", + "description": "Foreign key: links a note to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this source.", + "description": "Foreign key: links a project to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this source.", + "description": "Foreign key: links a release to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this source.", + "source_id": { + "description": "Foreign key: links a source to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this source.", + "description": "Foreign key: links a sprint to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this source.", + "description": "Foreign key: links a tag to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this source.", + "description": "Foreign key: links a team to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this source.", + "description": "Foreign key: links a ticket to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this source.", + "description": "Foreign key: links a version to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this source.", + "canceled_at": { + "description": "The canceled at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this source.", + "closed_at": { + "description": "The closed at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this source.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this source.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this source.", + "embargo_at": { + "description": "The embargo at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "closed_at": { - "description": "The closed at date for this source.", + "planned_end_at": { + "description": "The planned end at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this source.", + "planned_start_at": { + "description": "The planned start at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this source.", + "postponed_at": { + "description": "The postponed at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this source.", + "published_at": { + "description": "The published at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this source.", + "resolved_at": { + "description": "The resolved at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this source.", + "resumed_at": { + "description": "The resumed at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this source.", + "suspended_at": { + "description": "The suspended at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this source.", + "timer_end_at": { + "description": "The timer end at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this source.", + "timer_start_at": { + "description": "The timer start at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true @@ -10129,7 +12150,7 @@ "type": "boolean" }, "status": { - "description": "The status of the source.", + "description": "The status of the roadmap.", "type": "integer", "format": "int64" }, @@ -10159,7 +12180,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the source.", + "description": "The ui of the roadmap.", "type": "object", "nullable": true }, @@ -10167,6 +12188,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -10187,6 +12228,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -10195,10 +12240,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -10207,44 +12260,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the roadmap.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the source.", + "description": "The label of the roadmap.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the roadmap.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the source.", + "description": "The byline of the roadmap.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the source.", + "description": "The slug of the roadmap.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the source.", + "description": "The url of the roadmap.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the source.", + "description": "The description of the roadmap.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the source.", + "description": "The introduction of the roadmap.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the source. Allows HTML.", + "description": "The content of the roadmap. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the source. Allows HTML.", + "description": "The summary of the roadmap. Allows HTML.", "type": "string", "nullable": true }, @@ -10268,6 +12331,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -10295,14 +12363,14 @@ }, "responses": { "200": { - "description": "The updated source.", + "description": "The roadmap has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Source" + "$ref": "#/components/schemas/Roadmap" }, "meta": { "type": "object" @@ -10328,11 +12396,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -10341,20 +12409,23 @@ } } } + }, + "423": { + "description": "The roadmap is locked. Unlock to patch." } } } }, - "/api/sources": { + "/resource/matrix/roadmaps": { "get": { "tags": [ - "Source" + "Roadmap" ], - "summary": "Get sources from the index.", - "operationId": "get_sources_index", + "summary": "Get roadmaps from the index.", + "operationId": "get_roadmaps_index", "responses": { "200": { - "description": "Get the sources from the index.", + "description": "Get the roadmaps from the index.", "content": { "application/json": { "schema": { @@ -10363,7 +12434,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Source" + "$ref": "#/components/schemas/Roadmap" } }, "meta": { @@ -10384,198 +12455,192 @@ }, "post": { "tags": [ - "Source" + "Roadmap" ], - "summary": "Create a source.", - "operationId": "post_source", + "summary": "Create a roadmap.", + "operationId": "post_roadmap", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Source fillable properties.", + "description": "The Matrix Roadmap fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this source.", + "roadmap_type": { + "description": "The roadmap type of this roadmap.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this source.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, - "source_type": { - "description": "The source type of this source.", + "parent_id": { + "description": "ID: a parent of this roadmap.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this source.", + "description": "Foreign key: links a backlog to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this source.", + "description": "Foreign key: links a board to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this source.", + "description": "Foreign key: links an epic to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this source.", + "description": "Foreign key: links a flow to this roadmap.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this source.", + "description": "Foreign key: links a milestone to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this source.", + "description": "Foreign key: links a note to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this source.", + "description": "Foreign key: links a project to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this source.", + "description": "Foreign key: links a release to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this source.", + "source_id": { + "description": "Foreign key: links a source to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this source.", + "description": "Foreign key: links a sprint to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this source.", + "description": "Foreign key: links a tag to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this source.", + "description": "Foreign key: links a team to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this source.", + "description": "Foreign key: links a ticket to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this source.", + "description": "Foreign key: links a version to this roadmap.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this source.", + "canceled_at": { + "description": "The canceled at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this source.", + "closed_at": { + "description": "The closed at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this source.", + "embargo_at": { + "description": "The embargo at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this source.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this source.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this source.", + "description": "The planned end at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this source.", + "planned_start_at": { + "description": "The planned start at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this source.", + "postponed_at": { + "description": "The postponed at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this source.", + "published_at": { + "description": "The published at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this source.", + "resolved_at": { + "description": "The resolved at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this source.", + "resumed_at": { + "description": "The resumed at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this source.", + "suspended_at": { + "description": "The suspended at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this source.", + "timer_end_at": { + "description": "The timer end at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this source.", + "timer_start_at": { + "description": "The timer start at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true @@ -10617,7 +12682,7 @@ "type": "boolean" }, "status": { - "description": "The status of the source.", + "description": "The status of the roadmap.", "type": "integer", "format": "int64" }, @@ -10647,7 +12712,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the source.", + "description": "The ui of the roadmap.", "type": "object", "nullable": true }, @@ -10655,6 +12720,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -10675,6 +12760,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -10683,10 +12772,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -10695,44 +12792,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the roadmap.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the source.", + "description": "The label of the roadmap.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the roadmap.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the source.", + "description": "The byline of the roadmap.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the source.", + "description": "The slug of the roadmap.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the source.", + "description": "The url of the roadmap.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the source.", + "description": "The description of the roadmap.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the source.", + "description": "The introduction of the roadmap.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the source. Allows HTML.", + "description": "The content of the roadmap. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the source. Allows HTML.", + "description": "The summary of the roadmap. Allows HTML.", "type": "string", "nullable": true }, @@ -10756,9 +12863,14 @@ "type": "object", "nullable": true }, - "meta": { - "description": "JSON: meta", - "type": "object", + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, + "meta": { + "description": "JSON: meta", + "type": "object", "nullable": true }, "options": { @@ -10783,14 +12895,14 @@ }, "responses": { "200": { - "description": "The created sources.", + "description": "The created roadmap.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Source" + "$ref": "#/components/schemas/Roadmap" }, "meta": { "type": "object" @@ -10816,11 +12928,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -10829,17 +12941,106 @@ } } } + }, + "423": { + "description": "The roadmap is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/roadmaps/index": { + "post": { + "tags": [ + "Roadmap" + ], + "summary": "Get roadmaps from the index using POST.", + "operationId": "post_roadmaps_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Roadmap index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Roadmap.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Roadmap type of this Roadmap.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the roadmaps from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Roadmap" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/sources/lock/{id}": { + "/resource/matrix/roadmaps/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The source id.", + "description": "The roadmap id.", "schema": { "type": "string", "format": "uuid" @@ -10848,13 +13049,13 @@ ], "delete": { "tags": [ - "Source" + "Roadmap" ], - "summary": "Unlock a source by id.", - "operationId": "lock_source", + "summary": "Delete a roadmap by id.", + "operationId": "unlock_roadmap", "responses": { "204": { - "description": "The source has been unlocked." + "description": "The roadmap has been unlocked." }, "401": { "description": "Unauthorized" @@ -10866,20 +13067,20 @@ }, "put": { "tags": [ - "Source" + "Roadmap" ], - "summary": "Lock a source by id.", - "operationId": "unlock_source", + "summary": "Lock a roadmap by ID.", + "operationId": "lock_roadmap", "responses": { "200": { - "description": "The unlocked source.", + "description": "The unlocked roadmap.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Source" + "$ref": "#/components/schemas/Roadmap" }, "meta": { "type": "object" @@ -10898,13 +13099,13 @@ } } }, - "/api/sources/restore/{id}": { + "/resource/matrix/roadmaps/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The source id.", + "description": "The roadmap id.", "schema": { "type": "string", "format": "uuid" @@ -10913,26 +13114,67 @@ ], "put": { "tags": [ - "Source" + "Roadmap" ], - "summary": "Restore a source by id.", - "operationId": "restore_source", + "summary": "Restore a roadmap from the trash by ID.", + "operationId": "restore_roadmap", "responses": { "200": { - "description": "The restored source.", + "description": "The restored roadmap.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Source" + "$ref": "#/components/schemas/Roadmap" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/roadmaps/create": { + "get": { + "tags": [ + "Roadmap" + ], + "summary": "Create a roadmap form.", + "operationId": "create_roadmap", + "responses": { + "200": { + "description": "The create roadmap information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Roadmap" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a roadmap
" + } } } }, @@ -10945,13 +13187,13 @@ } } }, - "/api/sprints/{id}": { + "/resource/matrix/roadmaps/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The sprint id.", + "description": "The roadmap id.", "schema": { "type": "string", "format": "uuid" @@ -10960,20 +13202,73 @@ ], "get": { "tags": [ - "Sprint" + "Roadmap" ], - "summary": "Get a sprint by id.", - "operationId": "get_sprint", + "summary": "Edit a roadmap form.", + "operationId": "edit_roadmap", "responses": { "200": { - "description": "The sprint data.", + "description": "The edit roadmap information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Sprint" + "$ref": "#/components/schemas/Roadmap" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a roadmap
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/sources/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The source id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Source" + ], + "summary": "Get a source by id.", + "operationId": "get_source", + "responses": { + "200": { + "description": "The source data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Source" }, "meta": { "type": "object" @@ -10993,13 +13288,13 @@ }, "delete": { "tags": [ - "Sprint" + "Source" ], - "summary": "Delete a sprint by id.", - "operationId": "delete_sprint", + "summary": "Delete a source by id.", + "operationId": "delete_source", "responses": { "204": { - "description": "The sprint has been deleted." + "description": "The source has been deleted." }, "401": { "description": "Unauthorized" @@ -11008,204 +13303,132 @@ "description": "Forbidden" }, "423": { - "description": "The sprint is locked. Unlock to delete." + "description": "The source is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Sprint" + "Source" ], - "summary": "Update a sprint by id.", - "operationId": "patch_sprint", + "summary": "Patch a source by id.", + "operationId": "patch_source", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Sprint fillable properties.", + "description": "The Matrix Source fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this sprint.", + "source_type": { + "description": "The source type of this source.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this sprint.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this source.", "type": "string", "format": "uuid", "nullable": true }, - "sprint_type": { - "description": "The sprint type of this sprint.", + "parent_id": { + "description": "ID: a parent of this source.", "type": "string", + "format": "uuid", "nullable": true }, - "backlog_id": { - "description": "Foreign key: links a backlog to this sprint.", + "matrix_id": { + "description": "Foreign key: links a matrix to this source.", "type": "string", "format": "uuid", "nullable": true }, - "board_id": { - "description": "Foreign key: links a board to this sprint.", + "note_id": { + "description": "Foreign key: links a note to this source.", "type": "string", "format": "uuid", "nullable": true }, - "epic_id": { - "description": "Foreign key: links an epic to this sprint.", + "tag_id": { + "description": "Foreign key: links a tag to this source.", "type": "string", "format": "uuid", "nullable": true }, - "flow_id": { - "description": "Foreign key: links a flow to this sprint.", + "team_id": { + "description": "Foreign key: links a team to this source.", "type": "string", "format": "uuid", "nullable": true }, - "milestone_id": { - "description": "Foreign key: links a milestone to this sprint.", + "canceled_at": { + "description": "The canceled at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "note_id": { - "description": "Foreign key: links a note to this sprint.", + "closed_at": { + "description": "The closed at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "project_id": { - "description": "Foreign key: links a project to this sprint.", + "embargo_at": { + "description": "The embargo at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "release_id": { - "description": "Foreign key: links a release to this sprint.", + "planned_end_at": { + "description": "The planned end at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this sprint.", + "planned_start_at": { + "description": "The planned start at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "source_id": { - "description": "Foreign key: links a source to this sprint.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "tag_id": { - "description": "Foreign key: links a tag to this sprint.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "team_id": { - "description": "Foreign key: links a team to this sprint.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "ticket_id": { - "description": "Foreign key: links a ticket to this sprint.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_id": { - "description": "Foreign key: links a version to this sprint.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "start_at": { - "description": "The start at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "embargo_at": { - "description": "The embargo at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "fixed_at": { - "description": "The fixed at date for this sprint.", + "postponed_at": { + "description": "The postponed at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this sprint.", + "published_at": { + "description": "The published at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this sprint.", + "resolved_at": { + "description": "The resolved at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this sprint.", + "resumed_at": { + "description": "The resumed at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this sprint.", + "suspended_at": { + "description": "The suspended at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this sprint.", + "timer_end_at": { + "description": "The timer end at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this sprint.", + "timer_start_at": { + "description": "The timer start at date for this source.", "type": "string", "format": "date-time", "nullable": true @@ -11247,7 +13470,7 @@ "type": "boolean" }, "status": { - "description": "The status of the sprint.", + "description": "The status of the source.", "type": "integer", "format": "int64" }, @@ -11277,7 +13500,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the sprint.", + "description": "The ui of the source.", "type": "object", "nullable": true }, @@ -11285,6 +13508,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -11305,6 +13548,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -11313,10 +13560,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -11325,44 +13580,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the source.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the sprint.", + "description": "The label of the source.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the source.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the sprint.", + "description": "The byline of the source.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the sprint.", + "description": "The slug of the source.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the sprint.", + "description": "The url of the source.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the sprint.", + "description": "The description of the source.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the sprint.", + "description": "The introduction of the source.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the sprint. Allows HTML.", + "description": "The content of the source. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the sprint. Allows HTML.", + "description": "The summary of the source. Allows HTML.", "type": "string", "nullable": true }, @@ -11371,21 +13636,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -11396,11 +13646,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -11413,14 +13658,14 @@ }, "responses": { "200": { - "description": "The updated sprint.", + "description": "The source has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Sprint" + "$ref": "#/components/schemas/Source" }, "meta": { "type": "object" @@ -11446,11 +13691,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -11459,20 +13704,23 @@ } } } + }, + "423": { + "description": "The source is locked. Unlock to patch." } } } }, - "/api/sprints": { + "/resource/matrix/sources": { "get": { "tags": [ - "Sprint" + "Source" ], - "summary": "Get sprints from the index.", - "operationId": "get_sprints_index", + "summary": "Get sources from the index.", + "operationId": "get_sources_index", "responses": { "200": { - "description": "Get the sprints from the index.", + "description": "Get the sources from the index.", "content": { "application/json": { "schema": { @@ -11481,7 +13729,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Sprint" + "$ref": "#/components/schemas/Source" } }, "meta": { @@ -11502,198 +13750,126 @@ }, "post": { "tags": [ - "Sprint" + "Source" ], - "summary": "Create a sprint.", - "operationId": "post_sprint", + "summary": "Create a source.", + "operationId": "post_source", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Sprint fillable properties.", + "description": "The Matrix Source fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this sprint.", + "source_type": { + "description": "The source type of this source.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this sprint.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this source.", "type": "string", "format": "uuid", "nullable": true }, - "sprint_type": { - "description": "The sprint type of this sprint.", + "parent_id": { + "description": "ID: a parent of this source.", "type": "string", + "format": "uuid", "nullable": true }, - "backlog_id": { - "description": "Foreign key: links a backlog to this sprint.", + "matrix_id": { + "description": "Foreign key: links a matrix to this source.", "type": "string", "format": "uuid", "nullable": true }, - "board_id": { - "description": "Foreign key: links a board to this sprint.", + "note_id": { + "description": "Foreign key: links a note to this source.", "type": "string", "format": "uuid", "nullable": true }, - "epic_id": { - "description": "Foreign key: links an epic to this sprint.", + "tag_id": { + "description": "Foreign key: links a tag to this source.", "type": "string", "format": "uuid", "nullable": true }, - "flow_id": { - "description": "Foreign key: links a flow to this sprint.", + "team_id": { + "description": "Foreign key: links a team to this source.", "type": "string", "format": "uuid", "nullable": true }, - "milestone_id": { - "description": "Foreign key: links a milestone to this sprint.", + "canceled_at": { + "description": "The canceled at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "note_id": { - "description": "Foreign key: links a note to this sprint.", + "closed_at": { + "description": "The closed at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "project_id": { - "description": "Foreign key: links a project to this sprint.", + "embargo_at": { + "description": "The embargo at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "release_id": { - "description": "Foreign key: links a release to this sprint.", + "planned_end_at": { + "description": "The planned end at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this sprint.", + "planned_start_at": { + "description": "The planned start at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "source_id": { - "description": "Foreign key: links a source to this sprint.", + "postponed_at": { + "description": "The postponed at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "tag_id": { - "description": "Foreign key: links a tag to this sprint.", + "published_at": { + "description": "The published at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "team_id": { - "description": "Foreign key: links a team to this sprint.", + "resolved_at": { + "description": "The resolved at date for this source.", "type": "string", - "format": "uuid", + "format": "date-time", "nullable": true }, - "ticket_id": { - "description": "Foreign key: links a ticket to this sprint.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_id": { - "description": "Foreign key: links a version to this sprint.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "start_at": { - "description": "The start at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "embargo_at": { - "description": "The embargo at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "fixed_at": { - "description": "The fixed at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "postponed_at": { - "description": "The postponed at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "published_at": { - "description": "The published at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "released_at": { - "description": "The released at date for this sprint.", + "resumed_at": { + "description": "The resumed at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this sprint.", + "suspended_at": { + "description": "The suspended at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this sprint.", + "timer_end_at": { + "description": "The timer end at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this sprint.", + "timer_start_at": { + "description": "The timer start at date for this source.", "type": "string", "format": "date-time", "nullable": true @@ -11735,7 +13911,7 @@ "type": "boolean" }, "status": { - "description": "The status of the sprint.", + "description": "The status of the source.", "type": "integer", "format": "int64" }, @@ -11765,7 +13941,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the sprint.", + "description": "The ui of the source.", "type": "object", "nullable": true }, @@ -11773,6 +13949,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -11793,6 +13989,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -11801,10 +14001,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -11813,44 +14021,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the source.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the sprint.", + "description": "The label of the source.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the source.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the sprint.", + "description": "The byline of the source.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the sprint.", + "description": "The slug of the source.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the sprint.", + "description": "The url of the source.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the sprint.", + "description": "The description of the source.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the sprint.", + "description": "The introduction of the source.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the sprint. Allows HTML.", + "description": "The content of the source. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the sprint. Allows HTML.", + "description": "The summary of the source. Allows HTML.", "type": "string", "nullable": true }, @@ -11859,21 +14077,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -11884,11 +14087,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -11901,14 +14099,14 @@ }, "responses": { "200": { - "description": "The created sprints.", + "description": "The created source.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Sprint" + "$ref": "#/components/schemas/Source" }, "meta": { "type": "object" @@ -11934,11 +14132,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -11947,17 +14145,106 @@ } } } + }, + "423": { + "description": "The source is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/sources/index": { + "post": { + "tags": [ + "Source" + ], + "summary": "Get sources from the index using POST.", + "operationId": "post_sources_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Source index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Source.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Source type of this Source.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the sources from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Source" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/sprints/lock/{id}": { + "/resource/matrix/sources/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The sprint id.", + "description": "The source id.", "schema": { "type": "string", "format": "uuid" @@ -11966,13 +14253,13 @@ ], "delete": { "tags": [ - "Sprint" + "Source" ], - "summary": "Unlock a sprint by id.", - "operationId": "lock_sprint", + "summary": "Delete a source by id.", + "operationId": "unlock_source", "responses": { "204": { - "description": "The sprint has been unlocked." + "description": "The source has been unlocked." }, "401": { "description": "Unauthorized" @@ -11984,20 +14271,20 @@ }, "put": { "tags": [ - "Sprint" + "Source" ], - "summary": "Lock a sprint by id.", - "operationId": "unlock_sprint", + "summary": "Lock a source by ID.", + "operationId": "lock_source", "responses": { "200": { - "description": "The unlocked sprint.", + "description": "The unlocked source.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Sprint" + "$ref": "#/components/schemas/Source" }, "meta": { "type": "object" @@ -12016,13 +14303,13 @@ } } }, - "/api/sprints/restore/{id}": { + "/resource/matrix/sources/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The sprint id.", + "description": "The source id.", "schema": { "type": "string", "format": "uuid" @@ -12031,20 +14318,20 @@ ], "put": { "tags": [ - "Sprint" + "Source" ], - "summary": "Restore a sprint by id.", - "operationId": "restore_sprint", + "summary": "Restore a source from the trash by ID.", + "operationId": "restore_source", "responses": { "200": { - "description": "The restored sprint.", + "description": "The restored source.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Sprint" + "$ref": "#/components/schemas/Source" }, "meta": { "type": "object" @@ -12063,41 +14350,35 @@ } } }, - "/api/tags/{id}": { - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "description": "The tag id.", - "schema": { - "type": "string", - "format": "uuid" - } - } - ], + "/resource/matrix/sources/create": { "get": { "tags": [ - "Tag" + "Source" ], - "summary": "Get a tag by id.", - "operationId": "get_tag", + "summary": "Create a source form.", + "operationId": "create_source", "responses": { "200": { - "description": "The tag data.", + "description": "The create source information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/Source" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a source
" + } } } }, @@ -12108,16 +14389,116 @@ "description": "Forbidden" } } - }, - "delete": { - "tags": [ - "Tag" + } + }, + "/resource/matrix/sources/edit/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The source id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Source" ], - "summary": "Delete a tag by id.", - "operationId": "delete_tag", + "summary": "Edit a source form.", + "operationId": "edit_source", + "responses": { + "200": { + "description": "The edit source information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Source" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a source
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/sprints/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The sprint id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Sprint" + ], + "summary": "Get a sprint by id.", + "operationId": "get_sprint", + "responses": { + "200": { + "description": "The sprint data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Sprint" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + }, + "delete": { + "tags": [ + "Sprint" + ], + "summary": "Delete a sprint by id.", + "operationId": "delete_sprint", "responses": { "204": { - "description": "The tag has been deleted." + "description": "The sprint has been deleted." }, "401": { "description": "Unauthorized" @@ -12126,204 +14507,198 @@ "description": "Forbidden" }, "423": { - "description": "The tag is locked. Unlock to delete." + "description": "The sprint is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Tag" + "Sprint" ], - "summary": "Update a tag by id.", - "operationId": "patch_tag", + "summary": "Patch a sprint by id.", + "operationId": "patch_sprint", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Tag fillable properties.", + "description": "The Matrix Sprint fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this tag.", + "sprint_type": { + "description": "The sprint type of this sprint.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this tag.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this sprint.", "type": "string", "format": "uuid", "nullable": true }, - "tag_type": { - "description": "The tag type of this tag.", + "parent_id": { + "description": "ID: a parent of this sprint.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this tag.", + "description": "Foreign key: links a backlog to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this tag.", + "description": "Foreign key: links a board to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this tag.", + "description": "Foreign key: links an epic to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this tag.", + "description": "Foreign key: links a flow to this sprint.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this tag.", + "description": "Foreign key: links a milestone to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this tag.", + "description": "Foreign key: links a note to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this tag.", + "description": "Foreign key: links a project to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this tag.", + "description": "Foreign key: links a release to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this tag.", + "description": "Foreign key: links a roadmap to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this tag.", + "description": "Foreign key: links a source to this sprint.", "type": "string", "format": "uuid", "nullable": true }, - "sprint_id": { - "description": "Foreign key: links a sprint to this tag.", + "tag_id": { + "description": "Foreign key: links a tag to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this tag.", + "description": "Foreign key: links a team to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this tag.", + "description": "Foreign key: links a ticket to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this tag.", + "description": "Foreign key: links a version to this sprint.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this tag.", + "canceled_at": { + "description": "The canceled at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this tag.", + "closed_at": { + "description": "The closed at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this tag.", + "embargo_at": { + "description": "The embargo at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this tag.", + "description": "The planned end at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this tag.", + "planned_start_at": { + "description": "The planned start at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this tag.", + "postponed_at": { + "description": "The postponed at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this tag.", + "published_at": { + "description": "The published at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this tag.", + "resolved_at": { + "description": "The resolved at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this tag.", + "resumed_at": { + "description": "The resumed at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this tag.", + "suspended_at": { + "description": "The suspended at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this tag.", + "timer_end_at": { + "description": "The timer end at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this tag.", + "timer_start_at": { + "description": "The timer start at date for this sprint.", "type": "string", "format": "date-time", "nullable": true @@ -12365,7 +14740,7 @@ "type": "boolean" }, "status": { - "description": "The status of the tag.", + "description": "The status of the sprint.", "type": "integer", "format": "int64" }, @@ -12395,7 +14770,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the tag.", + "description": "The ui of the sprint.", "type": "object", "nullable": true }, @@ -12403,6 +14778,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -12423,6 +14818,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -12431,10 +14830,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -12443,44 +14850,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the sprint.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the tag.", + "description": "The label of the sprint.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the sprint.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the tag.", + "description": "The byline of the sprint.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the tag.", + "description": "The slug of the sprint.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the tag.", + "description": "The url of the sprint.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the tag.", + "description": "The description of the sprint.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the tag.", + "description": "The introduction of the sprint.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the tag. Allows HTML.", + "description": "The content of the sprint. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the tag. Allows HTML.", + "description": "The summary of the sprint. Allows HTML.", "type": "string", "nullable": true }, @@ -12504,6 +14921,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -12531,14 +14953,14 @@ }, "responses": { "200": { - "description": "The updated tag.", + "description": "The sprint has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/Sprint" }, "meta": { "type": "object" @@ -12564,11 +14986,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -12577,20 +14999,23 @@ } } } + }, + "423": { + "description": "The sprint is locked. Unlock to patch." } } } }, - "/api/tags": { + "/resource/matrix/sprints": { "get": { "tags": [ - "Tag" + "Sprint" ], - "summary": "Get tags from the index.", - "operationId": "get_tags_index", + "summary": "Get sprints from the index.", + "operationId": "get_sprints_index", "responses": { "200": { - "description": "Get the tags from the index.", + "description": "Get the sprints from the index.", "content": { "application/json": { "schema": { @@ -12599,7 +15024,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/Sprint" } }, "meta": { @@ -12620,198 +15045,192 @@ }, "post": { "tags": [ - "Tag" + "Sprint" ], - "summary": "Create a tag.", - "operationId": "post_tag", + "summary": "Create a sprint.", + "operationId": "post_sprint", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Tag fillable properties.", + "description": "The Matrix Sprint fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this tag.", + "sprint_type": { + "description": "The sprint type of this sprint.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this tag.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this sprint.", "type": "string", "format": "uuid", "nullable": true }, - "tag_type": { - "description": "The tag type of this tag.", + "parent_id": { + "description": "ID: a parent of this sprint.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this tag.", + "description": "Foreign key: links a backlog to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this tag.", + "description": "Foreign key: links a board to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this tag.", + "description": "Foreign key: links an epic to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this tag.", + "description": "Foreign key: links a flow to this sprint.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this tag.", + "description": "Foreign key: links a milestone to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this tag.", + "description": "Foreign key: links a note to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this tag.", + "description": "Foreign key: links a project to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this tag.", + "description": "Foreign key: links a release to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this tag.", + "description": "Foreign key: links a roadmap to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this tag.", + "description": "Foreign key: links a source to this sprint.", "type": "string", "format": "uuid", "nullable": true }, - "sprint_id": { - "description": "Foreign key: links a sprint to this tag.", + "tag_id": { + "description": "Foreign key: links a tag to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this tag.", + "description": "Foreign key: links a team to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "ticket_id": { - "description": "Foreign key: links a ticket to this tag.", + "description": "Foreign key: links a ticket to this sprint.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this tag.", + "description": "Foreign key: links a version to this sprint.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this tag.", + "canceled_at": { + "description": "The canceled at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this tag.", + "closed_at": { + "description": "The closed at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this tag.", + "embargo_at": { + "description": "The embargo at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this tag.", + "description": "The planned end at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this tag.", + "planned_start_at": { + "description": "The planned start at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this tag.", + "postponed_at": { + "description": "The postponed at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this tag.", + "published_at": { + "description": "The published at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this tag.", + "resolved_at": { + "description": "The resolved at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this tag.", + "resumed_at": { + "description": "The resumed at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this tag.", + "suspended_at": { + "description": "The suspended at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this tag.", + "timer_end_at": { + "description": "The timer end at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this tag.", + "timer_start_at": { + "description": "The timer start at date for this sprint.", "type": "string", "format": "date-time", "nullable": true @@ -12853,7 +15272,7 @@ "type": "boolean" }, "status": { - "description": "The status of the tag.", + "description": "The status of the sprint.", "type": "integer", "format": "int64" }, @@ -12883,7 +15302,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the tag.", + "description": "The ui of the sprint.", "type": "object", "nullable": true }, @@ -12891,6 +15310,26 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -12911,6 +15350,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -12919,10 +15362,18 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -12931,44 +15382,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the sprint.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the tag.", + "description": "The label of the sprint.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the sprint.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the tag.", + "description": "The byline of the sprint.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the tag.", + "description": "The slug of the sprint.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the tag.", + "description": "The url of the sprint.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the tag.", + "description": "The description of the sprint.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the tag.", + "description": "The introduction of the sprint.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the tag. Allows HTML.", + "description": "The content of the sprint. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the tag. Allows HTML.", + "description": "The summary of the sprint. Allows HTML.", "type": "string", "nullable": true }, @@ -12992,6 +15453,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -13019,14 +15485,14 @@ }, "responses": { "200": { - "description": "The created tags.", + "description": "The created sprint.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/Sprint" }, "meta": { "type": "object" @@ -13052,11 +15518,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -13065,17 +15531,106 @@ } } } + }, + "423": { + "description": "The sprint is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/sprints/index": { + "post": { + "tags": [ + "Sprint" + ], + "summary": "Get sprints from the index using POST.", + "operationId": "post_sprints_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Sprint index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Sprint.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Sprint type of this Sprint.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the sprints from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sprint" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/tags/lock/{id}": { + "/resource/matrix/sprints/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The tag id.", + "description": "The sprint id.", "schema": { "type": "string", "format": "uuid" @@ -13084,13 +15639,13 @@ ], "delete": { "tags": [ - "Tag" + "Sprint" ], - "summary": "Unlock a tag by id.", - "operationId": "lock_tag", + "summary": "Delete a sprint by id.", + "operationId": "unlock_sprint", "responses": { "204": { - "description": "The tag has been unlocked." + "description": "The sprint has been unlocked." }, "401": { "description": "Unauthorized" @@ -13102,20 +15657,20 @@ }, "put": { "tags": [ - "Tag" + "Sprint" ], - "summary": "Lock a tag by id.", - "operationId": "unlock_tag", + "summary": "Lock a sprint by ID.", + "operationId": "lock_sprint", "responses": { "200": { - "description": "The unlocked tag.", + "description": "The unlocked sprint.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/Sprint" }, "meta": { "type": "object" @@ -13134,13 +15689,13 @@ } } }, - "/api/tags/restore/{id}": { + "/resource/matrix/sprints/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The tag id.", + "description": "The sprint id.", "schema": { "type": "string", "format": "uuid" @@ -13149,26 +15704,67 @@ ], "put": { "tags": [ - "Tag" + "Sprint" ], - "summary": "Restore a tag by id.", - "operationId": "restore_tag", + "summary": "Restore a sprint from the trash by ID.", + "operationId": "restore_sprint", "responses": { "200": { - "description": "The restored tag.", + "description": "The restored sprint.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/Sprint" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/sprints/create": { + "get": { + "tags": [ + "Sprint" + ], + "summary": "Create a sprint form.", + "operationId": "create_sprint", + "responses": { + "200": { + "description": "The create sprint information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Sprint" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a sprint
" + } } } }, @@ -13181,13 +15777,13 @@ } } }, - "/api/teams/{id}": { + "/resource/matrix/sprints/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The team id.", + "description": "The sprint id.", "schema": { "type": "string", "format": "uuid" @@ -13196,26 +15792,32 @@ ], "get": { "tags": [ - "Team" + "Sprint" ], - "summary": "Get a team by id.", - "operationId": "get_team", + "summary": "Edit a sprint form.", + "operationId": "edit_sprint", "responses": { "200": { - "description": "The team data.", + "description": "The edit sprint information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Team" + "$ref": "#/components/schemas/Sprint" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a sprint
" + } } } }, @@ -13226,16 +15828,63 @@ "description": "Forbidden" } } - }, + } + }, + "/resource/matrix/tags/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The tag id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Tag" + ], + "summary": "Get a tag by id.", + "operationId": "get_tag", + "responses": { + "200": { + "description": "The tag data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tag" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + }, "delete": { "tags": [ - "Team" + "Tag" ], - "summary": "Delete a team by id.", - "operationId": "delete_team", + "summary": "Delete a tag by id.", + "operationId": "delete_tag", "responses": { "204": { - "description": "The team has been deleted." + "description": "The tag has been deleted." }, "401": { "description": "Unauthorized" @@ -13244,208 +15893,46 @@ "description": "Forbidden" }, "423": { - "description": "The team is locked. Unlock to delete." + "description": "The tag is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Team" + "Tag" ], - "summary": "Update a team by id.", - "operationId": "patch_team", + "summary": "Patch a tag by id.", + "operationId": "patch_tag", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Team fillable properties.", + "description": "The Matrix Tag fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "parent_id": { - "description": "Foreign key: links a parent to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "team_type": { - "description": "The team type of this team.", - "type": "string", - "nullable": true - }, - "backlog_id": { - "description": "Foreign key: links a backlog to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "board_id": { - "description": "Foreign key: links a board to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "epic_id": { - "description": "Foreign key: links an epic to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "flow_id": { - "description": "Foreign key: links a flow to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "milestone_id": { - "description": "Foreign key: links a milestone to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "note_id": { - "description": "Foreign key: links a note to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "project_id": { - "description": "Foreign key: links a project to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "release_id": { - "description": "Foreign key: links a release to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "source_id": { - "description": "Foreign key: links a source to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "sprint_id": { - "description": "Foreign key: links a sprint to this team.", + "tag_type": { + "description": "The tag type of this tag.", "type": "string", - "format": "uuid", "nullable": true }, - "tag_id": { - "description": "Foreign key: links a tag to this team.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this tag.", "type": "string", "format": "uuid", "nullable": true }, - "ticket_id": { - "description": "Foreign key: links a ticket to this team.", + "parent_id": { + "description": "ID: a parent of this tag.", "type": "string", "format": "uuid", "nullable": true }, - "version_id": { - "description": "Foreign key: links a version to this team.", + "matrix_id": { + "description": "Foreign key: links a matrix to this tag.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "embargo_at": { - "description": "The embargo at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "fixed_at": { - "description": "The fixed at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "postponed_at": { - "description": "The postponed at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "published_at": { - "description": "The published at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "released_at": { - "description": "The released at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resumed_at": { - "description": "The resumed at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resolved_at": { - "description": "The resolved at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "suspended_at": { - "description": "The suspended at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, "gids": { "description": "Permissions: gids", "type": "integer", @@ -13483,7 +15970,7 @@ "type": "boolean" }, "status": { - "description": "The status of the team.", + "description": "The status of the tag.", "type": "integer", "format": "int64" }, @@ -13513,7 +16000,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the team.", + "description": "The ui of the tag.", "type": "object", "nullable": true }, @@ -13521,6 +16008,14 @@ "description": "Flags: active", "type": "boolean" }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -13533,72 +16028,66 @@ "description": "Flags: locked", "type": "boolean" }, - "pending": { - "description": "Flags: pending", - "type": "boolean" - }, - "planned": { - "description": "Flags: planned", - "type": "boolean" - }, - "problem": { - "description": "Flags: problem", - "type": "boolean" - }, - "published": { - "description": "Flags: published", - "type": "boolean" - }, "retired": { "description": "Flags: retired", "type": "boolean" }, - "suspended": { - "description": "Flags: suspended", + "special": { + "description": "Flags: special", "type": "boolean" }, "unknown": { "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the tag.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the team.", + "description": "The label of the tag.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the tag.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the team.", + "description": "The byline of the tag.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the team.", + "description": "The slug of the tag.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the team.", + "description": "The url of the tag.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the team.", + "description": "The description of the tag.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the team.", + "description": "The introduction of the tag.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the team. Allows HTML.", + "description": "The content of the tag. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the team. Allows HTML.", + "description": "The summary of the tag. Allows HTML.", "type": "string", "nullable": true }, @@ -13607,21 +16096,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -13632,11 +16106,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -13649,14 +16118,14 @@ }, "responses": { "200": { - "description": "The updated team.", + "description": "The tag has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Team" + "$ref": "#/components/schemas/Tag" }, "meta": { "type": "object" @@ -13682,11 +16151,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -13695,20 +16164,23 @@ } } } + }, + "423": { + "description": "The tag is locked. Unlock to patch." } } } }, - "/api/teams": { + "/resource/matrix/tags": { "get": { "tags": [ - "Team" + "Tag" ], - "summary": "Get teams from the index.", - "operationId": "get_teams_index", + "summary": "Get tags from the index.", + "operationId": "get_tags_index", "responses": { "200": { - "description": "Get the teams from the index.", + "description": "Get the tags from the index.", "content": { "application/json": { "schema": { @@ -13717,7 +16189,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Team" + "$ref": "#/components/schemas/Tag" } }, "meta": { @@ -13738,202 +16210,40 @@ }, "post": { "tags": [ - "Team" + "Tag" ], - "summary": "Create a team.", - "operationId": "post_team", + "summary": "Create a tag.", + "operationId": "post_tag", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Team fillable properties.", + "description": "The Matrix Tag fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "parent_id": { - "description": "Foreign key: links a parent to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "team_type": { - "description": "The team type of this team.", - "type": "string", - "nullable": true - }, - "backlog_id": { - "description": "Foreign key: links a backlog to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "board_id": { - "description": "Foreign key: links a board to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "epic_id": { - "description": "Foreign key: links an epic to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "flow_id": { - "description": "Foreign key: links a flow to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "milestone_id": { - "description": "Foreign key: links a milestone to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "note_id": { - "description": "Foreign key: links a note to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "project_id": { - "description": "Foreign key: links a project to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "release_id": { - "description": "Foreign key: links a release to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "source_id": { - "description": "Foreign key: links a source to this team.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "sprint_id": { - "description": "Foreign key: links a sprint to this team.", + "tag_type": { + "description": "The tag type of this tag.", "type": "string", - "format": "uuid", "nullable": true }, - "tag_id": { - "description": "Foreign key: links a tag to this team.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this tag.", "type": "string", "format": "uuid", "nullable": true }, - "ticket_id": { - "description": "Foreign key: links a ticket to this team.", + "parent_id": { + "description": "ID: a parent of this tag.", "type": "string", "format": "uuid", "nullable": true }, - "version_id": { - "description": "Foreign key: links a version to this team.", + "matrix_id": { + "description": "Foreign key: links a matrix to this tag.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "embargo_at": { - "description": "The embargo at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "fixed_at": { - "description": "The fixed at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "postponed_at": { - "description": "The postponed at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "published_at": { - "description": "The published at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "released_at": { - "description": "The released at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resumed_at": { - "description": "The resumed at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resolved_at": { - "description": "The resolved at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "suspended_at": { - "description": "The suspended at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, "gids": { "description": "Permissions: gids", "type": "integer", @@ -13971,7 +16281,7 @@ "type": "boolean" }, "status": { - "description": "The status of the team.", + "description": "The status of the tag.", "type": "integer", "format": "int64" }, @@ -14001,7 +16311,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the team.", + "description": "The ui of the tag.", "type": "object", "nullable": true }, @@ -14009,6 +16319,14 @@ "description": "Flags: active", "type": "boolean" }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -14021,72 +16339,66 @@ "description": "Flags: locked", "type": "boolean" }, - "pending": { - "description": "Flags: pending", + "retired": { + "description": "Flags: retired", "type": "boolean" }, - "planned": { - "description": "Flags: planned", + "special": { + "description": "Flags: special", "type": "boolean" }, - "problem": { - "description": "Flags: problem", + "unknown": { + "description": "Flags: unknown", "type": "boolean" }, - "published": { - "description": "Flags: published", - "type": "boolean" - }, - "retired": { - "description": "Flags: retired", - "type": "boolean" - }, - "suspended": { - "description": "Flags: suspended", - "type": "boolean" - }, - "unknown": { - "description": "Flags: unknown", - "type": "boolean" + "locale": { + "description": "The locale of the tag.", + "type": "string", + "maxLength": 255 }, "label": { - "description": "The label of the team.", + "description": "The label of the tag.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the tag.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the team.", + "description": "The byline of the tag.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the team.", + "description": "The slug of the tag.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the team.", + "description": "The url of the tag.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the team.", + "description": "The description of the tag.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the team.", + "description": "The introduction of the tag.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the team. Allows HTML.", + "description": "The content of the tag. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the team. Allows HTML.", + "description": "The summary of the tag. Allows HTML.", "type": "string", "nullable": true }, @@ -14095,21 +16407,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -14120,11 +16417,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -14137,14 +16429,14 @@ }, "responses": { "200": { - "description": "The created teams.", + "description": "The created tag.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Team" + "$ref": "#/components/schemas/Tag" }, "meta": { "type": "object" @@ -14170,11 +16462,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -14183,17 +16475,106 @@ } } } + }, + "423": { + "description": "The tag is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/tags/index": { + "post": { + "tags": [ + "Tag" + ], + "summary": "Get tags from the index using POST.", + "operationId": "post_tags_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Tag index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Tag.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Tag type of this Tag.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the tags from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/teams/lock/{id}": { + "/resource/matrix/tags/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The team id.", + "description": "The tag id.", "schema": { "type": "string", "format": "uuid" @@ -14202,13 +16583,13 @@ ], "delete": { "tags": [ - "Team" + "Tag" ], - "summary": "Unlock a team by id.", - "operationId": "lock_team", + "summary": "Delete a tag by id.", + "operationId": "unlock_tag", "responses": { "204": { - "description": "The team has been unlocked." + "description": "The tag has been unlocked." }, "401": { "description": "Unauthorized" @@ -14220,20 +16601,20 @@ }, "put": { "tags": [ - "Team" + "Tag" ], - "summary": "Lock a team by id.", - "operationId": "unlock_team", + "summary": "Lock a tag by ID.", + "operationId": "lock_tag", "responses": { "200": { - "description": "The unlocked team.", + "description": "The unlocked tag.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Team" + "$ref": "#/components/schemas/Tag" }, "meta": { "type": "object" @@ -14252,13 +16633,13 @@ } } }, - "/api/teams/restore/{id}": { + "/resource/matrix/tags/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The team id.", + "description": "The tag id.", "schema": { "type": "string", "format": "uuid" @@ -14267,26 +16648,67 @@ ], "put": { "tags": [ - "Team" + "Tag" ], - "summary": "Restore a team by id.", - "operationId": "restore_team", + "summary": "Restore a tag from the trash by ID.", + "operationId": "restore_tag", "responses": { "200": { - "description": "The restored team.", + "description": "The restored tag.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Team" + "$ref": "#/components/schemas/Tag" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/tags/create": { + "get": { + "tags": [ + "Tag" + ], + "summary": "Create a tag form.", + "operationId": "create_tag", + "responses": { + "200": { + "description": "The create tag information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Tag" }, "meta": { "type": "object" } } } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a tag
" + } } } }, @@ -14299,13 +16721,13 @@ } } }, - "/api/tickets/{id}": { + "/resource/matrix/tags/edit/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The ticket id.", + "description": "The tag id.", "schema": { "type": "string", "format": "uuid" @@ -14314,20 +16736,73 @@ ], "get": { "tags": [ - "Ticket" + "Tag" ], - "summary": "Get a ticket by id.", - "operationId": "get_ticket", + "summary": "Edit a tag form.", + "operationId": "edit_tag", "responses": { "200": { - "description": "The ticket data.", + "description": "The edit tag information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Ticket" + "$ref": "#/components/schemas/Tag" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a tag
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/teams/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The team id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Team" + ], + "summary": "Get a team by id.", + "operationId": "get_team", + "responses": { + "200": { + "description": "The team data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Team" }, "meta": { "type": "object" @@ -14347,13 +16822,13 @@ }, "delete": { "tags": [ - "Ticket" + "Team" ], - "summary": "Delete a ticket by id.", - "operationId": "delete_ticket", + "summary": "Delete a team by id.", + "operationId": "delete_team", "responses": { "204": { - "description": "The ticket has been deleted." + "description": "The team has been deleted." }, "401": { "description": "Unauthorized" @@ -14362,228 +16837,198 @@ "description": "Forbidden" }, "423": { - "description": "The ticket is locked. Unlock to delete." + "description": "The team is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Ticket" + "Team" ], - "summary": "Update a ticket by id.", - "operationId": "patch_ticket", + "summary": "Patch a team by id.", + "operationId": "patch_team", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Ticket fillable properties.", + "description": "The Matrix Team fillable properties.", "type": "object", "properties": { + "team_type": { + "description": "The team type of this team.", + "type": "string", + "nullable": true + }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this ticket.", + "description": "Foreign key: links an owned by user to this team.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this ticket.", + "description": "ID: a parent of this team.", "type": "string", "format": "uuid", "nullable": true }, - "ticket_type": { - "description": "The ticket type of this ticket.", + "backlog_id": { + "description": "Foreign key: links a backlog to this team.", "type": "string", - "nullable": true - }, - "duplicate_id": { - "description": "Foreign key: links a duplicate to this ticket.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "backlog_id": { - "description": "Foreign key: links a backlog to this ticket.", - "type": "string", - "format": "uuid", + "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this ticket.", + "description": "Foreign key: links a board to this team.", "type": "string", "format": "uuid", "nullable": true }, - "completed_by_id": { - "description": "Foreign key: links a completed by user to this ticket.", + "epic_id": { + "description": "Foreign key: links an epic to this team.", "type": "string", "format": "uuid", "nullable": true }, - "epic_id": { - "description": "Foreign key: links an epic to this ticket.", + "flow_id": { + "description": "Foreign key: links a flow to this team.", "type": "string", "format": "uuid", "nullable": true }, - "flow_id": { - "description": "Foreign key: links a flow to this ticket.", + "matrix_id": { + "description": "Foreign key: links a matrix to this team.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this ticket.", + "description": "Foreign key: links a milestone to this team.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this ticket.", + "description": "Foreign key: links a note to this team.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this ticket.", + "description": "Foreign key: links a project to this team.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this ticket.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "reported_by_id": { - "description": "Foreign key: links a reported by user to this ticket.", + "description": "Foreign key: links a release to this team.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this ticket.", + "description": "Foreign key: links a roadmap to this team.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this ticket.", + "description": "Foreign key: links a source to this team.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this ticket.", + "description": "Foreign key: links a sprint to this team.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this ticket.", + "description": "Foreign key: links a tag to this team.", "type": "string", "format": "uuid", "nullable": true }, - "team_id": { - "description": "Foreign key: links a team to this ticket.", + "ticket_id": { + "description": "Foreign key: links a ticket to this team.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this ticket.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_fixed_id": { - "description": "Foreign key: links a version fixed to this ticket.", + "description": "Foreign key: links a version to this team.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this ticket.", + "canceled_at": { + "description": "The canceled at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this ticket.", + "closed_at": { + "description": "The closed at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this ticket.", + "embargo_at": { + "description": "The embargo at date for this team.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this ticket.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this ticket.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this ticket.", + "description": "The planned end at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this ticket.", + "planned_start_at": { + "description": "The planned start at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this ticket.", + "postponed_at": { + "description": "The postponed at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this ticket.", + "published_at": { + "description": "The published at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this ticket.", + "resolved_at": { + "description": "The resolved at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this ticket.", + "resumed_at": { + "description": "The resumed at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this ticket.", + "suspended_at": { + "description": "The suspended at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this ticket.", + "timer_end_at": { + "description": "The timer end at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this ticket.", + "timer_start_at": { + "description": "The timer start at date for this team.", "type": "string", "format": "date-time", "nullable": true @@ -14625,7 +17070,7 @@ "type": "boolean" }, "status": { - "description": "The status of the ticket.", + "description": "The status of the team.", "type": "integer", "format": "int64" }, @@ -14655,7 +17100,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the ticket.", + "description": "The ui of the team.", "type": "object", "nullable": true }, @@ -14675,12 +17120,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -14703,6 +17148,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -14719,8 +17168,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -14731,122 +17180,57 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the team.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the ticket.", + "description": "The label of the team.", "type": "string", "maxLength": 128 }, "title": { - "description": "The title of the ticket.", + "description": "The title of the team.", "type": "string", "maxLength": 255 }, "byline": { - "description": "The byline of the ticket.", + "description": "The byline of the team.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the ticket.", + "description": "The slug of the team.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the ticket.", + "description": "The url of the team.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the ticket.", + "description": "The description of the team.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the ticket.", + "description": "The introduction of the team.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the ticket. Allows HTML.", + "description": "The content of the team. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the ticket. Allows HTML.", - "type": "string", - "nullable": true - }, - "key": { - "description": "The key of the ticket.", - "type": "string", - "maxLength": 64 - }, - "handler": { - "description": "The handler of the ticket.", - "type": "string", - "maxLength": 32 - }, - "code": { - "description": "The code of the ticket.", - "type": "integer", - "format": "int64" - }, - "key_code_hash": { - "description": "The key code hash of the ticket.", - "type": "string", - "maxLength": 32 - }, - "priority": { - "description": "The priority of the ticket.", - "type": "string", - "maxLength": 32 - }, - "severity": { - "description": "The severity of the ticket.", - "type": "string", - "maxLength": 32 - }, - "resolution": { - "description": "The resolution of the ticket.", - "type": "string", - "maxLength": 32 - }, - "step": { - "description": "The step of the ticket.", - "type": "string", - "maxLength": 32 - }, - "state": { - "description": "The state of the ticket.", - "type": "string", - "maxLength": 32 - }, - "workflow_type": { - "description": "The workflow type of the ticket.", - "type": "string", - "maxLength": 128 - }, - "points": { - "description": "The points of the ticket.", - "type": "integer", - "format": "int32" - }, - "story": { - "description": "The story of the ticket. Allows HTML.", - "type": "string", - "nullable": true - }, - "criteria": { - "description": "The criteria of the ticket. Allows HTML.", + "description": "The summary of the team. Allows HTML.", "type": "string", "nullable": true }, - "reproducibility": { - "description": "The reproducibility of the ticket.", - "type": "number", - "nullable": true - }, "assets": { "description": "JSON: assets", "type": "object", @@ -14899,14 +17283,14 @@ }, "responses": { "200": { - "description": "The updated ticket.", + "description": "The team has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Ticket" + "$ref": "#/components/schemas/Team" }, "meta": { "type": "object" @@ -14932,11 +17316,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -14945,20 +17329,23 @@ } } } + }, + "423": { + "description": "The team is locked. Unlock to patch." } } } }, - "/api/tickets": { + "/resource/matrix/teams": { "get": { "tags": [ - "Ticket" + "Team" ], - "summary": "Get tickets from the index.", - "operationId": "get_tickets_index", + "summary": "Get teams from the index.", + "operationId": "get_teams_index", "responses": { "200": { - "description": "Get the tickets from the index.", + "description": "Get the teams from the index.", "content": { "application/json": { "schema": { @@ -14967,7 +17354,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Ticket" + "$ref": "#/components/schemas/Team" } }, "meta": { @@ -14988,222 +17375,192 @@ }, "post": { "tags": [ - "Ticket" + "Team" ], - "summary": "Create a ticket.", - "operationId": "post_ticket", + "summary": "Create a team.", + "operationId": "post_team", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Ticket fillable properties.", + "description": "The Matrix Team fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this ticket.", + "team_type": { + "description": "The team type of this team.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this ticket.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this team.", "type": "string", "format": "uuid", "nullable": true }, - "ticket_type": { - "description": "The ticket type of this ticket.", - "type": "string", - "nullable": true - }, - "duplicate_id": { - "description": "Foreign key: links a duplicate to this ticket.", + "parent_id": { + "description": "ID: a parent of this team.", "type": "string", "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this ticket.", + "description": "Foreign key: links a backlog to this team.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this ticket.", + "description": "Foreign key: links a board to this team.", "type": "string", "format": "uuid", "nullable": true }, - "completed_by_id": { - "description": "Foreign key: links a completed by user to this ticket.", + "epic_id": { + "description": "Foreign key: links an epic to this team.", "type": "string", "format": "uuid", "nullable": true }, - "epic_id": { - "description": "Foreign key: links an epic to this ticket.", + "flow_id": { + "description": "Foreign key: links a flow to this team.", "type": "string", "format": "uuid", "nullable": true }, - "flow_id": { - "description": "Foreign key: links a flow to this ticket.", + "matrix_id": { + "description": "Foreign key: links a matrix to this team.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this ticket.", + "description": "Foreign key: links a milestone to this team.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this ticket.", + "description": "Foreign key: links a note to this team.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this ticket.", + "description": "Foreign key: links a project to this team.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this ticket.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "reported_by_id": { - "description": "Foreign key: links a reported by user to this ticket.", + "description": "Foreign key: links a release to this team.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this ticket.", + "description": "Foreign key: links a roadmap to this team.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this ticket.", + "description": "Foreign key: links a source to this team.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this ticket.", + "description": "Foreign key: links a sprint to this team.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this ticket.", + "description": "Foreign key: links a tag to this team.", "type": "string", "format": "uuid", "nullable": true }, - "team_id": { - "description": "Foreign key: links a team to this ticket.", + "ticket_id": { + "description": "Foreign key: links a ticket to this team.", "type": "string", "format": "uuid", "nullable": true }, "version_id": { - "description": "Foreign key: links a version to this ticket.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_fixed_id": { - "description": "Foreign key: links a version fixed to this ticket.", + "description": "Foreign key: links a version to this team.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this ticket.", + "canceled_at": { + "description": "The canceled at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this ticket.", + "closed_at": { + "description": "The closed at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this ticket.", + "embargo_at": { + "description": "The embargo at date for this team.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this ticket.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this ticket.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this ticket.", + "description": "The planned end at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this ticket.", + "planned_start_at": { + "description": "The planned start at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this ticket.", + "postponed_at": { + "description": "The postponed at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this ticket.", + "published_at": { + "description": "The published at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this ticket.", + "resolved_at": { + "description": "The resolved at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this ticket.", + "resumed_at": { + "description": "The resumed at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this ticket.", + "suspended_at": { + "description": "The suspended at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this ticket.", + "timer_end_at": { + "description": "The timer end at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this ticket.", + "timer_start_at": { + "description": "The timer start at date for this team.", "type": "string", "format": "date-time", "nullable": true @@ -15245,7 +17602,7 @@ "type": "boolean" }, "status": { - "description": "The status of the ticket.", + "description": "The status of the team.", "type": "integer", "format": "int64" }, @@ -15275,7 +17632,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the ticket.", + "description": "The ui of the team.", "type": "object", "nullable": true }, @@ -15295,12 +17652,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -15323,6 +17680,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -15339,8 +17700,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -15351,122 +17712,57 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the team.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the ticket.", + "description": "The label of the team.", "type": "string", "maxLength": 128 }, "title": { - "description": "The title of the ticket.", + "description": "The title of the team.", "type": "string", "maxLength": 255 }, "byline": { - "description": "The byline of the ticket.", + "description": "The byline of the team.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the ticket.", + "description": "The slug of the team.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the ticket.", + "description": "The url of the team.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the ticket.", + "description": "The description of the team.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the ticket.", + "description": "The introduction of the team.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the ticket. Allows HTML.", + "description": "The content of the team. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the ticket. Allows HTML.", - "type": "string", - "nullable": true - }, - "key": { - "description": "The key of the ticket.", - "type": "string", - "maxLength": 64 - }, - "handler": { - "description": "The handler of the ticket.", - "type": "string", - "maxLength": 32 - }, - "code": { - "description": "The code of the ticket.", - "type": "integer", - "format": "int64" - }, - "key_code_hash": { - "description": "The key code hash of the ticket.", - "type": "string", - "maxLength": 32 - }, - "priority": { - "description": "The priority of the ticket.", - "type": "string", - "maxLength": 32 - }, - "severity": { - "description": "The severity of the ticket.", - "type": "string", - "maxLength": 32 - }, - "resolution": { - "description": "The resolution of the ticket.", - "type": "string", - "maxLength": 32 - }, - "step": { - "description": "The step of the ticket.", - "type": "string", - "maxLength": 32 - }, - "state": { - "description": "The state of the ticket.", - "type": "string", - "maxLength": 32 - }, - "workflow_type": { - "description": "The workflow type of the ticket.", - "type": "string", - "maxLength": 128 - }, - "points": { - "description": "The points of the ticket.", - "type": "integer", - "format": "int32" - }, - "story": { - "description": "The story of the ticket. Allows HTML.", - "type": "string", - "nullable": true - }, - "criteria": { - "description": "The criteria of the ticket. Allows HTML.", + "description": "The summary of the team. Allows HTML.", "type": "string", "nullable": true }, - "reproducibility": { - "description": "The reproducibility of the ticket.", - "type": "number", - "nullable": true - }, "assets": { "description": "JSON: assets", "type": "object", @@ -15519,14 +17815,14 @@ }, "responses": { "200": { - "description": "The created tickets.", + "description": "The created team.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Ticket" + "$ref": "#/components/schemas/Team" }, "meta": { "type": "object" @@ -15552,11 +17848,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -15565,17 +17861,106 @@ } } } + }, + "423": { + "description": "The team is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/teams/index": { + "post": { + "tags": [ + "Team" + ], + "summary": "Get teams from the index using POST.", + "operationId": "post_teams_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Team index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Team.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Team type of this Team.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the teams from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Team" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/tickets/lock/{id}": { + "/resource/matrix/teams/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The ticket id.", + "description": "The team id.", "schema": { "type": "string", "format": "uuid" @@ -15584,13 +17969,13 @@ ], "delete": { "tags": [ - "Ticket" + "Team" ], - "summary": "Unlock a ticket by id.", - "operationId": "lock_ticket", + "summary": "Delete a team by id.", + "operationId": "unlock_team", "responses": { "204": { - "description": "The ticket has been unlocked." + "description": "The team has been unlocked." }, "401": { "description": "Unauthorized" @@ -15602,20 +17987,20 @@ }, "put": { "tags": [ - "Ticket" + "Team" ], - "summary": "Lock a ticket by id.", - "operationId": "unlock_ticket", + "summary": "Lock a team by ID.", + "operationId": "lock_team", "responses": { "200": { - "description": "The unlocked ticket.", + "description": "The unlocked team.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Ticket" + "$ref": "#/components/schemas/Team" }, "meta": { "type": "object" @@ -15634,13 +18019,13 @@ } } }, - "/api/tickets/restore/{id}": { + "/resource/matrix/teams/restore/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The ticket id.", + "description": "The team id.", "schema": { "type": "string", "format": "uuid" @@ -15649,20 +18034,20 @@ ], "put": { "tags": [ - "Ticket" + "Team" ], - "summary": "Restore a ticket by id.", - "operationId": "restore_ticket", + "summary": "Restore a team from the trash by ID.", + "operationId": "restore_team", "responses": { "200": { - "description": "The restored ticket.", + "description": "The restored team.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Ticket" + "$ref": "#/components/schemas/Team" }, "meta": { "type": "object" @@ -15681,13 +18066,54 @@ } } }, - "/api/versions/{id}": { - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "description": "The version id.", + "/resource/matrix/teams/create": { + "get": { + "tags": [ + "Team" + ], + "summary": "Create a team form.", + "operationId": "create_team", + "responses": { + "200": { + "description": "The create team information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Team" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a team
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/teams/edit/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The team id.", "schema": { "type": "string", "format": "uuid" @@ -15696,20 +18122,73 @@ ], "get": { "tags": [ - "Version" + "Team" ], - "summary": "Get a version by id.", - "operationId": "get_version", + "summary": "Edit a team form.", + "operationId": "edit_team", "responses": { "200": { - "description": "The version data.", + "description": "The edit team information (JSON) or (HTML).", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Version" + "$ref": "#/components/schemas/Team" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a team
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/tickets/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The ticket id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Ticket" + ], + "summary": "Get a ticket by id.", + "operationId": "get_ticket", + "responses": { + "200": { + "description": "The ticket data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Ticket" }, "meta": { "type": "object" @@ -15729,13 +18208,13 @@ }, "delete": { "tags": [ - "Version" + "Ticket" ], - "summary": "Delete a version by id.", - "operationId": "delete_version", + "summary": "Delete a ticket by id.", + "operationId": "delete_ticket", "responses": { "204": { - "description": "The version has been deleted." + "description": "The ticket has been deleted." }, "401": { "description": "Unauthorized" @@ -15744,204 +18223,234 @@ "description": "Forbidden" }, "423": { - "description": "The version is locked. Unlock to delete." + "description": "The ticket is locked. Unlock to delete." } } }, "patch": { "tags": [ - "Version" + "Ticket" ], - "summary": "Update a version by id.", - "operationId": "patch_version", + "summary": "Patch a ticket by id.", + "operationId": "patch_ticket", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Version fillable properties.", + "description": "The Matrix Ticket fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this version.", + "ticket_type": { + "description": "The ticket type of this ticket.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this version.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this ticket.", "type": "string", "format": "uuid", "nullable": true }, - "version_type": { - "description": "The version type of this version.", + "parent_id": { + "description": "ID: a parent of this ticket.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this version.", + "description": "Foreign key: links a backlog to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this version.", + "description": "Foreign key: links a board to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this version.", + "description": "Foreign key: links an epic to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this version.", + "description": "Foreign key: links a flow to this ticket.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this version.", + "description": "Foreign key: links a milestone to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this version.", + "description": "Foreign key: links a note to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this version.", + "description": "Foreign key: links a project to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this version.", + "description": "Foreign key: links a release to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this version.", + "description": "Foreign key: links a roadmap to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this version.", + "description": "Foreign key: links a source to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this version.", + "description": "Foreign key: links a sprint to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this version.", + "description": "Foreign key: links a tag to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this version.", + "description": "Foreign key: links a team to this ticket.", "type": "string", "format": "uuid", "nullable": true }, - "ticket_id": { - "description": "Foreign key: links a ticket to this version.", + "version_id": { + "description": "Foreign key: links a version to this ticket.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this version.", + "completed_by_id": { + "description": "Foreign key: links a completed by user to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this version.", + "duplicate_id": { + "description": "Foreign key: links a duplicate to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "end_at": { - "description": "The end at date for this version.", + "fixed_by_id": { + "description": "Foreign key: links a fixed by user to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_end_at": { - "description": "The planned end at date for this version.", + "reported_by_id": { + "description": "Foreign key: links a reported by user to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", + "nullable": true + }, + "version_fixed_id": { + "description": "Foreign key: links a version fixed to this ticket.", + "type": "string", + "format": "uuid", "nullable": true }, "canceled_at": { - "description": "The canceled at date for this version.", + "description": "The canceled at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "closed_at": { - "description": "The closed at date for this version.", + "description": "The closed at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "embargo_at": { - "description": "The embargo at date for this version.", + "description": "The embargo at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "fixed_at": { - "description": "The fixed at date for this version.", + "description": "The fixed at date for this ticket.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_end_at": { + "description": "The planned end at date for this ticket.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "postponed_at": { - "description": "The postponed at date for this version.", + "description": "The postponed at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "published_at": { - "description": "The published at date for this version.", + "description": "The published at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this version.", + "resolved_at": { + "description": "The resolved at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "resumed_at": { - "description": "The resumed at date for this version.", + "description": "The resumed at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this version.", + "suspended_at": { + "description": "The suspended at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this version.", + "timer_end_at": { + "description": "The timer end at date for this ticket.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this ticket.", "type": "string", "format": "date-time", "nullable": true @@ -15983,7 +18492,7 @@ "type": "boolean" }, "status": { - "description": "The status of the version.", + "description": "The status of the ticket.", "type": "integer", "format": "int64" }, @@ -16013,7 +18522,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the version.", + "description": "The ui of the ticket.", "type": "object", "nullable": true }, @@ -16021,6 +18530,34 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "duplicate": { + "description": "Flags: duplicate", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, + "fixed": { + "description": "Flags: fixed", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -16041,6 +18578,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -16049,10 +18590,22 @@ "description": "Flags: published", "type": "boolean" }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, + "resolved": { + "description": "Flags: resolved", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, "suspended": { "description": "Flags: suspended", "type": "boolean" @@ -16061,47 +18614,144 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the ticket.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the version.", + "description": "The label of the ticket.", "type": "string", "maxLength": 128 }, - "byline": { - "description": "The byline of the version.", - "type": "string", + "title": { + "description": "The title of the ticket.", + "type": "string", + "maxLength": 255 + }, + "byline": { + "description": "The byline of the ticket.", + "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the version.", + "description": "The slug of the ticket.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the version.", + "description": "The url of the ticket.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the version.", + "description": "The description of the ticket.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the version.", + "description": "The introduction of the ticket.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the version. Allows HTML.", + "description": "The content of the ticket. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the version. Allows HTML.", + "description": "The summary of the ticket. Allows HTML.", + "type": "string", + "nullable": true + }, + "handler": { + "description": "The handler of the ticket.", + "type": "string", + "nullable": true + }, + "key": { + "description": "The key of the ticket.", + "type": "string", + "maxLength": 32, + "nullable": true + }, + "code": { + "description": "The code of the ticket.", + "type": "integer", + "format": "int64", + "nullable": true + }, + "key_code_hash": { + "description": "The key code hash of the ticket.", + "type": "string", + "nullable": true + }, + "priority": { + "description": "The priority of the ticket.", + "type": "string", + "nullable": true + }, + "severity": { + "description": "The severity of the ticket.", + "type": "string", + "nullable": true + }, + "resolution": { + "description": "The resolution of the ticket.", + "type": "string", + "nullable": true + }, + "step": { + "description": "The step of the ticket.", + "type": "string", + "nullable": true + }, + "state": { + "description": "The state of the ticket.", + "type": "string", + "nullable": true + }, + "workflow_type": { + "description": "The workflow type of the ticket.", + "type": "string", + "nullable": true + }, + "points": { + "description": "The points of the ticket.", + "type": "integer", + "format": "int64" + }, + "actual": { + "description": "The actual of the ticket.", + "type": "string", + "nullable": true + }, + "expected": { + "description": "The expected of the ticket.", + "type": "string", + "nullable": true + }, + "story": { + "description": "The story of the ticket.", + "type": "string", + "nullable": true + }, + "steps": { + "description": "The steps of the ticket.", "type": "string", "nullable": true }, + "criteria": { + "description": "The criteria of the ticket.", + "type": "string", + "nullable": true + }, + "reproducibility": { + "description": "The reproducibility of the ticket.", + "type": "number", + "nullable": true + }, "assets": { "description": "JSON: assets", "type": "object", @@ -16122,6 +18772,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -16149,14 +18804,14 @@ }, "responses": { "200": { - "description": "The updated version.", + "description": "The ticket has been patched.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Version" + "$ref": "#/components/schemas/Ticket" }, "meta": { "type": "object" @@ -16182,11 +18837,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -16195,20 +18850,23 @@ } } } + }, + "423": { + "description": "The ticket is locked. Unlock to patch." } } } }, - "/api/versions": { + "/resource/matrix/tickets": { "get": { "tags": [ - "Version" + "Ticket" ], - "summary": "Get versions from the index.", - "operationId": "get_versions_index", + "summary": "Get tickets from the index.", + "operationId": "get_tickets_index", "responses": { "200": { - "description": "Get the versions from the index.", + "description": "Get the tickets from the index.", "content": { "application/json": { "schema": { @@ -16217,7 +18875,7 @@ "data": { "type": "array", "items": { - "$ref": "#/components/schemas/Version" + "$ref": "#/components/schemas/Ticket" } }, "meta": { @@ -16238,198 +18896,228 @@ }, "post": { "tags": [ - "Version" + "Ticket" ], - "summary": "Create a version.", - "operationId": "post_version", + "summary": "Create a ticket.", + "operationId": "post_ticket", "requestBody": { "content": { "application/json": { "schema": { - "description": "The Matrix Version fillable properties.", + "description": "The Matrix Ticket fillable properties.", "type": "object", "properties": { - "owned_by_id": { - "description": "Foreign key: links an owned by user to this version.", + "ticket_type": { + "description": "The ticket type of this ticket.", "type": "string", - "format": "uuid", "nullable": true }, - "parent_id": { - "description": "Foreign key: links a parent to this version.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this ticket.", "type": "string", "format": "uuid", "nullable": true }, - "version_type": { - "description": "The version type of this version.", + "parent_id": { + "description": "ID: a parent of this ticket.", "type": "string", + "format": "uuid", "nullable": true }, "backlog_id": { - "description": "Foreign key: links a backlog to this version.", + "description": "Foreign key: links a backlog to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "board_id": { - "description": "Foreign key: links a board to this version.", + "description": "Foreign key: links a board to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "epic_id": { - "description": "Foreign key: links an epic to this version.", + "description": "Foreign key: links an epic to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "flow_id": { - "description": "Foreign key: links a flow to this version.", + "description": "Foreign key: links a flow to this ticket.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "milestone_id": { - "description": "Foreign key: links a milestone to this version.", + "description": "Foreign key: links a milestone to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this version.", + "description": "Foreign key: links a note to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "project_id": { - "description": "Foreign key: links a project to this version.", + "description": "Foreign key: links a project to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "release_id": { - "description": "Foreign key: links a release to this version.", + "description": "Foreign key: links a release to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "roadmap_id": { - "description": "Foreign key: links a roadmap to this version.", + "description": "Foreign key: links a roadmap to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "source_id": { - "description": "Foreign key: links a source to this version.", + "description": "Foreign key: links a source to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "sprint_id": { - "description": "Foreign key: links a sprint to this version.", + "description": "Foreign key: links a sprint to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this version.", + "description": "Foreign key: links a tag to this ticket.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this version.", + "description": "Foreign key: links a team to this ticket.", "type": "string", "format": "uuid", "nullable": true }, - "ticket_id": { - "description": "Foreign key: links a ticket to this version.", + "version_id": { + "description": "Foreign key: links a version to this ticket.", "type": "string", "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this version.", + "completed_by_id": { + "description": "Foreign key: links a completed by user to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this version.", + "duplicate_id": { + "description": "Foreign key: links a duplicate to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "end_at": { - "description": "The end at date for this version.", + "fixed_by_id": { + "description": "Foreign key: links a fixed by user to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_end_at": { - "description": "The planned end at date for this version.", + "reported_by_id": { + "description": "Foreign key: links a reported by user to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", + "nullable": true + }, + "version_fixed_id": { + "description": "Foreign key: links a version fixed to this ticket.", + "type": "string", + "format": "uuid", "nullable": true }, "canceled_at": { - "description": "The canceled at date for this version.", + "description": "The canceled at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "closed_at": { - "description": "The closed at date for this version.", + "description": "The closed at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "embargo_at": { - "description": "The embargo at date for this version.", + "description": "The embargo at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "fixed_at": { - "description": "The fixed at date for this version.", + "description": "The fixed at date for this ticket.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_end_at": { + "description": "The planned end at date for this ticket.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "postponed_at": { - "description": "The postponed at date for this version.", + "description": "The postponed at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "published_at": { - "description": "The published at date for this version.", + "description": "The published at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this version.", + "resolved_at": { + "description": "The resolved at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, "resumed_at": { - "description": "The resumed at date for this version.", + "description": "The resumed at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this version.", + "suspended_at": { + "description": "The suspended at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this version.", + "timer_end_at": { + "description": "The timer end at date for this ticket.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this ticket.", "type": "string", "format": "date-time", "nullable": true @@ -16471,7 +19159,7 @@ "type": "boolean" }, "status": { - "description": "The status of the version.", + "description": "The status of the ticket.", "type": "integer", "format": "int64" }, @@ -16501,7 +19189,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the version.", + "description": "The ui of the ticket.", "type": "object", "nullable": true }, @@ -16509,6 +19197,34 @@ "description": "Flags: active", "type": "boolean" }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "duplicate": { + "description": "Flags: duplicate", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, + "fixed": { + "description": "Flags: fixed", + "type": "boolean" + }, "flagged": { "description": "Flags: flagged", "type": "boolean" @@ -16529,6 +19245,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -16537,11 +19257,23 @@ "description": "Flags: published", "type": "boolean" }, - "retired": { - "description": "Flags: retired", + "released": { + "description": "Flags: released", "type": "boolean" }, - "suspended": { + "resolved": { + "description": "Flags: resolved", + "type": "boolean" + }, + "retired": { + "description": "Flags: retired", + "type": "boolean" + }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, + "suspended": { "description": "Flags: suspended", "type": "boolean" }, @@ -16549,47 +19281,144 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the ticket.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the version.", + "description": "The label of the ticket.", "type": "string", "maxLength": 128 }, + "title": { + "description": "The title of the ticket.", + "type": "string", + "maxLength": 255 + }, "byline": { - "description": "The byline of the version.", + "description": "The byline of the ticket.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the version.", + "description": "The slug of the ticket.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the version.", + "description": "The url of the ticket.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the version.", + "description": "The description of the ticket.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the version.", + "description": "The introduction of the ticket.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the version. Allows HTML.", + "description": "The content of the ticket. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the version. Allows HTML.", + "description": "The summary of the ticket. Allows HTML.", + "type": "string", + "nullable": true + }, + "handler": { + "description": "The handler of the ticket.", + "type": "string", + "nullable": true + }, + "key": { + "description": "The key of the ticket.", + "type": "string", + "maxLength": 32, + "nullable": true + }, + "code": { + "description": "The code of the ticket.", + "type": "integer", + "format": "int64", + "nullable": true + }, + "key_code_hash": { + "description": "The key code hash of the ticket.", + "type": "string", + "nullable": true + }, + "priority": { + "description": "The priority of the ticket.", + "type": "string", + "nullable": true + }, + "severity": { + "description": "The severity of the ticket.", + "type": "string", + "nullable": true + }, + "resolution": { + "description": "The resolution of the ticket.", + "type": "string", + "nullable": true + }, + "step": { + "description": "The step of the ticket.", + "type": "string", + "nullable": true + }, + "state": { + "description": "The state of the ticket.", + "type": "string", + "nullable": true + }, + "workflow_type": { + "description": "The workflow type of the ticket.", + "type": "string", + "nullable": true + }, + "points": { + "description": "The points of the ticket.", + "type": "integer", + "format": "int64" + }, + "actual": { + "description": "The actual of the ticket.", + "type": "string", + "nullable": true + }, + "expected": { + "description": "The expected of the ticket.", "type": "string", "nullable": true }, + "story": { + "description": "The story of the ticket.", + "type": "string", + "nullable": true + }, + "steps": { + "description": "The steps of the ticket.", + "type": "string", + "nullable": true + }, + "criteria": { + "description": "The criteria of the ticket.", + "type": "string", + "nullable": true + }, + "reproducibility": { + "description": "The reproducibility of the ticket.", + "type": "number", + "nullable": true + }, "assets": { "description": "JSON: assets", "type": "object", @@ -16610,6 +19439,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -16637,14 +19471,14 @@ }, "responses": { "200": { - "description": "The created versions.", + "description": "The created ticket.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/Version" + "$ref": "#/components/schemas/Ticket" }, "meta": { "type": "object" @@ -16670,11 +19504,11 @@ "errors": { "type": "object", "properties": { - "label": { + "title": { "type": "array", "items": { "type": "string", - "example": "The label field is required." + "example": "The title field is required." } } } @@ -16683,17 +19517,106 @@ } } } + }, + "423": { + "description": "The ticket is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/tickets/index": { + "post": { + "tags": [ + "Ticket" + ], + "summary": "Get tickets from the index using POST.", + "operationId": "post_tickets_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Ticket index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Ticket.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Ticket type of this Ticket.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the tickets from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Ticket" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" } } } }, - "/api/versions/lock/{id}": { + "/resource/matrix/tickets/lock/{id}": { "parameters": [ { "in": "path", "name": "id", "required": true, - "description": "The version id.", + "description": "The ticket id.", "schema": { "type": "string", "format": "uuid" @@ -16702,108 +19625,1906 @@ ], "delete": { "tags": [ - "Version" + "Ticket" ], - "summary": "Unlock a version by id.", - "operationId": "lock_version", + "summary": "Delete a ticket by id.", + "operationId": "unlock_ticket", "responses": { "204": { - "description": "The version has been unlocked." + "description": "The ticket has been unlocked." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + }, + "put": { + "tags": [ + "Ticket" + ], + "summary": "Lock a ticket by ID.", + "operationId": "lock_ticket", + "responses": { + "200": { + "description": "The unlocked ticket.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Ticket" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/tickets/restore/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The ticket id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "put": { + "tags": [ + "Ticket" + ], + "summary": "Restore a ticket from the trash by ID.", + "operationId": "restore_ticket", + "responses": { + "200": { + "description": "The restored ticket.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Ticket" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/tickets/create": { + "get": { + "tags": [ + "Ticket" + ], + "summary": "Create a ticket form.", + "operationId": "create_ticket", + "responses": { + "200": { + "description": "The create ticket information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Ticket" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a ticket
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/tickets/edit/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The ticket id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Ticket" + ], + "summary": "Edit a ticket form.", + "operationId": "edit_ticket", + "responses": { + "200": { + "description": "The edit ticket information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Ticket" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a ticket
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/versions/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The version id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Version" + ], + "summary": "Get a version by id.", + "operationId": "get_version", + "responses": { + "200": { + "description": "The version data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Version" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + }, + "delete": { + "tags": [ + "Version" + ], + "summary": "Delete a version by id.", + "operationId": "delete_version", + "responses": { + "204": { + "description": "The version has been deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "423": { + "description": "The version is locked. Unlock to delete." + } + } + }, + "patch": { + "tags": [ + "Version" + ], + "summary": "Patch a version by id.", + "operationId": "patch_version", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Version fillable properties.", + "type": "object", + "properties": { + "version_type": { + "description": "The version type of this version.", + "type": "string", + "nullable": true + }, + "owned_by_id": { + "description": "Foreign key: links an owned by user to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "parent_id": { + "description": "ID: a parent of this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "project_id": { + "description": "Foreign key: links a project to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "tag_id": { + "description": "Foreign key: links a tag to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "team_id": { + "description": "Foreign key: links a team to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "ticket_id": { + "description": "Foreign key: links a ticket to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "canceled_at": { + "description": "The canceled at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "closed_at": { + "description": "The closed at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "embargo_at": { + "description": "The embargo at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_end_at": { + "description": "The planned end at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "postponed_at": { + "description": "The postponed at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "published_at": { + "description": "The published at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "resolved_at": { + "description": "The resolved at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "resumed_at": { + "description": "The resumed at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "suspended_at": { + "description": "The suspended at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_end_at": { + "description": "The timer end at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "gids": { + "description": "Permissions: gids", + "type": "integer", + "format": "int64" + }, + "po": { + "description": "Permissions: po", + "type": "integer", + "format": "int32" + }, + "pg": { + "description": "Permissions: pg", + "type": "integer", + "format": "int32" + }, + "pw": { + "description": "Permissions: pw", + "type": "integer", + "format": "int32" + }, + "only_admin": { + "description": "Permissions: only admin", + "type": "boolean" + }, + "only_user": { + "description": "Permissions: only user", + "type": "boolean" + }, + "only_guest": { + "description": "Permissions: only guest", + "type": "boolean" + }, + "allow_public": { + "description": "Permissions: allow public", + "type": "boolean" + }, + "status": { + "description": "The status of the version.", + "type": "integer", + "format": "int64" + }, + "rank": { + "description": "Status: rank", + "type": "integer", + "format": "int64" + }, + "size": { + "description": "Status: size", + "type": "integer", + "format": "int64" + }, + "icon": { + "description": "Ui: icon", + "type": "string", + "maxLength": 128 + }, + "image": { + "description": "Ui: image", + "type": "string", + "maxLength": 512 + }, + "avatar": { + "description": "Ui: avatar", + "type": "string", + "maxLength": 512 + }, + "ui": { + "description": "The ui of the version.", + "type": "object", + "nullable": true + }, + "active": { + "description": "Flags: active", + "type": "boolean" + }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, + "fixed": { + "description": "Flags: fixed", + "type": "boolean" + }, + "flagged": { + "description": "Flags: flagged", + "type": "boolean" + }, + "internal": { + "description": "Flags: internal", + "type": "boolean" + }, + "locked": { + "description": "Flags: locked", + "type": "boolean" + }, + "pending": { + "description": "Flags: pending", + "type": "boolean" + }, + "planned": { + "description": "Flags: planned", + "type": "boolean" + }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, + "problem": { + "description": "Flags: problem", + "type": "boolean" + }, + "published": { + "description": "Flags: published", + "type": "boolean" + }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, + "resolved": { + "description": "Flags: resolved", + "type": "boolean" + }, + "retired": { + "description": "Flags: retired", + "type": "boolean" + }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, + "suspended": { + "description": "Flags: suspended", + "type": "boolean" + }, + "unknown": { + "description": "Flags: unknown", + "type": "boolean" + }, + "locale": { + "description": "The locale of the version.", + "type": "string", + "maxLength": 255 + }, + "label": { + "description": "The label of the version.", + "type": "string", + "maxLength": 128 + }, + "title": { + "description": "The title of the version.", + "type": "string", + "maxLength": 255 + }, + "byline": { + "description": "The byline of the version.", + "type": "string", + "maxLength": 255 + }, + "slug": { + "description": "The slug of the version.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "url": { + "description": "The url of the version.", + "type": "string", + "maxLength": 512 + }, + "description": { + "description": "The description of the version.", + "type": "string", + "maxLength": 512 + }, + "introduction": { + "description": "The introduction of the version.", + "type": "string", + "maxLength": 512 + }, + "content": { + "description": "The content of the version. Allows HTML.", + "type": "string", + "nullable": true + }, + "summary": { + "description": "The summary of the version. Allows HTML.", + "type": "string", + "nullable": true + }, + "assets": { + "description": "JSON: assets", + "type": "object", + "nullable": true + }, + "meta": { + "description": "JSON: meta", + "type": "object", + "nullable": true + }, + "options": { + "description": "JSON: options", + "type": "object", + "nullable": true + }, + "sources": { + "description": "JSON: sources", + "type": "object", + "nullable": true + } + } + } + } + } + }, + "responses": { + "200": { + "description": "The version has been patched.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Version" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "422": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "object", + "properties": { + "title": { + "type": "array", + "items": { + "type": "string", + "example": "The title field is required." + } + } + } + } + } + } + } + } + }, + "423": { + "description": "The version is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/versions": { + "get": { + "tags": [ + "Version" + ], + "summary": "Get versions from the index.", + "operationId": "get_versions_index", + "responses": { + "200": { + "description": "Get the versions from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Version" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + }, + "post": { + "tags": [ + "Version" + ], + "summary": "Create a version.", + "operationId": "post_version", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Version fillable properties.", + "type": "object", + "properties": { + "version_type": { + "description": "The version type of this version.", + "type": "string", + "nullable": true + }, + "owned_by_id": { + "description": "Foreign key: links an owned by user to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "parent_id": { + "description": "ID: a parent of this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "project_id": { + "description": "Foreign key: links a project to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "tag_id": { + "description": "Foreign key: links a tag to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "team_id": { + "description": "Foreign key: links a team to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "ticket_id": { + "description": "Foreign key: links a ticket to this version.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "canceled_at": { + "description": "The canceled at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "closed_at": { + "description": "The closed at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "embargo_at": { + "description": "The embargo at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_end_at": { + "description": "The planned end at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "postponed_at": { + "description": "The postponed at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "published_at": { + "description": "The published at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "resolved_at": { + "description": "The resolved at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "resumed_at": { + "description": "The resumed at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "suspended_at": { + "description": "The suspended at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_end_at": { + "description": "The timer end at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "gids": { + "description": "Permissions: gids", + "type": "integer", + "format": "int64" + }, + "po": { + "description": "Permissions: po", + "type": "integer", + "format": "int32" + }, + "pg": { + "description": "Permissions: pg", + "type": "integer", + "format": "int32" + }, + "pw": { + "description": "Permissions: pw", + "type": "integer", + "format": "int32" + }, + "only_admin": { + "description": "Permissions: only admin", + "type": "boolean" + }, + "only_user": { + "description": "Permissions: only user", + "type": "boolean" + }, + "only_guest": { + "description": "Permissions: only guest", + "type": "boolean" + }, + "allow_public": { + "description": "Permissions: allow public", + "type": "boolean" + }, + "status": { + "description": "The status of the version.", + "type": "integer", + "format": "int64" + }, + "rank": { + "description": "Status: rank", + "type": "integer", + "format": "int64" + }, + "size": { + "description": "Status: size", + "type": "integer", + "format": "int64" + }, + "icon": { + "description": "Ui: icon", + "type": "string", + "maxLength": 128 + }, + "image": { + "description": "Ui: image", + "type": "string", + "maxLength": 512 + }, + "avatar": { + "description": "Ui: avatar", + "type": "string", + "maxLength": 512 + }, + "ui": { + "description": "The ui of the version.", + "type": "object", + "nullable": true + }, + "active": { + "description": "Flags: active", + "type": "boolean" + }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, + "fixed": { + "description": "Flags: fixed", + "type": "boolean" + }, + "flagged": { + "description": "Flags: flagged", + "type": "boolean" + }, + "internal": { + "description": "Flags: internal", + "type": "boolean" + }, + "locked": { + "description": "Flags: locked", + "type": "boolean" + }, + "pending": { + "description": "Flags: pending", + "type": "boolean" + }, + "planned": { + "description": "Flags: planned", + "type": "boolean" + }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, + "problem": { + "description": "Flags: problem", + "type": "boolean" + }, + "published": { + "description": "Flags: published", + "type": "boolean" + }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, + "resolved": { + "description": "Flags: resolved", + "type": "boolean" + }, + "retired": { + "description": "Flags: retired", + "type": "boolean" + }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, + "suspended": { + "description": "Flags: suspended", + "type": "boolean" + }, + "unknown": { + "description": "Flags: unknown", + "type": "boolean" + }, + "locale": { + "description": "The locale of the version.", + "type": "string", + "maxLength": 255 + }, + "label": { + "description": "The label of the version.", + "type": "string", + "maxLength": 128 + }, + "title": { + "description": "The title of the version.", + "type": "string", + "maxLength": 255 + }, + "byline": { + "description": "The byline of the version.", + "type": "string", + "maxLength": 255 + }, + "slug": { + "description": "The slug of the version.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "url": { + "description": "The url of the version.", + "type": "string", + "maxLength": 512 + }, + "description": { + "description": "The description of the version.", + "type": "string", + "maxLength": 512 + }, + "introduction": { + "description": "The introduction of the version.", + "type": "string", + "maxLength": 512 + }, + "content": { + "description": "The content of the version. Allows HTML.", + "type": "string", + "nullable": true + }, + "summary": { + "description": "The summary of the version. Allows HTML.", + "type": "string", + "nullable": true + }, + "assets": { + "description": "JSON: assets", + "type": "object", + "nullable": true + }, + "meta": { + "description": "JSON: meta", + "type": "object", + "nullable": true + }, + "options": { + "description": "JSON: options", + "type": "object", + "nullable": true + }, + "sources": { + "description": "JSON: sources", + "type": "object", + "nullable": true + } + } + } + } + } + }, + "responses": { + "200": { + "description": "The created version.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Version" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "422": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "object", + "properties": { + "title": { + "type": "array", + "items": { + "type": "string", + "example": "The title field is required." + } + } + } + } + } + } + } + } + }, + "423": { + "description": "The version is locked. Unlock to patch." + } + } + } + }, + "/resource/matrix/versions/index": { + "post": { + "tags": [ + "Version" + ], + "summary": "Get versions from the index using POST.", + "operationId": "post_versions_index", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "The Matrix Version index form.", + "type": "object", + "properties": { + "perPage": { + "description": "Specify the number of records to display per page for pagination.", + "type": "integer", + "example": 10 + }, + "page": { + "description": "Select a page for pagination.", + "type": "integer", + "example": 1 + }, + "offset": { + "description": "Select the zero-based index offset for pagination.", + "type": "integer", + "example": 0 + }, + "filter": { + "description": "Filter options for the Version.", + "type": "object", + "properties": { + "trash": { + "description": "Filter trash options", + "type": "integer", + "example": 1, + "enum": [ + "with", + "only", + "" + ] + }, + "page_type": { + "description": "The Version type of this Version.", + "type": "integer", + "example": 1 + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Get the versions from the index.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Version" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/versions/lock/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The version id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "delete": { + "tags": [ + "Version" + ], + "summary": "Delete a version by id.", + "operationId": "unlock_version", + "responses": { + "204": { + "description": "The version has been unlocked." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + }, + "put": { + "tags": [ + "Version" + ], + "summary": "Lock a version by ID.", + "operationId": "lock_version", + "responses": { + "200": { + "description": "The unlocked version.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Version" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/versions/restore/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The version id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "put": { + "tags": [ + "Version" + ], + "summary": "Restore a version from the trash by ID.", + "operationId": "restore_version", + "responses": { + "200": { + "description": "The restored version.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Version" + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/versions/create": { + "get": { + "tags": [ + "Version" + ], + "summary": "Create a version form.", + "operationId": "create_version", + "responses": { + "200": { + "description": "The create version information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Version" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Create a version
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/resource/matrix/versions/edit/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "description": "The version id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "get": { + "tags": [ + "Version" + ], + "summary": "Edit a version form.", + "operationId": "edit_version", + "responses": { + "200": { + "description": "The edit version information (JSON) or (HTML).", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Version" + }, + "meta": { + "type": "object" + } + } + } + }, + "text/html": { + "schema": { + "type": "string", + "example": "
Edit a version
" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + } + }, + "components": { + "schemas": { + "Backlog": { + "description": "The Matrix backlog model.", + "type": "object", + "properties": { + "id": { + "description": "The primary key.", + "type": "string", + "format": "uuid", + "readOnly": true + }, + "backlog_type": { + "description": "The backlog type of this backlog.", + "type": "string", + "nullable": true + }, + "created_by_id": { + "description": "Foreign key: links a created by user to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "modified_by_id": { + "description": "Foreign key: links a modified by user to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "owned_by_id": { + "description": "Foreign key: links an owned by user to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "parent_id": { + "description": "ID: a parent of this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "board_id": { + "description": "Foreign key: links a board to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "epic_id": { + "description": "Foreign key: links an epic to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "flow_id": { + "description": "Foreign key: links a flow to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "matrix_id": { + "description": "Foreign key: links a matrix to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "milestone_id": { + "description": "Foreign key: links a milestone to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "note_id": { + "description": "Foreign key: links a note to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "project_id": { + "description": "Foreign key: links a project to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "release_id": { + "description": "Foreign key: links a release to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "roadmap_id": { + "description": "Foreign key: links a roadmap to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "source_id": { + "description": "Foreign key: links a source to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "sprint_id": { + "description": "Foreign key: links a sprint to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "tag_id": { + "description": "Foreign key: links a tag to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "team_id": { + "description": "Foreign key: links a team to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "ticket_id": { + "description": "Foreign key: links a ticket to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "version_id": { + "description": "Foreign key: links a version to this backlog.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "created_at": { + "description": "Denotes the date and time, the backlog was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "description": "Denotes the date and time, the backlog was last modified.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "deleted_at": { + "description": "Denotes the date and time, the backlog was put in the trash.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "canceled_at": { + "description": "The canceled at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "closed_at": { + "description": "The closed at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "embargo_at": { + "description": "The embargo at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_end_at": { + "description": "The planned end at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "postponed_at": { + "description": "The postponed at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "published_at": { + "description": "The published at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "resolved_at": { + "description": "The resolved at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "resumed_at": { + "description": "The resumed at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "suspended_at": { + "description": "The suspended at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_end_at": { + "description": "The timer end at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this backlog.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "gids": { + "description": "Permissions: gids", + "type": "integer", + "format": "int64" + }, + "po": { + "description": "Permissions: po", + "type": "integer", + "format": "int32" + }, + "pg": { + "description": "Permissions: pg", + "type": "integer", + "format": "int32" + }, + "pw": { + "description": "Permissions: pw", + "type": "integer", + "format": "int32" + }, + "only_admin": { + "description": "Permissions: only admin", + "type": "boolean" + }, + "only_user": { + "description": "Permissions: only user", + "type": "boolean" + }, + "only_guest": { + "description": "Permissions: only guest", + "type": "boolean" + }, + "allow_public": { + "description": "Permissions: allow public", + "type": "boolean" + }, + "status": { + "description": "The status of the backlog.", + "type": "integer", + "format": "int64" + }, + "rank": { + "description": "Status: rank", + "type": "integer", + "format": "int64" + }, + "size": { + "description": "Status: size", + "type": "integer", + "format": "int64" + }, + "icon": { + "description": "Ui: icon", + "type": "string", + "maxLength": 128 + }, + "image": { + "description": "Ui: image", + "type": "string", + "maxLength": 512 + }, + "avatar": { + "description": "Ui: avatar", + "type": "string", + "maxLength": 512 + }, + "ui": { + "description": "The ui of the backlog.", + "type": "object", + "nullable": true + }, + "active": { + "description": "Flags: active", + "type": "boolean" + }, + "canceled": { + "description": "Flags: canceled", + "type": "boolean" + }, + "closed": { + "description": "Flags: closed", + "type": "boolean" + }, + "completed": { + "description": "Flags: completed", + "type": "boolean" + }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, + "flagged": { + "description": "Flags: flagged", + "type": "boolean" + }, + "internal": { + "description": "Flags: internal", + "type": "boolean" + }, + "locked": { + "description": "Flags: locked", + "type": "boolean" + }, + "pending": { + "description": "Flags: pending", + "type": "boolean" + }, + "planned": { + "description": "Flags: planned", + "type": "boolean" + }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, + "problem": { + "description": "Flags: problem", + "type": "boolean" + }, + "published": { + "description": "Flags: published", + "type": "boolean" + }, + "released": { + "description": "Flags: released", + "type": "boolean" + }, + "retired": { + "description": "Flags: retired", + "type": "boolean" + }, + "special": { + "description": "Flags: special", + "type": "boolean" + }, + "suspended": { + "description": "Flags: suspended", + "type": "boolean" + }, + "unknown": { + "description": "Flags: unknown", + "type": "boolean" + }, + "locale": { + "description": "The locale of the backlog.", + "type": "string", + "maxLength": 255 + }, + "label": { + "description": "The label of the backlog.", + "type": "string", + "maxLength": 128 + }, + "title": { + "description": "The title of the backlog.", + "type": "string", + "maxLength": 255 + }, + "byline": { + "description": "The byline of the backlog.", + "type": "string", + "maxLength": 255 + }, + "slug": { + "description": "The slug of the backlog.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "url": { + "description": "The url of the backlog.", + "type": "string", + "maxLength": 512 + }, + "description": { + "description": "The description of the backlog.", + "type": "string", + "maxLength": 512 + }, + "introduction": { + "description": "The introduction of the backlog.", + "type": "string", + "maxLength": 512 + }, + "content": { + "description": "The content of the backlog. Allows HTML.", + "type": "string", + "nullable": true + }, + "summary": { + "description": "The summary of the backlog. Allows HTML.", + "type": "string", + "nullable": true + }, + "assets": { + "description": "JSON: assets", + "type": "object", + "nullable": true }, - "401": { - "description": "Unauthorized" + "backlog": { + "description": "JSON: backlog", + "type": "object", + "nullable": true }, - "403": { - "description": "Forbidden" - } - } - }, - "put": { - "tags": [ - "Version" - ], - "summary": "Lock a version by id.", - "operationId": "unlock_version", - "responses": { - "200": { - "description": "The unlocked version.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Version" - }, - "meta": { - "type": "object" - } - } - } - } - } + "board": { + "description": "JSON: board", + "type": "object", + "nullable": true }, - "401": { - "description": "Unauthorized" + "flow": { + "description": "JSON: flow", + "type": "object", + "nullable": true }, - "403": { - "description": "Forbidden" - } - } - } - }, - "/api/versions/restore/{id}": { - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "description": "The version id.", - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "put": { - "tags": [ - "Version" - ], - "summary": "Restore a version by id.", - "operationId": "restore_version", - "responses": { - "200": { - "description": "The restored version.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/Version" - }, - "meta": { - "type": "object" - } - } - } - } - } + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true }, - "401": { - "description": "Unauthorized" + "meta": { + "description": "JSON: meta", + "type": "object", + "nullable": true }, - "403": { - "description": "Forbidden" + "notes": { + "description": "JSON: notes", + "type": "array", + "items": { + "type": "object" + }, + "nullable": true + }, + "options": { + "description": "JSON: options", + "type": "object", + "nullable": true + }, + "roadmap": { + "description": "JSON: roadmap", + "type": "object", + "nullable": true + }, + "sources": { + "description": "JSON: sources", + "type": "object", + "nullable": true } } - } - } - }, - "components": { - "schemas": { + }, "Board": { - "description": "The Matrix Board model.", + "description": "The Matrix board model.", "type": "object", "properties": { "id": { @@ -16812,6 +21533,11 @@ "format": "uuid", "readOnly": true }, + "board_type": { + "description": "The board type of this board.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this board.", "type": "string", @@ -16831,14 +21557,15 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this board.", + "description": "ID: a parent of this board.", "type": "string", "format": "uuid", "nullable": true }, - "board_type": { - "description": "The board type of this board.", + "backlog_id": { + "description": "Foreign key: links a backlog to this board.", "type": "string", + "format": "uuid", "nullable": true }, "epic_id": { @@ -16853,6 +21580,12 @@ "format": "uuid", "nullable": true }, + "matrix_id": { + "description": "Foreign key: links a matrix to this board.", + "type": "string", + "format": "uuid", + "nullable": true + }, "milestone_id": { "description": "Foreign key: links a milestone to this board.", "type": "string", @@ -16937,30 +21670,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this board.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this board.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this board.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this board.", - "type": "string", - "format": "date-time", - "nullable": true - }, "canceled_at": { "description": "The canceled at date for this board.", "type": "string", @@ -16979,8 +21688,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this board.", + "planned_end_at": { + "description": "The planned end at date for this board.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this board.", "type": "string", "format": "date-time", "nullable": true @@ -16997,8 +21712,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this board.", + "resolved_at": { + "description": "The resolved at date for this board.", "type": "string", "format": "date-time", "nullable": true @@ -17009,14 +21724,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this board.", + "suspended_at": { + "description": "The suspended at date for this board.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this board.", + "timer_end_at": { + "description": "The timer end at date for this board.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this board.", "type": "string", "format": "date-time", "nullable": true @@ -17108,12 +21829,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -17136,6 +21857,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -17152,8 +21877,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -17164,6 +21889,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the board.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the board.", "type": "string", @@ -17230,6 +21960,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -17261,7 +21996,7 @@ } }, "Epic": { - "description": "The Matrix Epic model.", + "description": "The Matrix epic model.", "type": "object", "properties": { "id": { @@ -17270,6 +22005,11 @@ "format": "uuid", "readOnly": true }, + "epic_type": { + "description": "The epic type of this epic.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this epic.", "type": "string", @@ -17289,14 +22029,15 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this epic.", + "description": "ID: a parent of this epic.", "type": "string", "format": "uuid", "nullable": true }, - "epic_type": { - "description": "The epic type of this epic.", + "backlog_id": { + "description": "Foreign key: links a backlog to this epic.", "type": "string", + "format": "uuid", "nullable": true }, "board_id": { @@ -17311,6 +22052,12 @@ "format": "uuid", "nullable": true }, + "matrix_id": { + "description": "Foreign key: links a matrix to this epic.", + "type": "string", + "format": "uuid", + "nullable": true + }, "milestone_id": { "description": "Foreign key: links a milestone to this epic.", "type": "string", @@ -17395,30 +22142,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this epic.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this epic.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this epic.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this epic.", - "type": "string", - "format": "date-time", - "nullable": true - }, "canceled_at": { "description": "The canceled at date for this epic.", "type": "string", @@ -17437,8 +22160,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this epic.", + "planned_end_at": { + "description": "The planned end at date for this epic.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this epic.", "type": "string", "format": "date-time", "nullable": true @@ -17455,8 +22184,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this epic.", + "resolved_at": { + "description": "The resolved at date for this epic.", "type": "string", "format": "date-time", "nullable": true @@ -17467,14 +22196,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this epic.", + "suspended_at": { + "description": "The suspended at date for this epic.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this epic.", + "timer_end_at": { + "description": "The timer end at date for this epic.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this epic.", "type": "string", "format": "date-time", "nullable": true @@ -17566,12 +22301,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -17594,6 +22329,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -17610,8 +22349,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -17622,6 +22361,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the epic.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the epic.", "type": "string", @@ -17688,6 +22432,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -17718,8 +22467,8 @@ } } }, - "Backlog": { - "description": "The Matrix Backlog model.", + "Flow": { + "description": "The Matrix flow model.", "type": "object", "properties": { "id": { @@ -17728,217 +22477,145 @@ "format": "uuid", "readOnly": true }, + "flow_type": { + "description": "The flow type of this flow.", + "type": "string", + "nullable": true + }, "created_by_id": { - "description": "Foreign key: links a created by user to this backlog.", + "description": "Foreign key: links a created by user to this flow.", "type": "string", "format": "uuid", "nullable": true }, "modified_by_id": { - "description": "Foreign key: links a modified by user to this backlog.", + "description": "Foreign key: links a modified by user to this flow.", "type": "string", "format": "uuid", "nullable": true }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this backlog.", + "description": "Foreign key: links an owned by user to this flow.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "backlog_type": { - "description": "The backlog type of this backlog.", - "type": "string", - "nullable": true - }, - "board_id": { - "description": "Foreign key: links a board to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "epic_id": { - "description": "Foreign key: links an epic to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "flow_id": { - "description": "Foreign key: links a flow to this backlog.", + "description": "ID: a parent of this flow.", "type": "string", "format": "uuid", "nullable": true }, - "milestone_id": { - "description": "Foreign key: links a milestone to this backlog.", + "matrix_id": { + "description": "Foreign key: links a matrix to this flow.", "type": "string", "format": "uuid", "nullable": true }, "note_id": { - "description": "Foreign key: links a note to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "project_id": { - "description": "Foreign key: links a project to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "release_id": { - "description": "Foreign key: links a release to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "source_id": { - "description": "Foreign key: links a source to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "sprint_id": { - "description": "Foreign key: links a sprint to this backlog.", + "description": "Foreign key: links a note to this flow.", "type": "string", "format": "uuid", "nullable": true }, "tag_id": { - "description": "Foreign key: links a tag to this backlog.", + "description": "Foreign key: links a tag to this flow.", "type": "string", "format": "uuid", "nullable": true }, "team_id": { - "description": "Foreign key: links a team to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "ticket_id": { - "description": "Foreign key: links a ticket to this backlog.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_id": { - "description": "Foreign key: links a version to this backlog.", + "description": "Foreign key: links a team to this flow.", "type": "string", "format": "uuid", "nullable": true }, "created_at": { - "description": "Denotes the date and time, the backlog was created.", + "description": "Denotes the date and time, the flow was created.", "type": "string", "format": "date-time", "readOnly": true }, "updated_at": { - "description": "Denotes the date and time, the backlog was last modified.", + "description": "Denotes the date and time, the flow was last modified.", "type": "string", "format": "date-time", "readOnly": true }, "deleted_at": { - "description": "Denotes the date and time, the backlog was put in the trash.", + "description": "Denotes the date and time, the flow was put in the trash.", "type": "string", "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this backlog.", + "canceled_at": { + "description": "The canceled at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this backlog.", + "closed_at": { + "description": "The closed at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this backlog.", + "embargo_at": { + "description": "The embargo at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this backlog.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this backlog.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this backlog.", + "description": "The planned end at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this backlog.", + "planned_start_at": { + "description": "The planned start at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this backlog.", + "postponed_at": { + "description": "The postponed at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this backlog.", + "published_at": { + "description": "The published at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this backlog.", + "resolved_at": { + "description": "The resolved at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this backlog.", + "resumed_at": { + "description": "The resumed at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this backlog.", + "suspended_at": { + "description": "The suspended at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this backlog.", + "timer_end_at": { + "description": "The timer end at date for this flow.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this backlog.", + "timer_start_at": { + "description": "The timer start at date for this flow.", "type": "string", "format": "date-time", "nullable": true @@ -17980,7 +22657,7 @@ "type": "boolean" }, "status": { - "description": "The status of the backlog.", + "description": "The status of the flow.", "type": "integer", "format": "int64" }, @@ -18010,7 +22687,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the backlog.", + "description": "The ui of the flow.", "type": "object", "nullable": true }, @@ -18030,12 +22707,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -18058,6 +22735,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -18074,8 +22755,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -18086,49 +22767,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the flow.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the backlog.", + "description": "The label of the flow.", "type": "string", "maxLength": 128 }, "title": { - "description": "The title of the backlog.", + "description": "The title of the flow.", "type": "string", "maxLength": 255 }, "byline": { - "description": "The byline of the backlog.", + "description": "The byline of the flow.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the backlog.", + "description": "The slug of the flow.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the backlog.", + "description": "The url of the flow.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the backlog.", + "description": "The description of the flow.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the backlog.", + "description": "The introduction of the flow.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the backlog. Allows HTML.", + "description": "The content of the flow. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the backlog. Allows HTML.", + "description": "The summary of the flow. Allows HTML.", "type": "string", "nullable": true }, @@ -18137,21 +22823,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -18170,11 +22841,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -18182,8 +22848,8 @@ } } }, - "Flow": { - "description": "The Matrix Flow model.", + "Matrix": { + "description": "The Matrix matrix model.", "type": "object", "properties": { "id": { @@ -18192,139 +22858,121 @@ "format": "uuid", "readOnly": true }, + "matrix_type": { + "description": "The matrix type of this matrix.", + "type": "string", + "nullable": true + }, "created_by_id": { - "description": "Foreign key: links a created by user to this flow.", + "description": "Foreign key: links a created by user to this matrix.", "type": "string", "format": "uuid", "nullable": true }, "modified_by_id": { - "description": "Foreign key: links a modified by user to this flow.", + "description": "Foreign key: links a modified by user to this matrix.", "type": "string", "format": "uuid", "nullable": true }, "owned_by_id": { - "description": "Foreign key: links an owned by user to this flow.", + "description": "Foreign key: links an owned by user to this matrix.", "type": "string", "format": "uuid", "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this flow.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "flow_type": { - "description": "The flow type of this flow.", - "type": "string", - "nullable": true - }, - "note_id": { - "description": "Foreign key: links a note to this flow.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "tag_id": { - "description": "Foreign key: links a tag to this flow.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "team_id": { - "description": "Foreign key: links a team to this flow.", + "description": "ID: a parent of this matrix.", "type": "string", "format": "uuid", "nullable": true }, "created_at": { - "description": "Denotes the date and time, the flow was created.", + "description": "Denotes the date and time, the matrix was created.", "type": "string", "format": "date-time", "readOnly": true }, "updated_at": { - "description": "Denotes the date and time, the flow was last modified.", + "description": "Denotes the date and time, the matrix was last modified.", "type": "string", "format": "date-time", "readOnly": true }, "deleted_at": { - "description": "Denotes the date and time, the flow was put in the trash.", + "description": "Denotes the date and time, the matrix was put in the trash.", "type": "string", "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this flow.", + "canceled_at": { + "description": "The canceled at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this flow.", + "closed_at": { + "description": "The closed at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "end_at": { - "description": "The end at date for this flow.", + "embargo_at": { + "description": "The embargo at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, "planned_end_at": { - "description": "The planned end at date for this flow.", + "description": "The planned end at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "canceled_at": { - "description": "The canceled at date for this flow.", + "planned_start_at": { + "description": "The planned start at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "closed_at": { - "description": "The closed at date for this flow.", + "postponed_at": { + "description": "The postponed at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "embargo_at": { - "description": "The embargo at date for this flow.", + "published_at": { + "description": "The published at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "postponed_at": { - "description": "The postponed at date for this flow.", + "resolved_at": { + "description": "The resolved at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "published_at": { - "description": "The published at date for this flow.", + "resumed_at": { + "description": "The resumed at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this flow.", + "suspended_at": { + "description": "The suspended at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "resumed_at": { - "description": "The resumed at date for this flow.", + "timer_end_at": { + "description": "The timer end at date for this matrix.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this flow.", + "timer_start_at": { + "description": "The timer start at date for this matrix.", "type": "string", "format": "date-time", "nullable": true @@ -18366,7 +23014,7 @@ "type": "boolean" }, "status": { - "description": "The status of the flow.", + "description": "The status of the matrix.", "type": "integer", "format": "int64" }, @@ -18396,7 +23044,7 @@ "maxLength": 512 }, "ui": { - "description": "The ui of the flow.", + "description": "The ui of the matrix.", "type": "object", "nullable": true }, @@ -18416,12 +23064,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -18444,6 +23092,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -18460,8 +23112,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -18472,49 +23124,54 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the matrix.", + "type": "string", + "maxLength": 255 + }, "label": { - "description": "The label of the flow.", + "description": "The label of the matrix.", "type": "string", "maxLength": 128 }, "title": { - "description": "The title of the flow.", + "description": "The title of the matrix.", "type": "string", "maxLength": 255 }, "byline": { - "description": "The byline of the flow.", + "description": "The byline of the matrix.", "type": "string", "maxLength": 255 }, "slug": { - "description": "The slug of the flow.", + "description": "The slug of the matrix.", "type": "string", "maxLength": 128, "nullable": true }, "url": { - "description": "The url of the flow.", + "description": "The url of the matrix.", "type": "string", "maxLength": 512 }, "description": { - "description": "The description of the flow.", + "description": "The description of the matrix.", "type": "string", "maxLength": 512 }, "introduction": { - "description": "The introduction of the flow.", + "description": "The introduction of the matrix.", "type": "string", "maxLength": 512 }, "content": { - "description": "The content of the flow. Allows HTML.", + "description": "The content of the matrix. Allows HTML.", "type": "string", "nullable": true }, "summary": { - "description": "The summary of the flow. Allows HTML.", + "description": "The summary of the matrix. Allows HTML.", "type": "string", "nullable": true }, @@ -18523,11 +23180,6 @@ "type": "object", "nullable": true }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -18545,11 +23197,16 @@ "description": "JSON: options", "type": "object", "nullable": true + }, + "sources": { + "description": "JSON: sources", + "type": "object", + "nullable": true } } }, "Milestone": { - "description": "The Matrix Milestone model.", + "description": "The Matrix milestone model.", "type": "object", "properties": { "id": { @@ -18558,6 +23215,11 @@ "format": "uuid", "readOnly": true }, + "milestone_type": { + "description": "The milestone type of this milestone.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this milestone.", "type": "string", @@ -18577,16 +23239,11 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this milestone.", + "description": "ID: a parent of this milestone.", "type": "string", "format": "uuid", "nullable": true }, - "milestone_type": { - "description": "The milestone type of this milestone.", - "type": "string", - "nullable": true - }, "backlog_id": { "description": "Foreign key: links a backlog to this milestone.", "type": "string", @@ -18611,6 +23268,12 @@ "format": "uuid", "nullable": true }, + "matrix_id": { + "description": "Foreign key: links a matrix to this milestone.", + "type": "string", + "format": "uuid", + "nullable": true + }, "note_id": { "description": "Foreign key: links a note to this milestone.", "type": "string", @@ -18689,30 +23352,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this milestone.", - "type": "string", - "format": "date-time", - "nullable": true - }, "canceled_at": { "description": "The canceled at date for this milestone.", "type": "string", @@ -18731,8 +23370,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this milestone.", + "planned_end_at": { + "description": "The planned end at date for this milestone.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this milestone.", "type": "string", "format": "date-time", "nullable": true @@ -18749,8 +23394,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this milestone.", + "resolved_at": { + "description": "The resolved at date for this milestone.", "type": "string", "format": "date-time", "nullable": true @@ -18761,14 +23406,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this milestone.", + "suspended_at": { + "description": "The suspended at date for this milestone.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this milestone.", + "timer_end_at": { + "description": "The timer end at date for this milestone.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this milestone.", "type": "string", "format": "date-time", "nullable": true @@ -18860,12 +23511,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -18888,6 +23539,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -18904,8 +23559,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -18916,6 +23571,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the milestone.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the milestone.", "type": "string", @@ -18982,6 +23642,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -19013,7 +23678,7 @@ } }, "Note": { - "description": "The Matrix Note model.", + "description": "The Matrix note model.", "type": "object", "properties": { "id": { @@ -19022,6 +23687,11 @@ "format": "uuid", "readOnly": true }, + "note_type": { + "description": "The note type of this note.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this note.", "type": "string", @@ -19041,14 +23711,21 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this note.", + "description": "ID: a parent of this note.", "type": "string", "format": "uuid", "nullable": true }, - "note_type": { - "description": "The note type of this note.", + "matrix_id": { + "description": "Foreign key: links a matrix to this note.", + "type": "string", + "format": "uuid", + "nullable": true + }, + "tag_id": { + "description": "Foreign key: links a tag to this note.", "type": "string", + "format": "uuid", "nullable": true }, "created_at": { @@ -19069,90 +23746,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "embargo_at": { - "description": "The embargo at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "fixed_at": { - "description": "The fixed at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "postponed_at": { - "description": "The postponed at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "published_at": { - "description": "The published at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "released_at": { - "description": "The released at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resumed_at": { - "description": "The resumed at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resolved_at": { - "description": "The resolved at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "suspended_at": { - "description": "The suspended at date for this note.", - "type": "string", - "format": "date-time", - "nullable": true - }, "gids": { "description": "Permissions: gids", "type": "integer", @@ -19240,12 +23833,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -19268,6 +23861,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -19284,8 +23881,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -19296,6 +23893,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the note.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the note.", "type": "string", @@ -19347,21 +23949,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -19380,11 +23967,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -19393,7 +23975,7 @@ } }, "Project": { - "description": "The Matrix Project model.", + "description": "The Matrix project model.", "type": "object", "properties": { "id": { @@ -19402,6 +23984,11 @@ "format": "uuid", "readOnly": true }, + "project_type": { + "description": "The project type of this project.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this project.", "type": "string", @@ -19421,16 +24008,11 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this project.", + "description": "ID: a parent of this project.", "type": "string", "format": "uuid", "nullable": true }, - "project_type": { - "description": "The project type of this project.", - "type": "string", - "nullable": true - }, "backlog_id": { "description": "Foreign key: links a backlog to this project.", "type": "string", @@ -19455,6 +24037,12 @@ "format": "uuid", "nullable": true }, + "matrix_id": { + "description": "Foreign key: links a matrix to this project.", + "type": "string", + "format": "uuid", + "nullable": true + }, "milestone_id": { "description": "Foreign key: links a milestone to this project.", "type": "string", @@ -19512,47 +24100,23 @@ "version_id": { "description": "Foreign key: links a version to this project.", "type": "string", - "format": "uuid", - "nullable": true - }, - "created_at": { - "description": "Denotes the date and time, the project was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updated_at": { - "description": "Denotes the date and time, the project was last modified.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "deleted_at": { - "description": "Denotes the date and time, the project was put in the trash.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "start_at": { - "description": "The start at date for this project.", - "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this project.", + "created_at": { + "description": "Denotes the date and time, the project was created.", "type": "string", "format": "date-time", - "nullable": true + "readOnly": true }, - "end_at": { - "description": "The end at date for this project.", + "updated_at": { + "description": "Denotes the date and time, the project was last modified.", "type": "string", "format": "date-time", - "nullable": true + "readOnly": true }, - "planned_end_at": { - "description": "The planned end at date for this project.", + "deleted_at": { + "description": "Denotes the date and time, the project was put in the trash.", "type": "string", "format": "date-time", "nullable": true @@ -19575,8 +24139,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this project.", + "planned_end_at": { + "description": "The planned end at date for this project.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this project.", "type": "string", "format": "date-time", "nullable": true @@ -19593,8 +24163,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this project.", + "resolved_at": { + "description": "The resolved at date for this project.", "type": "string", "format": "date-time", "nullable": true @@ -19605,14 +24175,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this project.", + "suspended_at": { + "description": "The suspended at date for this project.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this project.", + "timer_end_at": { + "description": "The timer end at date for this project.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this project.", "type": "string", "format": "date-time", "nullable": true @@ -19704,10 +24280,18 @@ "description": "Flags: completed", "type": "boolean" }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, "duplicate": { "description": "Flags: duplicate", "type": "boolean" }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "fixed": { "description": "Flags: fixed", "type": "boolean" @@ -19732,6 +24316,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -19744,12 +24332,16 @@ "description": "Flags: released", "type": "boolean" }, + "resolved": { + "description": "Flags: resolved", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -19760,6 +24352,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the project.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the project.", "type": "string", @@ -19806,6 +24403,18 @@ "type": "string", "nullable": true }, + "key": { + "description": "The key of the project.", + "type": "string", + "maxLength": 32, + "nullable": true + }, + "code_name": { + "description": "The code name of the project.", + "type": "string", + "maxLength": 128, + "nullable": true + }, "assets": { "description": "JSON: assets", "type": "object", @@ -19826,6 +24435,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -19857,7 +24471,7 @@ } }, "Release": { - "description": "The Matrix Release model.", + "description": "The Matrix release model.", "type": "object", "properties": { "id": { @@ -19866,6 +24480,11 @@ "format": "uuid", "readOnly": true }, + "release_type": { + "description": "The release type of this release.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this release.", "type": "string", @@ -19885,16 +24504,11 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this release.", + "description": "ID: a parent of this release.", "type": "string", "format": "uuid", "nullable": true }, - "release_type": { - "description": "The release type of this release.", - "type": "string", - "nullable": true - }, "backlog_id": { "description": "Foreign key: links a backlog to this release.", "type": "string", @@ -19919,6 +24533,12 @@ "format": "uuid", "nullable": true }, + "matrix_id": { + "description": "Foreign key: links a matrix to this release.", + "type": "string", + "format": "uuid", + "nullable": true + }, "milestone_id": { "description": "Foreign key: links a milestone to this release.", "type": "string", @@ -19997,30 +24617,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this release.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this release.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this release.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this release.", - "type": "string", - "format": "date-time", - "nullable": true - }, "canceled_at": { "description": "The canceled at date for this release.", "type": "string", @@ -20039,8 +24635,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this release.", + "planned_end_at": { + "description": "The planned end at date for this release.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this release.", "type": "string", "format": "date-time", "nullable": true @@ -20057,8 +24659,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this release.", + "resolved_at": { + "description": "The resolved at date for this release.", "type": "string", "format": "date-time", "nullable": true @@ -20069,14 +24671,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this release.", + "suspended_at": { + "description": "The suspended at date for this release.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this release.", + "timer_end_at": { + "description": "The timer end at date for this release.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this release.", "type": "string", "format": "date-time", "nullable": true @@ -20168,12 +24776,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -20196,6 +24804,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -20212,8 +24824,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -20224,6 +24836,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the release.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the release.", "type": "string", @@ -20290,6 +24907,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -20321,7 +24943,7 @@ } }, "Roadmap": { - "description": "The Matrix Roadmap model.", + "description": "The Matrix roadmap model.", "type": "object", "properties": { "id": { @@ -20330,6 +24952,11 @@ "format": "uuid", "readOnly": true }, + "roadmap_type": { + "description": "The roadmap type of this roadmap.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this roadmap.", "type": "string", @@ -20349,16 +24976,11 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this roadmap.", + "description": "ID: a parent of this roadmap.", "type": "string", "format": "uuid", "nullable": true }, - "roadmap_type": { - "description": "The roadmap type of this roadmap.", - "type": "string", - "nullable": true - }, "backlog_id": { "description": "Foreign key: links a backlog to this roadmap.", "type": "string", @@ -20383,6 +25005,12 @@ "format": "uuid", "nullable": true }, + "matrix_id": { + "description": "Foreign key: links a matrix to this roadmap.", + "type": "string", + "format": "uuid", + "nullable": true + }, "milestone_id": { "description": "Foreign key: links a milestone to this roadmap.", "type": "string", @@ -20461,30 +25089,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this roadmap.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this roadmap.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this roadmap.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this roadmap.", - "type": "string", - "format": "date-time", - "nullable": true - }, "canceled_at": { "description": "The canceled at date for this roadmap.", "type": "string", @@ -20503,8 +25107,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this roadmap.", + "planned_end_at": { + "description": "The planned end at date for this roadmap.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true @@ -20521,8 +25131,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this roadmap.", + "resolved_at": { + "description": "The resolved at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true @@ -20533,14 +25143,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this roadmap.", + "suspended_at": { + "description": "The suspended at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this roadmap.", + "timer_end_at": { + "description": "The timer end at date for this roadmap.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this roadmap.", "type": "string", "format": "date-time", "nullable": true @@ -20632,12 +25248,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -20660,6 +25276,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -20676,8 +25296,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -20688,6 +25308,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the roadmap.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the roadmap.", "type": "string", @@ -20754,6 +25379,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -20783,102 +25413,54 @@ "nullable": true } } - }, - "Source": { - "description": "The Matrix Source model.", - "type": "object", - "properties": { - "id": { - "description": "The primary key.", - "type": "string", - "format": "uuid", - "readOnly": true - }, - "created_by_id": { - "description": "Foreign key: links a created by user to this source.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "modified_by_id": { - "description": "Foreign key: links a modified by user to this source.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "owned_by_id": { - "description": "Foreign key: links an owned by user to this source.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "parent_id": { - "description": "Foreign key: links a parent to this source.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "source_type": { - "description": "The source type of this source.", - "type": "string", - "nullable": true - }, - "backlog_id": { - "description": "Foreign key: links a backlog to this source.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "board_id": { - "description": "Foreign key: links a board to this source.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "epic_id": { - "description": "Foreign key: links an epic to this source.", + }, + "Source": { + "description": "The Matrix source model.", + "type": "object", + "properties": { + "id": { + "description": "The primary key.", "type": "string", "format": "uuid", - "nullable": true + "readOnly": true }, - "flow_id": { - "description": "Foreign key: links a flow to this source.", + "source_type": { + "description": "The source type of this source.", "type": "string", - "format": "uuid", "nullable": true }, - "milestone_id": { - "description": "Foreign key: links a milestone to this source.", + "created_by_id": { + "description": "Foreign key: links a created by user to this source.", "type": "string", "format": "uuid", "nullable": true }, - "note_id": { - "description": "Foreign key: links a note to this source.", + "modified_by_id": { + "description": "Foreign key: links a modified by user to this source.", "type": "string", "format": "uuid", "nullable": true }, - "project_id": { - "description": "Foreign key: links a project to this source.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this source.", "type": "string", "format": "uuid", "nullable": true }, - "release_id": { - "description": "Foreign key: links a release to this source.", + "parent_id": { + "description": "ID: a parent of this source.", "type": "string", "format": "uuid", "nullable": true }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this source.", + "matrix_id": { + "description": "Foreign key: links a matrix to this source.", "type": "string", "format": "uuid", "nullable": true }, - "sprint_id": { - "description": "Foreign key: links a sprint to this source.", + "note_id": { + "description": "Foreign key: links a note to this source.", "type": "string", "format": "uuid", "nullable": true @@ -20895,18 +25477,6 @@ "format": "uuid", "nullable": true }, - "ticket_id": { - "description": "Foreign key: links a ticket to this source.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_id": { - "description": "Foreign key: links a version to this source.", - "type": "string", - "format": "uuid", - "nullable": true - }, "created_at": { "description": "Denotes the date and time, the source was created.", "type": "string", @@ -20925,30 +25495,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this source.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this source.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this source.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this source.", - "type": "string", - "format": "date-time", - "nullable": true - }, "canceled_at": { "description": "The canceled at date for this source.", "type": "string", @@ -20967,8 +25513,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this source.", + "planned_end_at": { + "description": "The planned end at date for this source.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this source.", "type": "string", "format": "date-time", "nullable": true @@ -20985,8 +25537,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this source.", + "resolved_at": { + "description": "The resolved at date for this source.", "type": "string", "format": "date-time", "nullable": true @@ -20997,14 +25549,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this source.", + "suspended_at": { + "description": "The suspended at date for this source.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this source.", + "timer_end_at": { + "description": "The timer end at date for this source.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this source.", "type": "string", "format": "date-time", "nullable": true @@ -21096,12 +25654,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -21124,6 +25682,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -21140,8 +25702,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -21152,6 +25714,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the source.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the source.", "type": "string", @@ -21203,21 +25770,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -21236,11 +25788,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -21249,7 +25796,7 @@ } }, "Sprint": { - "description": "The Matrix Sprint model.", + "description": "The Matrix sprint model.", "type": "object", "properties": { "id": { @@ -21258,6 +25805,11 @@ "format": "uuid", "readOnly": true }, + "sprint_type": { + "description": "The sprint type of this sprint.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this sprint.", "type": "string", @@ -21277,16 +25829,11 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this sprint.", + "description": "ID: a parent of this sprint.", "type": "string", "format": "uuid", "nullable": true }, - "sprint_type": { - "description": "The sprint type of this sprint.", - "type": "string", - "nullable": true - }, "backlog_id": { "description": "Foreign key: links a backlog to this sprint.", "type": "string", @@ -21311,6 +25858,12 @@ "format": "uuid", "nullable": true }, + "matrix_id": { + "description": "Foreign key: links a matrix to this sprint.", + "type": "string", + "format": "uuid", + "nullable": true + }, "milestone_id": { "description": "Foreign key: links a milestone to this sprint.", "type": "string", @@ -21389,30 +25942,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this sprint.", - "type": "string", - "format": "date-time", - "nullable": true - }, "canceled_at": { "description": "The canceled at date for this sprint.", "type": "string", @@ -21431,8 +25960,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this sprint.", + "planned_end_at": { + "description": "The planned end at date for this sprint.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this sprint.", "type": "string", "format": "date-time", "nullable": true @@ -21449,8 +25984,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this sprint.", + "resolved_at": { + "description": "The resolved at date for this sprint.", "type": "string", "format": "date-time", "nullable": true @@ -21461,14 +25996,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this sprint.", + "suspended_at": { + "description": "The suspended at date for this sprint.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this sprint.", + "timer_end_at": { + "description": "The timer end at date for this sprint.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this sprint.", "type": "string", "format": "date-time", "nullable": true @@ -21560,12 +26101,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -21588,6 +26129,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -21604,8 +26149,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -21616,6 +26161,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the sprint.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the sprint.", "type": "string", @@ -21682,6 +26232,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -21707,130 +26262,52 @@ }, "sources": { "description": "JSON: sources", - "type": "object", - "nullable": true - } - } - }, - "Tag": { - "description": "The Matrix Tag model.", - "type": "object", - "properties": { - "id": { - "description": "The primary key.", - "type": "string", - "format": "uuid", - "readOnly": true - }, - "created_by_id": { - "description": "Foreign key: links a created by user to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "modified_by_id": { - "description": "Foreign key: links a modified by user to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "owned_by_id": { - "description": "Foreign key: links an owned by user to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "parent_id": { - "description": "Foreign key: links a parent to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "tag_type": { - "description": "The tag type of this tag.", - "type": "string", - "nullable": true - }, - "backlog_id": { - "description": "Foreign key: links a backlog to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "board_id": { - "description": "Foreign key: links a board to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "epic_id": { - "description": "Foreign key: links an epic to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "flow_id": { - "description": "Foreign key: links a flow to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "milestone_id": { - "description": "Foreign key: links a milestone to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "note_id": { - "description": "Foreign key: links a note to this tag.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "project_id": { - "description": "Foreign key: links a project to this tag.", - "type": "string", - "format": "uuid", + "type": "object", "nullable": true - }, - "release_id": { - "description": "Foreign key: links a release to this tag.", + } + } + }, + "Tag": { + "description": "The Matrix tag model.", + "type": "object", + "properties": { + "id": { + "description": "The primary key.", "type": "string", "format": "uuid", - "nullable": true + "readOnly": true }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this tag.", + "tag_type": { + "description": "The tag type of this tag.", "type": "string", - "format": "uuid", "nullable": true }, - "source_id": { - "description": "Foreign key: links a source to this tag.", + "created_by_id": { + "description": "Foreign key: links a created by user to this tag.", "type": "string", "format": "uuid", "nullable": true }, - "sprint_id": { - "description": "Foreign key: links a sprint to this tag.", + "modified_by_id": { + "description": "Foreign key: links a modified by user to this tag.", "type": "string", "format": "uuid", "nullable": true }, - "team_id": { - "description": "Foreign key: links a team to this tag.", + "owned_by_id": { + "description": "Foreign key: links an owned by user to this tag.", "type": "string", "format": "uuid", "nullable": true }, - "ticket_id": { - "description": "Foreign key: links a ticket to this tag.", + "parent_id": { + "description": "ID: a parent of this tag.", "type": "string", "format": "uuid", "nullable": true }, - "version_id": { - "description": "Foreign key: links a version to this tag.", + "matrix_id": { + "description": "Foreign key: links a matrix to this tag.", "type": "string", "format": "uuid", "nullable": true @@ -21853,90 +26330,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "canceled_at": { - "description": "The canceled at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "closed_at": { - "description": "The closed at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "embargo_at": { - "description": "The embargo at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "fixed_at": { - "description": "The fixed at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "postponed_at": { - "description": "The postponed at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "published_at": { - "description": "The published at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "released_at": { - "description": "The released at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resumed_at": { - "description": "The resumed at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "resolved_at": { - "description": "The resolved at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "suspended_at": { - "description": "The suspended at date for this tag.", - "type": "string", - "format": "date-time", - "nullable": true - }, "gids": { "description": "Permissions: gids", "type": "integer", @@ -22012,24 +26405,12 @@ "description": "Flags: active", "type": "boolean" }, - "canceled": { - "description": "Flags: canceled", - "type": "boolean" - }, - "closed": { - "description": "Flags: closed", - "type": "boolean" - }, - "completed": { - "description": "Flags: completed", - "type": "boolean" - }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -22044,42 +26425,23 @@ "description": "Flags: locked", "type": "boolean" }, - "pending": { - "description": "Flags: pending", - "type": "boolean" - }, - "planned": { - "description": "Flags: planned", - "type": "boolean" - }, - "problem": { - "description": "Flags: problem", - "type": "boolean" - }, - "published": { - "description": "Flags: published", - "type": "boolean" - }, - "released": { - "description": "Flags: released", - "type": "boolean" - }, "retired": { "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", - "type": "boolean" - }, - "suspended": { - "description": "Flags: suspended", + "special": { + "description": "Flags: special", "type": "boolean" }, "unknown": { "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the tag.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the tag.", "type": "string", @@ -22131,21 +26493,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -22164,11 +26511,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", @@ -22177,7 +26519,7 @@ } }, "Team": { - "description": "The Matrix Team model.", + "description": "The Matrix team model.", "type": "object", "properties": { "id": { @@ -22186,6 +26528,11 @@ "format": "uuid", "readOnly": true }, + "team_type": { + "description": "The team type of this team.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this team.", "type": "string", @@ -22205,16 +26552,11 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this team.", + "description": "ID: a parent of this team.", "type": "string", "format": "uuid", "nullable": true }, - "team_type": { - "description": "The team type of this team.", - "type": "string", - "nullable": true - }, "backlog_id": { "description": "Foreign key: links a backlog to this team.", "type": "string", @@ -22239,6 +26581,12 @@ "format": "uuid", "nullable": true }, + "matrix_id": { + "description": "Foreign key: links a matrix to this team.", + "type": "string", + "format": "uuid", + "nullable": true + }, "milestone_id": { "description": "Foreign key: links a milestone to this team.", "type": "string", @@ -22317,30 +26665,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this team.", - "type": "string", - "format": "date-time", - "nullable": true - }, "canceled_at": { "description": "The canceled at date for this team.", "type": "string", @@ -22359,8 +26683,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this team.", + "planned_end_at": { + "description": "The planned end at date for this team.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this team.", "type": "string", "format": "date-time", "nullable": true @@ -22377,8 +26707,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this team.", + "resolved_at": { + "description": "The resolved at date for this team.", "type": "string", "format": "date-time", "nullable": true @@ -22389,14 +26719,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this team.", + "suspended_at": { + "description": "The suspended at date for this team.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this team.", + "timer_end_at": { + "description": "The timer end at date for this team.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this team.", "type": "string", "format": "date-time", "nullable": true @@ -22488,12 +26824,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", "type": "boolean" }, - "fixed": { - "description": "Flags: fixed", + "featured": { + "description": "Flags: featured", "type": "boolean" }, "flagged": { @@ -22516,6 +26852,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -22532,8 +26872,8 @@ "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -22544,6 +26884,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the team.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the team.", "type": "string", @@ -22610,6 +26955,11 @@ "type": "object", "nullable": true }, + "history": { + "description": "JSON: history", + "type": "object", + "nullable": true + }, "meta": { "description": "JSON: meta", "type": "object", @@ -22641,7 +26991,7 @@ } }, "Ticket": { - "description": "The Matrix Ticket model.", + "description": "The Matrix ticket model.", "type": "object", "properties": { "id": { @@ -22650,6 +27000,11 @@ "format": "uuid", "readOnly": true }, + "ticket_type": { + "description": "The ticket type of this ticket.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this ticket.", "type": "string", @@ -22669,18 +27024,7 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this ticket.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "ticket_type": { - "description": "The ticket type of this ticket.", - "type": "string", - "nullable": true - }, - "duplicate_id": { - "description": "Foreign key: links a duplicate to this ticket.", + "description": "ID: a parent of this ticket.", "type": "string", "format": "uuid", "nullable": true @@ -22691,14 +27035,8 @@ "format": "uuid", "nullable": true }, - "board_id": { - "description": "Foreign key: links a board to this ticket.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "completed_by_id": { - "description": "Foreign key: links a completed by user to this ticket.", + "board_id": { + "description": "Foreign key: links a board to this ticket.", "type": "string", "format": "uuid", "nullable": true @@ -22715,6 +27053,12 @@ "format": "uuid", "nullable": true }, + "matrix_id": { + "description": "Foreign key: links a matrix to this ticket.", + "type": "string", + "format": "uuid", + "nullable": true + }, "milestone_id": { "description": "Foreign key: links a milestone to this ticket.", "type": "string", @@ -22739,12 +27083,6 @@ "format": "uuid", "nullable": true }, - "reported_by_id": { - "description": "Foreign key: links a reported by user to this ticket.", - "type": "string", - "format": "uuid", - "nullable": true - }, "roadmap_id": { "description": "Foreign key: links a roadmap to this ticket.", "type": "string", @@ -22781,50 +27119,50 @@ "format": "uuid", "nullable": true }, - "version_fixed_id": { - "description": "Foreign key: links a version fixed to this ticket.", + "completed_by_id": { + "description": "Foreign key: links a completed by user to this ticket.", "type": "string", "format": "uuid", "nullable": true }, - "created_at": { - "description": "Denotes the date and time, the ticket was created.", + "duplicate_id": { + "description": "Foreign key: links a duplicate to this ticket.", "type": "string", - "format": "date-time", - "readOnly": true + "format": "uuid", + "nullable": true }, - "updated_at": { - "description": "Denotes the date and time, the ticket was last modified.", + "fixed_by_id": { + "description": "Foreign key: links a fixed by user to this ticket.", "type": "string", - "format": "date-time", - "readOnly": true + "format": "uuid", + "nullable": true }, - "deleted_at": { - "description": "Denotes the date and time, the ticket was put in the trash.", + "reported_by_id": { + "description": "Foreign key: links a reported by user to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "start_at": { - "description": "The start at date for this ticket.", + "version_fixed_id": { + "description": "Foreign key: links a version fixed to this ticket.", "type": "string", - "format": "date-time", + "format": "uuid", "nullable": true }, - "planned_start_at": { - "description": "The planned start at date for this ticket.", + "created_at": { + "description": "Denotes the date and time, the ticket was created.", "type": "string", "format": "date-time", - "nullable": true + "readOnly": true }, - "end_at": { - "description": "The end at date for this ticket.", + "updated_at": { + "description": "Denotes the date and time, the ticket was last modified.", "type": "string", "format": "date-time", - "nullable": true + "readOnly": true }, - "planned_end_at": { - "description": "The planned end at date for this ticket.", + "deleted_at": { + "description": "Denotes the date and time, the ticket was put in the trash.", "type": "string", "format": "date-time", "nullable": true @@ -22853,6 +27191,18 @@ "format": "date-time", "nullable": true }, + "planned_end_at": { + "description": "The planned end at date for this ticket.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this ticket.", + "type": "string", + "format": "date-time", + "nullable": true + }, "postponed_at": { "description": "The postponed at date for this ticket.", "type": "string", @@ -22865,8 +27215,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this ticket.", + "resolved_at": { + "description": "The resolved at date for this ticket.", "type": "string", "format": "date-time", "nullable": true @@ -22877,14 +27227,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this ticket.", + "suspended_at": { + "description": "The suspended at date for this ticket.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this ticket.", + "timer_end_at": { + "description": "The timer end at date for this ticket.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this ticket.", "type": "string", "format": "date-time", "nullable": true @@ -22976,10 +27332,18 @@ "description": "Flags: completed", "type": "boolean" }, + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, "duplicate": { "description": "Flags: duplicate", "type": "boolean" }, + "featured": { + "description": "Flags: featured", + "type": "boolean" + }, "fixed": { "description": "Flags: fixed", "type": "boolean" @@ -23004,6 +27368,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -23016,12 +27384,16 @@ "description": "Flags: released", "type": "boolean" }, + "resolved": { + "description": "Flags: resolved", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -23032,6 +27404,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the ticket.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the ticket.", "type": "string", @@ -23078,68 +27455,85 @@ "type": "string", "nullable": true }, - "key": { - "description": "The key of the ticket.", - "type": "string", - "maxLength": 64 - }, "handler": { "description": "The handler of the ticket.", "type": "string", - "maxLength": 32 + "nullable": true + }, + "key": { + "description": "The key of the ticket.", + "type": "string", + "maxLength": 32, + "nullable": true }, "code": { "description": "The code of the ticket.", "type": "integer", - "format": "int64" + "format": "int64", + "nullable": true }, "key_code_hash": { "description": "The key code hash of the ticket.", "type": "string", - "maxLength": 32 + "nullable": true }, "priority": { "description": "The priority of the ticket.", "type": "string", - "maxLength": 32 + "nullable": true }, "severity": { "description": "The severity of the ticket.", "type": "string", - "maxLength": 32 + "nullable": true }, "resolution": { "description": "The resolution of the ticket.", "type": "string", - "maxLength": 32 + "nullable": true }, "step": { "description": "The step of the ticket.", "type": "string", - "maxLength": 32 + "nullable": true }, "state": { "description": "The state of the ticket.", "type": "string", - "maxLength": 32 + "nullable": true }, "workflow_type": { "description": "The workflow type of the ticket.", "type": "string", - "maxLength": 128 + "nullable": true }, "points": { "description": "The points of the ticket.", "type": "integer", - "format": "int32" + "format": "int64" + }, + "actual": { + "description": "The actual of the ticket.", + "type": "string", + "nullable": true + }, + "expected": { + "description": "The expected of the ticket.", + "type": "string", + "nullable": true }, "story": { - "description": "The story of the ticket. Allows HTML.", + "description": "The story of the ticket.", + "type": "string", + "nullable": true + }, + "steps": { + "description": "The steps of the ticket.", "type": "string", "nullable": true }, "criteria": { - "description": "The criteria of the ticket. Allows HTML.", + "description": "The criteria of the ticket.", "type": "string", "nullable": true }, @@ -23204,7 +27598,7 @@ } }, "Version": { - "description": "The Matrix Version model.", + "description": "The Matrix version model.", "type": "object", "properties": { "id": { @@ -23213,6 +27607,11 @@ "format": "uuid", "readOnly": true }, + "version_type": { + "description": "The version type of this version.", + "type": "string", + "nullable": true + }, "created_by_id": { "description": "Foreign key: links a created by user to this version.", "type": "string", @@ -23232,48 +27631,13 @@ "nullable": true }, "parent_id": { - "description": "Foreign key: links a parent to this version.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "version_type": { - "description": "The version type of this version.", - "type": "string", - "nullable": true - }, - "backlog_id": { - "description": "Foreign key: links a backlog to this version.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "board_id": { - "description": "Foreign key: links a board to this version.", + "description": "ID: a parent of this version.", "type": "string", "format": "uuid", "nullable": true }, - "epic_id": { - "description": "Foreign key: links an epic to this version.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "flow_id": { - "description": "Foreign key: links a flow to this version.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "milestone_id": { - "description": "Foreign key: links a milestone to this version.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "note_id": { - "description": "Foreign key: links a note to this version.", + "matrix_id": { + "description": "Foreign key: links a matrix to this version.", "type": "string", "format": "uuid", "nullable": true @@ -23284,30 +27648,6 @@ "format": "uuid", "nullable": true }, - "release_id": { - "description": "Foreign key: links a release to this version.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "roadmap_id": { - "description": "Foreign key: links a roadmap to this version.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "source_id": { - "description": "Foreign key: links a source to this version.", - "type": "string", - "format": "uuid", - "nullable": true - }, - "sprint_id": { - "description": "Foreign key: links a sprint to this version.", - "type": "string", - "format": "uuid", - "nullable": true - }, "tag_id": { "description": "Foreign key: links a tag to this version.", "type": "string", @@ -23344,30 +27684,6 @@ "format": "date-time", "nullable": true }, - "start_at": { - "description": "The start at date for this version.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_start_at": { - "description": "The planned start at date for this version.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "end_at": { - "description": "The end at date for this version.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "planned_end_at": { - "description": "The planned end at date for this version.", - "type": "string", - "format": "date-time", - "nullable": true - }, "canceled_at": { "description": "The canceled at date for this version.", "type": "string", @@ -23386,8 +27702,14 @@ "format": "date-time", "nullable": true }, - "fixed_at": { - "description": "The fixed at date for this version.", + "planned_end_at": { + "description": "The planned end at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "planned_start_at": { + "description": "The planned start at date for this version.", "type": "string", "format": "date-time", "nullable": true @@ -23404,8 +27726,8 @@ "format": "date-time", "nullable": true }, - "released_at": { - "description": "The released at date for this version.", + "resolved_at": { + "description": "The resolved at date for this version.", "type": "string", "format": "date-time", "nullable": true @@ -23416,14 +27738,20 @@ "format": "date-time", "nullable": true }, - "resolved_at": { - "description": "The resolved at date for this version.", + "suspended_at": { + "description": "The suspended at date for this version.", "type": "string", "format": "date-time", "nullable": true }, - "suspended_at": { - "description": "The suspended at date for this version.", + "timer_end_at": { + "description": "The timer end at date for this version.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "timer_start_at": { + "description": "The timer start at date for this version.", "type": "string", "format": "date-time", "nullable": true @@ -23515,8 +27843,12 @@ "description": "Flags: completed", "type": "boolean" }, - "duplicate": { - "description": "Flags: duplicate", + "cron": { + "description": "Flags: cron", + "type": "boolean" + }, + "featured": { + "description": "Flags: featured", "type": "boolean" }, "fixed": { @@ -23543,6 +27875,10 @@ "description": "Flags: planned", "type": "boolean" }, + "prioritized": { + "description": "Flags: prioritized", + "type": "boolean" + }, "problem": { "description": "Flags: problem", "type": "boolean" @@ -23555,12 +27891,16 @@ "description": "Flags: released", "type": "boolean" }, + "resolved": { + "description": "Flags: resolved", + "type": "boolean" + }, "retired": { "description": "Flags: retired", "type": "boolean" }, - "resolved": { - "description": "Flags: resolved", + "special": { + "description": "Flags: special", "type": "boolean" }, "suspended": { @@ -23571,6 +27911,11 @@ "description": "Flags: unknown", "type": "boolean" }, + "locale": { + "description": "The locale of the version.", + "type": "string", + "maxLength": 255 + }, "label": { "description": "The label of the version.", "type": "string", @@ -23622,21 +27967,6 @@ "type": "object", "nullable": true }, - "backlog": { - "description": "JSON: backlog", - "type": "object", - "nullable": true - }, - "board": { - "description": "JSON: board", - "type": "object", - "nullable": true - }, - "flow": { - "description": "JSON: flow", - "type": "object", - "nullable": true - }, "meta": { "description": "JSON: meta", "type": "object", @@ -23655,11 +27985,6 @@ "type": "object", "nullable": true }, - "roadmap": { - "description": "JSON: roadmap", - "type": "object", - "nullable": true - }, "sources": { "description": "JSON: sources", "type": "object", diff --git a/tests/Feature/Console/Commands/About/CommandTest.php b/tests/Feature/Console/Commands/About/CommandTest.php index c6d98fb..3539ed8 100644 --- a/tests/Feature/Console/Commands/About/CommandTest.php +++ b/tests/Feature/Console/Commands/About/CommandTest.php @@ -6,35 +6,24 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Console\Commands\About; +use Illuminate\Console\Command; use PHPUnit\Framework\Attributes\CoversClass; use Playground\Matrix\Resource\ServiceProvider; use Tests\Feature\Playground\Matrix\Resource\TestCase; /** - * \Tests\Feature\Playground\Matrix\Resource\Console\Commands\About + * \Tests\Feature\Playground\Matrix\Resource\Console\Commands\About\CommandTest */ #[CoversClass(ServiceProvider::class)] class CommandTest extends TestCase { - public function test_command_about_displays_package_information_and_succeed_with_code_0(): void + public function test_command_about_displays_package_information_and_succeed(): void { /** * @var \Illuminate\Testing\PendingCommand $result */ $result = $this->artisan('about'); - $result->assertExitCode(0); + $result->assertExitCode(Command::SUCCESS); $result->expectsOutputToContain('Playground: Matrix Resource'); } - - // public function test_dump_console_about(): void - // { - // $result = $this->withoutMockingConsoleOutput()->artisan('about'); - // dump(\Illuminate\Support\Facades\Artisan::output()); - // } - - // public function test_dump_console_route_list(): void - // { - // $result = $this->withoutMockingConsoleOutput()->artisan('route:list -vvv'); - // dump(\Illuminate\Support\Facades\Artisan::output()); - // } } diff --git a/tests/Feature/Http/Controllers/BacklogTestCase.php b/tests/Feature/Http/Controllers/BacklogTestCase.php index b197d89..9d4de7c 100644 --- a/tests/Feature/Http/Controllers/BacklogTestCase.php +++ b/tests/Feature/Http/Controllers/BacklogTestCase.php @@ -6,29 +6,9 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Http\Controllers; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Controllers\BacklogController; -use Playground\Matrix\Resource\Http\Requests; -use Playground\Matrix\Resource\Http\Resources; -use Playground\Matrix\Resource\Policies\BacklogPolicy; - /** * \Tests\Feature\Playground\Matrix\Resource\Http\Controllers\BacklogTestCase */ -#[CoversClass(BacklogController::class)] -#[CoversClass(BacklogPolicy::class)] -#[CoversClass(Requests\Backlog\CreateRequest::class)] -#[CoversClass(Requests\Backlog\DestroyRequest::class)] -#[CoversClass(Requests\Backlog\EditRequest::class)] -#[CoversClass(Requests\Backlog\IndexRequest::class)] -#[CoversClass(Requests\Backlog\LockRequest::class)] -#[CoversClass(Requests\Backlog\RestoreRequest::class)] -#[CoversClass(Requests\Backlog\ShowRequest::class)] -#[CoversClass(Requests\Backlog\StoreRequest::class)] -#[CoversClass(Requests\Backlog\UnlockRequest::class)] -#[CoversClass(Requests\Backlog\UpdateRequest::class)] -#[CoversClass(Resources\Backlog::class)] -#[CoversClass(Resources\BacklogCollection::class)] class BacklogTestCase extends TestCase { public string $fqdn = \Playground\Matrix\Models\Backlog::class; @@ -57,11 +37,11 @@ class BacklogTestCase extends TestCase */ protected $structure_model = [ 'id', + 'backlog_type', 'created_by_id', 'modified_by_id', 'owned_by_id', 'parent_id', - 'backlog_type', 'board_id', 'epic_id', 'flow_id', @@ -80,20 +60,18 @@ class BacklogTestCase extends TestCase 'created_at', 'updated_at', 'deleted_at', - 'start_at', - 'planned_start_at', - 'end_at', - 'planned_end_at', 'canceled_at', 'closed_at', 'embargo_at', - 'fixed_at', + 'planned_end_at', + 'planned_start_at', 'postponed_at', 'published_at', - 'released_at', - 'resumed_at', 'resolved_at', + 'resumed_at', 'suspended_at', + 'timer_end_at', + 'timer_start_at', 'gids', 'po', 'pg', @@ -121,20 +99,21 @@ class BacklogTestCase extends TestCase 'closed', 'completed', 'cron', - 'duplicate', - 'fixed', + 'featured', 'flagged', 'internal', 'locked', 'pending', 'planned', + 'prioritized', 'problem', 'published', 'released', 'retired', - 'resolved', + 'special', 'suspended', 'unknown', + 'locale', 'label', 'title', 'byline', @@ -152,6 +131,7 @@ class BacklogTestCase extends TestCase 'backlog', 'board', 'flow', + 'history', 'meta', 'notes', 'options', diff --git a/tests/Feature/Http/Controllers/BoardTestCase.php b/tests/Feature/Http/Controllers/BoardTestCase.php index 5e33ea5..3d7565f 100644 --- a/tests/Feature/Http/Controllers/BoardTestCase.php +++ b/tests/Feature/Http/Controllers/BoardTestCase.php @@ -6,29 +6,9 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Http\Controllers; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Controllers\BoardController; -use Playground\Matrix\Resource\Http\Requests; -use Playground\Matrix\Resource\Http\Resources; -use Playground\Matrix\Resource\Policies\BoardPolicy; - /** * \Tests\Feature\Playground\Matrix\Resource\Http\Controllers\BoardTestCase */ -#[CoversClass(BoardController::class)] -#[CoversClass(BoardPolicy::class)] -#[CoversClass(Requests\Board\CreateRequest::class)] -#[CoversClass(Requests\Board\DestroyRequest::class)] -#[CoversClass(Requests\Board\EditRequest::class)] -#[CoversClass(Requests\Board\IndexRequest::class)] -#[CoversClass(Requests\Board\LockRequest::class)] -#[CoversClass(Requests\Board\RestoreRequest::class)] -#[CoversClass(Requests\Board\ShowRequest::class)] -#[CoversClass(Requests\Board\StoreRequest::class)] -#[CoversClass(Requests\Board\UnlockRequest::class)] -#[CoversClass(Requests\Board\UpdateRequest::class)] -#[CoversClass(Resources\Board::class)] -#[CoversClass(Resources\BoardCollection::class)] class BoardTestCase extends TestCase { public string $fqdn = \Playground\Matrix\Models\Board::class; @@ -57,11 +37,11 @@ class BoardTestCase extends TestCase */ protected $structure_model = [ 'id', + 'board_type', 'created_by_id', 'modified_by_id', 'owned_by_id', 'parent_id', - 'board_type', 'backlog_id', 'epic_id', 'flow_id', @@ -80,20 +60,18 @@ class BoardTestCase extends TestCase 'created_at', 'updated_at', 'deleted_at', - 'start_at', - 'planned_start_at', - 'end_at', - 'planned_end_at', 'canceled_at', 'closed_at', 'embargo_at', - 'fixed_at', + 'planned_end_at', + 'planned_start_at', 'postponed_at', 'published_at', - 'released_at', - 'resumed_at', 'resolved_at', + 'resumed_at', 'suspended_at', + 'timer_end_at', + 'timer_start_at', 'gids', 'po', 'pg', @@ -121,20 +99,21 @@ class BoardTestCase extends TestCase 'closed', 'completed', 'cron', - 'duplicate', - 'fixed', + 'featured', 'flagged', 'internal', 'locked', 'pending', 'planned', + 'prioritized', 'problem', 'published', 'released', 'retired', - 'resolved', + 'special', 'suspended', 'unknown', + 'locale', 'label', 'title', 'byline', @@ -152,6 +131,7 @@ class BoardTestCase extends TestCase 'backlog', 'board', 'flow', + 'history', 'meta', 'notes', 'options', diff --git a/tests/Feature/Http/Controllers/EpicTestCase.php b/tests/Feature/Http/Controllers/EpicTestCase.php index db6a25f..b777309 100644 --- a/tests/Feature/Http/Controllers/EpicTestCase.php +++ b/tests/Feature/Http/Controllers/EpicTestCase.php @@ -6,29 +6,9 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Http\Controllers; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Controllers\EpicController; -use Playground\Matrix\Resource\Http\Requests; -use Playground\Matrix\Resource\Http\Resources; -use Playground\Matrix\Resource\Policies\EpicPolicy; - /** * \Tests\Feature\Playground\Matrix\Resource\Http\Controllers\EpicTestCase */ -#[CoversClass(EpicController::class)] -#[CoversClass(EpicPolicy::class)] -#[CoversClass(Requests\Epic\CreateRequest::class)] -#[CoversClass(Requests\Epic\DestroyRequest::class)] -#[CoversClass(Requests\Epic\EditRequest::class)] -#[CoversClass(Requests\Epic\IndexRequest::class)] -#[CoversClass(Requests\Epic\LockRequest::class)] -#[CoversClass(Requests\Epic\RestoreRequest::class)] -#[CoversClass(Requests\Epic\ShowRequest::class)] -#[CoversClass(Requests\Epic\StoreRequest::class)] -#[CoversClass(Requests\Epic\UnlockRequest::class)] -#[CoversClass(Requests\Epic\UpdateRequest::class)] -#[CoversClass(Resources\Epic::class)] -#[CoversClass(Resources\EpicCollection::class)] class EpicTestCase extends TestCase { public string $fqdn = \Playground\Matrix\Models\Epic::class; @@ -57,11 +37,11 @@ class EpicTestCase extends TestCase */ protected $structure_model = [ 'id', + 'epic_type', 'created_by_id', 'modified_by_id', 'owned_by_id', 'parent_id', - 'epic_type', 'backlog_id', 'board_id', 'flow_id', @@ -80,20 +60,18 @@ class EpicTestCase extends TestCase 'created_at', 'updated_at', 'deleted_at', - 'start_at', - 'planned_start_at', - 'end_at', - 'planned_end_at', 'canceled_at', 'closed_at', 'embargo_at', - 'fixed_at', + 'planned_end_at', + 'planned_start_at', 'postponed_at', 'published_at', - 'released_at', - 'resumed_at', 'resolved_at', + 'resumed_at', 'suspended_at', + 'timer_end_at', + 'timer_start_at', 'gids', 'po', 'pg', @@ -121,20 +99,21 @@ class EpicTestCase extends TestCase 'closed', 'completed', 'cron', - 'duplicate', - 'fixed', + 'featured', 'flagged', 'internal', 'locked', 'pending', 'planned', + 'prioritized', 'problem', 'published', 'released', 'retired', - 'resolved', + 'special', 'suspended', 'unknown', + 'locale', 'label', 'title', 'byline', @@ -152,6 +131,7 @@ class EpicTestCase extends TestCase 'backlog', 'board', 'flow', + 'history', 'meta', 'notes', 'options', diff --git a/tests/Feature/Http/Controllers/FlowTestCase.php b/tests/Feature/Http/Controllers/FlowTestCase.php index 482774c..743dece 100644 --- a/tests/Feature/Http/Controllers/FlowTestCase.php +++ b/tests/Feature/Http/Controllers/FlowTestCase.php @@ -6,29 +6,9 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Http\Controllers; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Controllers\FlowController; -use Playground\Matrix\Resource\Http\Requests; -use Playground\Matrix\Resource\Http\Resources; -use Playground\Matrix\Resource\Policies\FlowPolicy; - /** * \Tests\Feature\Playground\Matrix\Resource\Http\Controllers\FlowTestCase */ -#[CoversClass(FlowController::class)] -#[CoversClass(FlowPolicy::class)] -#[CoversClass(Requests\Flow\CreateRequest::class)] -#[CoversClass(Requests\Flow\DestroyRequest::class)] -#[CoversClass(Requests\Flow\EditRequest::class)] -#[CoversClass(Requests\Flow\IndexRequest::class)] -#[CoversClass(Requests\Flow\LockRequest::class)] -#[CoversClass(Requests\Flow\RestoreRequest::class)] -#[CoversClass(Requests\Flow\ShowRequest::class)] -#[CoversClass(Requests\Flow\StoreRequest::class)] -#[CoversClass(Requests\Flow\UnlockRequest::class)] -#[CoversClass(Requests\Flow\UpdateRequest::class)] -#[CoversClass(Resources\Flow::class)] -#[CoversClass(Resources\FlowCollection::class)] class FlowTestCase extends TestCase { public string $fqdn = \Playground\Matrix\Models\Flow::class; @@ -57,11 +37,11 @@ class FlowTestCase extends TestCase */ protected $structure_model = [ 'id', + 'flow_type', 'created_by_id', 'modified_by_id', 'owned_by_id', 'parent_id', - 'flow_type', 'matrix_id', 'note_id', 'tag_id', @@ -69,14 +49,18 @@ class FlowTestCase extends TestCase 'created_at', 'updated_at', 'deleted_at', - 'start_at', - 'planned_start_at', - 'end_at', - 'planned_end_at', + 'canceled_at', + 'closed_at', 'embargo_at', + 'planned_end_at', + 'planned_start_at', 'postponed_at', + 'published_at', + 'resolved_at', 'resumed_at', 'suspended_at', + 'timer_end_at', + 'timer_start_at', 'gids', 'po', 'pg', @@ -100,16 +84,25 @@ class FlowTestCase extends TestCase 'latitude', 'longitude', 'active', + 'canceled', + 'closed', + 'completed', 'cron', + 'featured', 'flagged', 'internal', 'locked', 'pending', 'planned', + 'prioritized', 'problem', + 'published', + 'released', 'retired', + 'special', 'suspended', 'unknown', + 'locale', 'label', 'title', 'byline', @@ -124,13 +117,9 @@ class FlowTestCase extends TestCase 'avatar', 'ui', 'assets', - 'backlog', - 'board', - 'flow', 'meta', 'notes', 'options', - 'roadmap', 'sources', ]; } diff --git a/tests/Feature/Http/Controllers/MatrixTestCase.php b/tests/Feature/Http/Controllers/MatrixTestCase.php index 654a534..d6378c9 100644 --- a/tests/Feature/Http/Controllers/MatrixTestCase.php +++ b/tests/Feature/Http/Controllers/MatrixTestCase.php @@ -6,29 +6,9 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Http\Controllers; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Controllers\MatrixController; -use Playground\Matrix\Resource\Http\Requests; -use Playground\Matrix\Resource\Http\Resources; -use Playground\Matrix\Resource\Policies\MatrixPolicy; - /** * \Tests\Feature\Playground\Matrix\Resource\Http\Controllers\MatrixTestCase */ -#[CoversClass(MatrixController::class)] -#[CoversClass(MatrixPolicy::class)] -#[CoversClass(Requests\Matrix\CreateRequest::class)] -#[CoversClass(Requests\Matrix\DestroyRequest::class)] -#[CoversClass(Requests\Matrix\EditRequest::class)] -#[CoversClass(Requests\Matrix\IndexRequest::class)] -#[CoversClass(Requests\Matrix\LockRequest::class)] -#[CoversClass(Requests\Matrix\RestoreRequest::class)] -#[CoversClass(Requests\Matrix\ShowRequest::class)] -#[CoversClass(Requests\Matrix\StoreRequest::class)] -#[CoversClass(Requests\Matrix\UnlockRequest::class)] -#[CoversClass(Requests\Matrix\UpdateRequest::class)] -#[CoversClass(Resources\Matrix::class)] -#[CoversClass(Resources\MatrixCollection::class)] class MatrixTestCase extends TestCase { public string $fqdn = \Playground\Matrix\Models\Matrix::class; @@ -57,25 +37,26 @@ class MatrixTestCase extends TestCase */ protected $structure_model = [ 'id', + 'matrix_type', 'created_by_id', 'modified_by_id', 'owned_by_id', 'parent_id', - 'matrix_type', - 'matrix_id', 'created_at', 'updated_at', 'deleted_at', - 'start_at', - 'planned_start_at', - 'end_at', - 'planned_end_at', 'canceled_at', 'closed_at', 'embargo_at', + 'planned_end_at', + 'planned_start_at', 'postponed_at', + 'published_at', + 'resolved_at', 'resumed_at', 'suspended_at', + 'timer_end_at', + 'timer_start_at', 'gids', 'po', 'pg', @@ -103,15 +84,21 @@ class MatrixTestCase extends TestCase 'closed', 'completed', 'cron', + 'featured', 'flagged', 'internal', 'locked', 'pending', 'planned', + 'prioritized', 'problem', + 'published', + 'released', 'retired', + 'special', 'suspended', 'unknown', + 'locale', 'label', 'title', 'byline', diff --git a/tests/Feature/Http/Controllers/MilestoneTestCase.php b/tests/Feature/Http/Controllers/MilestoneTestCase.php index 0a094f0..90176cf 100644 --- a/tests/Feature/Http/Controllers/MilestoneTestCase.php +++ b/tests/Feature/Http/Controllers/MilestoneTestCase.php @@ -6,29 +6,9 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Http\Controllers; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Controllers\MilestoneController; -use Playground\Matrix\Resource\Http\Requests; -use Playground\Matrix\Resource\Http\Resources; -use Playground\Matrix\Resource\Policies\MilestonePolicy; - /** * \Tests\Feature\Playground\Matrix\Resource\Http\Controllers\MilestoneTestCase */ -#[CoversClass(MilestoneController::class)] -#[CoversClass(MilestonePolicy::class)] -#[CoversClass(Requests\Milestone\CreateRequest::class)] -#[CoversClass(Requests\Milestone\DestroyRequest::class)] -#[CoversClass(Requests\Milestone\EditRequest::class)] -#[CoversClass(Requests\Milestone\IndexRequest::class)] -#[CoversClass(Requests\Milestone\LockRequest::class)] -#[CoversClass(Requests\Milestone\RestoreRequest::class)] -#[CoversClass(Requests\Milestone\ShowRequest::class)] -#[CoversClass(Requests\Milestone\StoreRequest::class)] -#[CoversClass(Requests\Milestone\UnlockRequest::class)] -#[CoversClass(Requests\Milestone\UpdateRequest::class)] -#[CoversClass(Resources\Milestone::class)] -#[CoversClass(Resources\MilestoneCollection::class)] class MilestoneTestCase extends TestCase { public string $fqdn = \Playground\Matrix\Models\Milestone::class; @@ -57,11 +37,11 @@ class MilestoneTestCase extends TestCase */ protected $structure_model = [ 'id', + 'milestone_type', 'created_by_id', 'modified_by_id', 'owned_by_id', 'parent_id', - 'milestone_type', 'backlog_id', 'board_id', 'epic_id', @@ -80,18 +60,18 @@ class MilestoneTestCase extends TestCase 'created_at', 'updated_at', 'deleted_at', - 'start_at', - 'planned_start_at', - 'end_at', - 'planned_end_at', 'canceled_at', 'closed_at', 'embargo_at', + 'planned_end_at', + 'planned_start_at', 'postponed_at', 'published_at', - 'released_at', + 'resolved_at', 'resumed_at', 'suspended_at', + 'timer_end_at', + 'timer_start_at', 'gids', 'po', 'pg', @@ -119,20 +99,21 @@ class MilestoneTestCase extends TestCase 'closed', 'completed', 'cron', - 'duplicate', - 'fixed', + 'featured', 'flagged', 'internal', 'locked', 'pending', 'planned', + 'prioritized', 'problem', 'published', 'released', 'retired', - 'resolved', + 'special', 'suspended', 'unknown', + 'locale', 'label', 'title', 'byline', @@ -150,6 +131,7 @@ class MilestoneTestCase extends TestCase 'backlog', 'board', 'flow', + 'history', 'meta', 'notes', 'options', diff --git a/tests/Feature/Http/Controllers/NoteTestCase.php b/tests/Feature/Http/Controllers/NoteTestCase.php index 656633f..a020d1d 100644 --- a/tests/Feature/Http/Controllers/NoteTestCase.php +++ b/tests/Feature/Http/Controllers/NoteTestCase.php @@ -6,29 +6,9 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Http\Controllers; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Controllers\NoteController; -use Playground\Matrix\Resource\Http\Requests; -use Playground\Matrix\Resource\Http\Resources; -use Playground\Matrix\Resource\Policies\NotePolicy; - /** * \Tests\Feature\Playground\Matrix\Resource\Http\Controllers\NoteTestCase */ -#[CoversClass(NoteController::class)] -#[CoversClass(NotePolicy::class)] -#[CoversClass(Requests\Note\CreateRequest::class)] -#[CoversClass(Requests\Note\DestroyRequest::class)] -#[CoversClass(Requests\Note\EditRequest::class)] -#[CoversClass(Requests\Note\IndexRequest::class)] -#[CoversClass(Requests\Note\LockRequest::class)] -#[CoversClass(Requests\Note\RestoreRequest::class)] -#[CoversClass(Requests\Note\ShowRequest::class)] -#[CoversClass(Requests\Note\StoreRequest::class)] -#[CoversClass(Requests\Note\UnlockRequest::class)] -#[CoversClass(Requests\Note\UpdateRequest::class)] -#[CoversClass(Resources\Note::class)] -#[CoversClass(Resources\NoteCollection::class)] class NoteTestCase extends TestCase { public string $fqdn = \Playground\Matrix\Models\Note::class; @@ -57,11 +37,11 @@ class NoteTestCase extends TestCase */ protected $structure_model = [ 'id', + 'note_type', 'created_by_id', 'modified_by_id', 'owned_by_id', 'parent_id', - 'note_type', 'matrix_id', 'tag_id', 'created_at', @@ -93,13 +73,22 @@ class NoteTestCase extends TestCase 'canceled', 'closed', 'completed', + 'cron', + 'featured', 'flagged', 'internal', 'locked', 'pending', 'planned', + 'prioritized', 'problem', + 'published', + 'released', + 'retired', + 'special', + 'suspended', 'unknown', + 'locale', 'label', 'title', 'byline', diff --git a/tests/Feature/Http/Controllers/Playground/BacklogRouteTest.php b/tests/Feature/Http/Controllers/Playground/BacklogRouteTest.php index 9d9171d..61b74db 100644 --- a/tests/Feature/Http/Controllers/Playground/BacklogRouteTest.php +++ b/tests/Feature/Http/Controllers/Playground/BacklogRouteTest.php @@ -1,9 +1,9 @@ create([ - 'key' => 'testing', - ]); - - /** - * @var Ticket $ticket - */ - $ticket = Ticket::factory()->make([ - 'project_id' => $project->id, - 'priority' => 'fire', - 'resolution' => 'unresolved', - 'severity' => 'medium', - 'step' => '', - 'handler' => 'handler', - 'state' => 'state', - 'workflow_type' => 'workflow_type', - 'actual' => 'actual', - 'expected' => 'expected', - 'steps' => 'steps', - 'story' => 'story', - 'criteria' => 'Important criteria', - ]); - - /** - * @var User $user - */ - $user = User::factory()->admin()->create(); - - $url = route('playground.matrix.resource.tickets.post'); - - $data = $ticket->toArray(); - - // dump([ - // '__METHOD__' => __METHOD__, - // 'project' => $project->toArray(), - // 'ticket' => $ticket->toArray(), - // // 'user' => $user->toArray(), - // '$url' => $url, - // ]); - - $response = $this->actingAs($user)->postJson($url, $data); - - // $response->dump(); - $response->assertStatus(201); - - $response->assertJsonPath('data.project_id', $ticket->project_id); - $response->assertJsonPath('data.project_id', $project->id); - $response->assertJsonPath('data.handler', 'handler'); - $response->assertJsonPath('data.priority', 'fire'); - $response->assertJsonPath('data.resolution', 'unresolved'); - $response->assertJsonPath('data.severity', 'medium'); - $response->assertJsonPath('data.step', ''); - $response->assertJsonPath('data.state', 'state'); - $response->assertJsonPath('data.workflow_type', 'workflow_type'); - $response->assertJsonPath('data.actual', 'actual'); - $response->assertJsonPath('data.expected', 'expected'); - $response->assertJsonPath('data.steps', 'steps'); - $response->assertJsonPath('data.story', 'story'); - $response->assertJsonPath('data.criteria', 'Important criteria'); - - $this->assertAuthenticated(); - } - - public function test_admin_can_update_ticket_with_project(): void - { - /** - * @var Project $project - */ - $project = Project::factory()->create([ - 'key' => 'testing', - ]); - - /** - * @var Ticket $ticket - */ - $ticket = Ticket::factory()->create([ - 'project_id' => $project->id, - ]); - - /** - * @var Ticket $ticket - */ - $ticket_update = Ticket::factory()->make([ - 'project_id' => $project->id, - 'priority' => 'fire', - 'resolution' => 'unresolved', - 'severity' => 'medium', - 'step' => '', - 'handler' => 'handler', - 'state' => 'state', - 'workflow_type' => 'workflow_type', - 'actual' => 'actual', - 'expected' => 'expected', - 'steps' => 'steps', - 'story' => 'story', - 'criteria' => 'Important criteria', - ]); - - /** - * @var User $user - */ - $user = User::factory()->admin()->create(); - - $url = route('playground.matrix.resource.tickets.patch', $ticket); - - $data = $ticket_update->toArray(); - - // dump([ - // '__METHOD__' => __METHOD__, - // 'project' => $project->toArray(), - // 'ticket' => $ticket->toArray(), - // // 'user' => $user->toArray(), - // '$url' => $url, - // ]); - - $response = $this->actingAs($user)->patchJson($url, $data); - - // $response->dump(); - $response->assertStatus(200); - - $response->assertJsonPath('data.project_id', $ticket->project_id); - $response->assertJsonPath('data.project_id', $project->id); - $response->assertJsonPath('data.project_id', $ticket_update->project_id); - $response->assertJsonPath('data.handler', 'handler'); - $response->assertJsonPath('data.priority', 'fire'); - $response->assertJsonPath('data.resolution', 'unresolved'); - $response->assertJsonPath('data.severity', 'medium'); - $response->assertJsonPath('data.step', ''); - $response->assertJsonPath('data.state', 'state'); - $response->assertJsonPath('data.workflow_type', 'workflow_type'); - $response->assertJsonPath('data.actual', 'actual'); - $response->assertJsonPath('data.expected', 'expected'); - $response->assertJsonPath('data.steps', 'steps'); - $response->assertJsonPath('data.story', 'story'); - $response->assertJsonPath('data.criteria', 'Important criteria'); - - $this->assertAuthenticated(); - } } diff --git a/tests/Feature/Http/Controllers/Playground/VersionRouteTest.php b/tests/Feature/Http/Controllers/Playground/VersionRouteTest.php index 068fcd3..7c96396 100644 --- a/tests/Feature/Http/Controllers/Playground/VersionRouteTest.php +++ b/tests/Feature/Http/Controllers/Playground/VersionRouteTest.php @@ -1,9 +1,9 @@ 'matrix', 'privilege' => 'playground-matrix-resource:', 'table' => '', - 'view' => 'playground.matrix.resource::', + 'view' => 'playground-matrix-resource::', ]; /** diff --git a/tests/Feature/Http/Controllers/TicketTestCase.php b/tests/Feature/Http/Controllers/TicketTestCase.php index c66fa75..38ff626 100644 --- a/tests/Feature/Http/Controllers/TicketTestCase.php +++ b/tests/Feature/Http/Controllers/TicketTestCase.php @@ -6,29 +6,9 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Http\Controllers; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Controllers\TicketController; -use Playground\Matrix\Resource\Http\Requests; -use Playground\Matrix\Resource\Http\Resources; -use Playground\Matrix\Resource\Policies\TicketPolicy; - /** * \Tests\Feature\Playground\Matrix\Resource\Http\Controllers\TicketTestCase */ -#[CoversClass(TicketController::class)] -#[CoversClass(TicketPolicy::class)] -#[CoversClass(Requests\Ticket\CreateRequest::class)] -#[CoversClass(Requests\Ticket\DestroyRequest::class)] -#[CoversClass(Requests\Ticket\EditRequest::class)] -#[CoversClass(Requests\Ticket\IndexRequest::class)] -#[CoversClass(Requests\Ticket\LockRequest::class)] -#[CoversClass(Requests\Ticket\RestoreRequest::class)] -#[CoversClass(Requests\Ticket\ShowRequest::class)] -#[CoversClass(Requests\Ticket\StoreRequest::class)] -#[CoversClass(Requests\Ticket\UnlockRequest::class)] -#[CoversClass(Requests\Ticket\UpdateRequest::class)] -#[CoversClass(Resources\Ticket::class)] -#[CoversClass(Resources\TicketCollection::class)] class TicketTestCase extends TestCase { public string $fqdn = \Playground\Matrix\Models\Ticket::class; @@ -57,48 +37,47 @@ class TicketTestCase extends TestCase */ protected $structure_model = [ 'id', + 'ticket_type', 'created_by_id', 'modified_by_id', 'owned_by_id', 'parent_id', - 'ticket_type', 'backlog_id', 'board_id', - 'completed_by_id', - 'duplicate_id', 'epic_id', - 'fixed_by_id', 'flow_id', 'matrix_id', 'milestone_id', 'note_id', 'project_id', 'release_id', - 'reported_by_id', 'roadmap_id', 'source_id', 'sprint_id', 'tag_id', 'team_id', - 'version_fixed_id', 'version_id', + 'completed_by_id', + 'duplicate_id', + 'fixed_by_id', + 'reported_by_id', + 'version_fixed_id', 'created_at', 'updated_at', 'deleted_at', - 'start_at', - 'planned_start_at', - 'end_at', - 'planned_end_at', 'canceled_at', 'closed_at', 'embargo_at', 'fixed_at', + 'planned_end_at', + 'planned_start_at', 'postponed_at', 'published_at', - 'released_at', - 'resumed_at', 'resolved_at', + 'resumed_at', 'suspended_at', + 'timer_end_at', + 'timer_start_at', 'gids', 'po', 'pg', @@ -127,6 +106,7 @@ class TicketTestCase extends TestCase 'completed', 'cron', 'duplicate', + 'featured', 'fixed', 'flagged', 'internal', @@ -137,10 +117,12 @@ class TicketTestCase extends TestCase 'problem', 'published', 'released', - 'retired', 'resolved', + 'retired', + 'special', 'suspended', 'unknown', + 'locale', 'label', 'title', 'byline', diff --git a/tests/Feature/Http/Controllers/VersionTestCase.php b/tests/Feature/Http/Controllers/VersionTestCase.php index 4d14243..b47b442 100644 --- a/tests/Feature/Http/Controllers/VersionTestCase.php +++ b/tests/Feature/Http/Controllers/VersionTestCase.php @@ -6,29 +6,9 @@ declare(strict_types=1); namespace Tests\Feature\Playground\Matrix\Resource\Http\Controllers; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Controllers\VersionController; -use Playground\Matrix\Resource\Http\Requests; -use Playground\Matrix\Resource\Http\Resources; -use Playground\Matrix\Resource\Policies\VersionPolicy; - /** * \Tests\Feature\Playground\Matrix\Resource\Http\Controllers\VersionTestCase */ -#[CoversClass(VersionController::class)] -#[CoversClass(VersionPolicy::class)] -#[CoversClass(Requests\Version\CreateRequest::class)] -#[CoversClass(Requests\Version\DestroyRequest::class)] -#[CoversClass(Requests\Version\EditRequest::class)] -#[CoversClass(Requests\Version\IndexRequest::class)] -#[CoversClass(Requests\Version\LockRequest::class)] -#[CoversClass(Requests\Version\RestoreRequest::class)] -#[CoversClass(Requests\Version\ShowRequest::class)] -#[CoversClass(Requests\Version\StoreRequest::class)] -#[CoversClass(Requests\Version\UnlockRequest::class)] -#[CoversClass(Requests\Version\UpdateRequest::class)] -#[CoversClass(Resources\Version::class)] -#[CoversClass(Resources\VersionCollection::class)] class VersionTestCase extends TestCase { public string $fqdn = \Playground\Matrix\Models\Version::class; @@ -57,15 +37,31 @@ class VersionTestCase extends TestCase */ protected $structure_model = [ 'id', + 'version_type', 'created_by_id', 'modified_by_id', 'owned_by_id', 'parent_id', - 'version_type', 'matrix_id', + 'project_id', + 'tag_id', + 'team_id', + 'ticket_id', 'created_at', 'updated_at', 'deleted_at', + 'canceled_at', + 'closed_at', + 'embargo_at', + 'planned_end_at', + 'planned_start_at', + 'postponed_at', + 'published_at', + 'resolved_at', + 'resumed_at', + 'suspended_at', + 'timer_end_at', + 'timer_start_at', 'gids', 'po', 'pg', @@ -89,11 +85,27 @@ class VersionTestCase extends TestCase 'latitude', 'longitude', 'active', + 'canceled', + 'closed', + 'completed', + 'cron', + 'featured', + 'fixed', 'flagged', 'internal', 'locked', + 'pending', + 'planned', + 'prioritized', + 'problem', + 'published', + 'released', + 'resolved', 'retired', + 'special', + 'suspended', 'unknown', + 'locale', 'label', 'title', 'byline', diff --git a/tests/Feature/Http/Requests/FormRequest/InstanceTest.php b/tests/Feature/Http/Requests/FormRequest/InstanceTest.php new file mode 100644 index 0000000..b83599b --- /dev/null +++ b/tests/Feature/Http/Requests/FormRequest/InstanceTest.php @@ -0,0 +1,36 @@ +admin()->create(); + + Auth::setUser($user); + + $instance = new FormRequest; + $instance->setUserResolver(function () use ($user) { + return $user; + }); + $this->assertTrue($instance->authorize()); + } +} diff --git a/tests/Feature/TestCase.php b/tests/Feature/TestCase.php index f668a02..446ebf5 100644 --- a/tests/Feature/TestCase.php +++ b/tests/Feature/TestCase.php @@ -33,6 +33,8 @@ class TestCase extends OrchestraTestCase protected bool $load_migrations_laravel = false; + protected bool $load_migrations_package = false; + protected bool $load_migrations_playground = true; protected bool $setUpUserForPlayground = false; diff --git a/tests/Unit/Http/Requests/Backlog/CreateRequestTest.php b/tests/Unit/Http/Requests/Backlog/CreateRequestTest.php index 19fdc61..9e80820 100644 --- a/tests/Unit/Http/Requests/Backlog/CreateRequestTest.php +++ b/tests/Unit/Http/Requests/Backlog/CreateRequestTest.php @@ -6,15 +6,12 @@ declare(strict_types=1); namespace Tests\Unit\Playground\Matrix\Resource\Http\Requests\Backlog; -use PHPUnit\Framework\Attributes\CoversClass; -use Playground\Matrix\Resource\Http\Requests\Backlog\CreateRequest; use Tests\Unit\Playground\Matrix\Resource\Http\Requests\RequestTestCase; /** * \Tests\Unit\Playground\Matrix\Resource\Http\Requests\Backlog\CreateRequestTest */ -#[CoversClass(CreateRequest::class)] class CreateRequestTest extends RequestTestCase { - protected string $requestClass = CreateRequest::class; + protected string $requestClass = \Playground\Matrix\Resource\Http\Requests\Backlog\CreateRequest::class; } diff --git a/tests/Unit/Http/Requests/Backlog/DestroyRequestTest.php b/tests/Unit/Http/Requests/Backlog/DestroyRequestTest.php new file mode 100644 index 0000000..2a2839e --- /dev/null +++ b/tests/Unit/Http/Requests/Backlog/DestroyRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Backlog/UnlockRequestTest.php b/tests/Unit/Http/Requests/Backlog/UnlockRequestTest.php new file mode 100644 index 0000000..a70b382 --- /dev/null +++ b/tests/Unit/Http/Requests/Backlog/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Board/CreateRequestTest.php b/tests/Unit/Http/Requests/Board/CreateRequestTest.php new file mode 100644 index 0000000..c5466fb --- /dev/null +++ b/tests/Unit/Http/Requests/Board/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Board/UnlockRequestTest.php b/tests/Unit/Http/Requests/Board/UnlockRequestTest.php new file mode 100644 index 0000000..67e31ca --- /dev/null +++ b/tests/Unit/Http/Requests/Board/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Epic/CreateRequestTest.php b/tests/Unit/Http/Requests/Epic/CreateRequestTest.php new file mode 100644 index 0000000..890b118 --- /dev/null +++ b/tests/Unit/Http/Requests/Epic/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Epic/UnlockRequestTest.php b/tests/Unit/Http/Requests/Epic/UnlockRequestTest.php new file mode 100644 index 0000000..6e36cc5 --- /dev/null +++ b/tests/Unit/Http/Requests/Epic/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Flow/CreateRequestTest.php b/tests/Unit/Http/Requests/Flow/CreateRequestTest.php new file mode 100644 index 0000000..dfa9b7c --- /dev/null +++ b/tests/Unit/Http/Requests/Flow/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Flow/UnlockRequestTest.php b/tests/Unit/Http/Requests/Flow/UnlockRequestTest.php new file mode 100644 index 0000000..7d8ce5f --- /dev/null +++ b/tests/Unit/Http/Requests/Flow/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/FormRequest/InstanceTest.php b/tests/Unit/Http/Requests/FormRequest/InstanceTest.php new file mode 100644 index 0000000..e989b10 --- /dev/null +++ b/tests/Unit/Http/Requests/FormRequest/InstanceTest.php @@ -0,0 +1,70 @@ +assertFalse($instance->authorize()); + } + + public function test_RULES_is_empty_by_default(): void + { + $instance = new FormRequest; + + $this->assertIsArray($instance->rules()); + $this->assertEmpty($instance->rules()); + } + + public function test_userHasAdminPrivileges_without_user(): void + { + $instance = new FormRequest; + + $this->assertFalse($instance->userHasAdminPrivileges()); + } + + public function test_userHasAdminPrivileges_with_admin(): void + { + /** + * @var User $user + */ + $user = User::factory()->admin()->make(); + + $instance = new FormRequest; + + $this->assertTrue($instance->userHasAdminPrivileges($user)); + } + + public function test_userHasAdminPrivileges_with_default_laravel_user(): void + { + /** + * @var DefaultUser $user + */ + $user = DefaultUser::factory()->admin()->make(); + + $instance = new FormRequest; + + /** + * NOTE: all users will be an admin since there is no difference + * between a regular user. + */ + $this->assertTrue($instance->userHasAdminPrivileges($user)); + } +} diff --git a/tests/Unit/Http/Requests/Matrix/CreateRequestTest.php b/tests/Unit/Http/Requests/Matrix/CreateRequestTest.php new file mode 100644 index 0000000..034f21e --- /dev/null +++ b/tests/Unit/Http/Requests/Matrix/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Matrix/UnlockRequestTest.php b/tests/Unit/Http/Requests/Matrix/UnlockRequestTest.php new file mode 100644 index 0000000..e832bee --- /dev/null +++ b/tests/Unit/Http/Requests/Matrix/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Milestone/CreateRequestTest.php b/tests/Unit/Http/Requests/Milestone/CreateRequestTest.php new file mode 100644 index 0000000..d26a794 --- /dev/null +++ b/tests/Unit/Http/Requests/Milestone/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Milestone/UnlockRequestTest.php b/tests/Unit/Http/Requests/Milestone/UnlockRequestTest.php new file mode 100644 index 0000000..d83c382 --- /dev/null +++ b/tests/Unit/Http/Requests/Milestone/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Note/CreateRequestTest.php b/tests/Unit/Http/Requests/Note/CreateRequestTest.php new file mode 100644 index 0000000..809d31a --- /dev/null +++ b/tests/Unit/Http/Requests/Note/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Note/UnlockRequestTest.php b/tests/Unit/Http/Requests/Note/UnlockRequestTest.php new file mode 100644 index 0000000..e6b4bce --- /dev/null +++ b/tests/Unit/Http/Requests/Note/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Project/CreateRequestTest.php b/tests/Unit/Http/Requests/Project/CreateRequestTest.php new file mode 100644 index 0000000..9b856a7 --- /dev/null +++ b/tests/Unit/Http/Requests/Project/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Project/UnlockRequestTest.php b/tests/Unit/Http/Requests/Project/UnlockRequestTest.php new file mode 100644 index 0000000..61a71c1 --- /dev/null +++ b/tests/Unit/Http/Requests/Project/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Release/CreateRequestTest.php b/tests/Unit/Http/Requests/Release/CreateRequestTest.php new file mode 100644 index 0000000..837f1b9 --- /dev/null +++ b/tests/Unit/Http/Requests/Release/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Release/UnlockRequestTest.php b/tests/Unit/Http/Requests/Release/UnlockRequestTest.php new file mode 100644 index 0000000..fba7158 --- /dev/null +++ b/tests/Unit/Http/Requests/Release/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Roadmap/CreateRequestTest.php b/tests/Unit/Http/Requests/Roadmap/CreateRequestTest.php new file mode 100644 index 0000000..c58e32f --- /dev/null +++ b/tests/Unit/Http/Requests/Roadmap/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Roadmap/UnlockRequestTest.php b/tests/Unit/Http/Requests/Roadmap/UnlockRequestTest.php new file mode 100644 index 0000000..b02be0c --- /dev/null +++ b/tests/Unit/Http/Requests/Roadmap/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Source/CreateRequestTest.php b/tests/Unit/Http/Requests/Source/CreateRequestTest.php new file mode 100644 index 0000000..d23eb4e --- /dev/null +++ b/tests/Unit/Http/Requests/Source/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Source/UnlockRequestTest.php b/tests/Unit/Http/Requests/Source/UnlockRequestTest.php new file mode 100644 index 0000000..00d08f5 --- /dev/null +++ b/tests/Unit/Http/Requests/Source/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Sprint/CreateRequestTest.php b/tests/Unit/Http/Requests/Sprint/CreateRequestTest.php new file mode 100644 index 0000000..a766970 --- /dev/null +++ b/tests/Unit/Http/Requests/Sprint/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Sprint/UnlockRequestTest.php b/tests/Unit/Http/Requests/Sprint/UnlockRequestTest.php new file mode 100644 index 0000000..c389c0b --- /dev/null +++ b/tests/Unit/Http/Requests/Sprint/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Tag/CreateRequestTest.php b/tests/Unit/Http/Requests/Tag/CreateRequestTest.php new file mode 100644 index 0000000..7f1e1e6 --- /dev/null +++ b/tests/Unit/Http/Requests/Tag/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Tag/UnlockRequestTest.php b/tests/Unit/Http/Requests/Tag/UnlockRequestTest.php new file mode 100644 index 0000000..2c68fdd --- /dev/null +++ b/tests/Unit/Http/Requests/Tag/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Team/CreateRequestTest.php b/tests/Unit/Http/Requests/Team/CreateRequestTest.php new file mode 100644 index 0000000..884543c --- /dev/null +++ b/tests/Unit/Http/Requests/Team/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Team/UnlockRequestTest.php b/tests/Unit/Http/Requests/Team/UnlockRequestTest.php new file mode 100644 index 0000000..2e67954 --- /dev/null +++ b/tests/Unit/Http/Requests/Team/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Ticket/CreateRequestTest.php b/tests/Unit/Http/Requests/Ticket/CreateRequestTest.php new file mode 100644 index 0000000..18f12ad --- /dev/null +++ b/tests/Unit/Http/Requests/Ticket/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Ticket/UnlockRequestTest.php b/tests/Unit/Http/Requests/Ticket/UnlockRequestTest.php new file mode 100644 index 0000000..57a58bf --- /dev/null +++ b/tests/Unit/Http/Requests/Ticket/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Version/CreateRequestTest.php b/tests/Unit/Http/Requests/Version/CreateRequestTest.php new file mode 100644 index 0000000..951db50 --- /dev/null +++ b/tests/Unit/Http/Requests/Version/CreateRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_StoreRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new StoreRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/Http/Requests/Version/UnlockRequestTest.php b/tests/Unit/Http/Requests/Version/UnlockRequestTest.php new file mode 100644 index 0000000..3a3f4c6 --- /dev/null +++ b/tests/Unit/Http/Requests/Version/UnlockRequestTest.php @@ -0,0 +1,17 @@ + false]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayNotHasKey('revision', $rules); + } + + public function test_UpdateRequest_rules_with_optional_revisions_enabled(): void + { + config(['playground-matrix-resource.revisions.optional' => true]); + $instance = new UpdateRequest; + $rules = $instance->rules(); + $this->assertNotEmpty($rules); + $this->assertIsArray($rules); + $this->assertArrayHasKey('revision', $rules); + $this->assertSame('bool', $rules['revision']); + } +} diff --git a/tests/Unit/PackageProviders.php b/tests/Unit/PackageProviders.php index a6ba242..c1f8a62 100644 --- a/tests/Unit/PackageProviders.php +++ b/tests/Unit/PackageProviders.php @@ -11,8 +11,6 @@ */ trait PackageProviders { - protected string $package_providers_dir = __DIR__; - protected function getPackageProviders($app) { return [ diff --git a/tests/Unit/ServiceProvider/InstanceTest.php b/tests/Unit/ServiceProvider/InstanceTest.php index f3f04b2..16af386 100644 --- a/tests/Unit/ServiceProvider/InstanceTest.php +++ b/tests/Unit/ServiceProvider/InstanceTest.php @@ -7,7 +7,6 @@ namespace Tests\Unit\Playground\Matrix\Resource\ServiceProvider; use Illuminate\Database\Eloquent\Model; -use PHPUnit\Framework\Attributes\CoversClass; use Playground\Matrix\Resource\ServiceProvider; use Tests\Unit\Playground\Matrix\Resource\TestCase; use TiMacDonald\Log\LogEntry; @@ -16,7 +15,6 @@ /** * \Tests\Unit\Playground\Matrix\Resource\ServiceProvider\InstanceTest */ -#[CoversClass(ServiceProvider::class)] class InstanceTest extends TestCase { public function test_version_matches(): void