Skip to content

Conversation

hoegerma
Copy link
Contributor

@hoegerma hoegerma commented Jun 25, 2025

hinzufügen von Lesezugriffen auf das Datenmodell

Summary by CodeRabbit

  • New Features
    • Introduced a comprehensive set of new REST API endpoints for retrieving information on associations, seasons, leagues, league groups, matchdays, clubs, teams, gyms, and persons.
    • Added detailed data structures for various sports-related entities, improving data consistency and discoverability.
  • Documentation
    • Updated search index data for improved documentation search functionality.
    • Expanded API documentation to include new endpoints and schema definitions.

Copy link

⏳ I'm reviewing this pull request for security vulnerabilities and code quality issues. I'll provide an update when I'm done

@github-actions github-actions bot requested a review from hoegertn June 25, 2025 09:45
@taimos-projen taimos-projen bot enabled auto-merge June 25, 2025 09:45
Copy link
Contributor

coderabbitai bot commented Jun 25, 2025

"""

Walkthrough

This update introduces a comprehensive set of new REST API endpoints and schema definitions to the OpenAPI specification, enabling retrieval of sports-related entities such as associations, seasons, leagues, groups, clubs, teams, gyms, persons, and matchdays. Additionally, the search index data in the documentation assets is refreshed by replacing its encoded data string.

Changes

File(s) Change Summary
docs/assets/search.js Replaced the entire encoded string assigned to window.searchData with a new data blob.
rest.yaml Added numerous new GET endpoints for sports-related entities and detailed schema definitions.

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant API

  Client->>API: GET /associations
  API-->>Client: 200 OK (List of Association objects)

  Client->>API: GET /leagues/{id}
  API-->>Client: 200 OK (League object)

  Client->>API: GET /clubs/{clubId}/teams
  API-->>Client: 200 OK (List of Team objects)

  Client->>API: GET /persons/{personId}
  API-->>Client: 200 OK (Person object)
Loading

Poem

In fields of code, a rabbit leaps,
New endpoints bloom where data sleeps.
Clubs and teams, now fetched with ease,
Associations, gyms—retrieve as you please!
The docs refreshed, the search anew,
Hopping forward, APIs grew.
🐇✨
"""


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

✅ I finished the code review, and didn't find any security or code quality issues.

Signed-off-by: github-actions <github-actions@github.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
rest.yaml (1)

253-266: Trailing spaces & indentation warnings flood the linter.

yamllint reports >100 issues (trailing spaces, wrong indentation, excessive blank lines).
While they don’t break the spec, they:

• make diffs noisy
• slow down reviewers
• can cause CI failures if formatting checks are later enforced

Run a formatter (prettier-plugin-yaml, yamlfmt, etc.) once and commit the cleaned file.

Also applies to: 260-266

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4de2d88 and a39d2ce.

⛔ Files ignored due to path filters (1)
  • src/generated/rest.model.generated.ts is excluded by !**/generated/**
📒 Files selected for processing (2)
  • docs/assets/search.js (1 hunks)
  • rest.yaml (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
rest.yaml

[error] 253-253: trailing spaces

(trailing-spaces)


[error] 260-260: trailing spaces

(trailing-spaces)


[warning] 261-261: wrong indentation: expected 12 but found 14

(indentation)


[error] 299-299: trailing spaces

(trailing-spaces)


[warning] 300-300: wrong indentation: expected 12 but found 14

(indentation)


[error] 327-327: trailing spaces

(trailing-spaces)


[warning] 329-329: wrong indentation: expected 8 but found 6

(indentation)


[error] 338-338: trailing spaces

(trailing-spaces)


[warning] 339-339: wrong indentation: expected 12 but found 14

(indentation)


[warning] 349-349: wrong indentation: expected 8 but found 6

(indentation)


[error] 364-364: trailing spaces

(trailing-spaces)


[warning] 365-365: wrong indentation: expected 12 but found 14

(indentation)


[warning] 374-374: wrong indentation: expected 8 but found 6

(indentation)


[error] 383-383: trailing spaces

(trailing-spaces)


[warning] 384-384: wrong indentation: expected 12 but found 14

(indentation)


[warning] 395-395: wrong indentation: expected 8 but found 6

(indentation)


[error] 410-410: trailing spaces

(trailing-spaces)


[error] 413-413: trailing spaces

(trailing-spaces)


[warning] 420-420: wrong indentation: expected 8 but found 6

(indentation)


[error] 423-423: trailing spaces

(trailing-spaces)


[warning] 447-447: wrong indentation: expected 8 but found 6

(indentation)


[error] 450-450: trailing spaces

(trailing-spaces)


[error] 480-480: trailing spaces

(trailing-spaces)


[error] 486-486: trailing spaces

(trailing-spaces)


[error] 495-495: trailing spaces

(trailing-spaces)


[warning] 504-504: wrong indentation: expected 16 but found 18

(indentation)


[error] 514-514: trailing spaces

(trailing-spaces)


[error] 526-526: trailing spaces

(trailing-spaces)


[error] 527-527: trailing spaces

(trailing-spaces)


[error] 548-548: trailing spaces

(trailing-spaces)


[error] 569-569: trailing spaces

(trailing-spaces)


[error] 591-591: trailing spaces

(trailing-spaces)


[warning] 650-650: too many spaces after colon

(colons)


[error] 655-655: trailing spaces

(trailing-spaces)


[error] 666-666: trailing spaces

(trailing-spaces)


[error] 685-685: trailing spaces

(trailing-spaces)


[warning] 689-689: wrong indentation: expected 6 but found 5

(indentation)


[warning] 692-692: wrong indentation: expected 7 but found 8

(indentation)


[error] 699-699: trailing spaces

(trailing-spaces)


[warning] 702-702: wrong indentation: expected 4 but found 5

(indentation)


[warning] 703-703: wrong indentation: expected 7 but found 6

(indentation)


[error] 718-718: trailing spaces

(trailing-spaces)


[warning] 721-721: wrong indentation: expected 4 but found 5

(indentation)


[warning] 722-722: wrong indentation: expected 7 but found 6

(indentation)


[error] 764-764: trailing spaces

(trailing-spaces)


[error] 765-765: trailing spaces

(trailing-spaces)


[warning] 767-767: wrong indentation: expected 4 but found 5

(indentation)


[warning] 768-768: wrong indentation: expected 7 but found 6

(indentation)


[error] 784-784: trailing spaces

(trailing-spaces)


[warning] 789-789: too many blank lines

(5 > 2) (empty-lines)


[error] 790-790: trailing spaces

(trailing-spaces)


[warning] 793-793: too many blank lines

(3 > 2) (empty-lines)


[error] 802-802: trailing spaces

(trailing-spaces)


[error] 804-804: trailing spaces

(trailing-spaces)


[error] 806-806: trailing spaces

(trailing-spaces)


[error] 808-808: trailing spaces

(trailing-spaces)


[error] 815-815: trailing spaces

(trailing-spaces)


[error] 818-818: trailing spaces

(trailing-spaces)


[error] 821-821: trailing spaces

(trailing-spaces)


[error] 823-823: trailing spaces

(trailing-spaces)


[error] 825-825: trailing spaces

(trailing-spaces)


[error] 827-827: trailing spaces

(trailing-spaces)


[error] 830-830: trailing spaces

(trailing-spaces)


[error] 832-832: trailing spaces

(trailing-spaces)


[error] 834-834: trailing spaces

(trailing-spaces)


[error] 838-838: trailing spaces

(trailing-spaces)


[error] 849-849: trailing spaces

(trailing-spaces)


[error] 852-852: trailing spaces

(trailing-spaces)


[error] 854-854: trailing spaces

(trailing-spaces)


[error] 856-856: trailing spaces

(trailing-spaces)


[error] 859-859: trailing spaces

(trailing-spaces)


[error] 861-861: trailing spaces

(trailing-spaces)


[error] 863-863: trailing spaces

(trailing-spaces)


[error] 866-866: trailing spaces

(trailing-spaces)


[error] 869-869: trailing spaces

(trailing-spaces)


[error] 871-871: trailing spaces

(trailing-spaces)


[error] 874-874: trailing spaces

(trailing-spaces)


[error] 876-876: trailing spaces

(trailing-spaces)


[error] 882-882: trailing spaces

(trailing-spaces)


[error] 884-884: trailing spaces

(trailing-spaces)


[error] 885-885: trailing spaces

(trailing-spaces)


[error] 894-894: trailing spaces

(trailing-spaces)


[error] 896-896: trailing spaces

(trailing-spaces)


[error] 899-899: trailing spaces

(trailing-spaces)


[error] 904-904: trailing spaces

(trailing-spaces)


[error] 908-908: trailing spaces

(trailing-spaces)


[error] 910-910: trailing spaces

(trailing-spaces)


[error] 912-912: trailing spaces

(trailing-spaces)


[error] 928-928: trailing spaces

(trailing-spaces)


[error] 931-931: trailing spaces

(trailing-spaces)


[error] 933-933: trailing spaces

(trailing-spaces)


[error] 935-935: trailing spaces

(trailing-spaces)


[error] 939-939: trailing spaces

(trailing-spaces)


[error] 941-941: trailing spaces

(trailing-spaces)


[error] 943-943: trailing spaces

(trailing-spaces)


[error] 945-945: trailing spaces

(trailing-spaces)


[error] 947-947: trailing spaces

(trailing-spaces)


[error] 949-949: trailing spaces

(trailing-spaces)


[error] 960-960: trailing spaces

(trailing-spaces)


[error] 962-962: trailing spaces

(trailing-spaces)


[error] 965-965: trailing spaces

(trailing-spaces)


[error] 968-968: trailing spaces

(trailing-spaces)


[error] 971-971: trailing spaces

(trailing-spaces)


[error] 974-974: trailing spaces

(trailing-spaces)


[error] 989-989: trailing spaces

(trailing-spaces)


[error] 992-992: trailing spaces

(trailing-spaces)


[error] 994-994: trailing spaces

(trailing-spaces)


[error] 996-996: trailing spaces

(trailing-spaces)


[error] 998-998: trailing spaces

(trailing-spaces)


[error] 1002-1002: trailing spaces

(trailing-spaces)


[error] 1004-1004: trailing spaces

(trailing-spaces)


[error] 1006-1006: trailing spaces

(trailing-spaces)


[error] 1008-1008: trailing spaces

(trailing-spaces)


[error] 1010-1010: trailing spaces

(trailing-spaces)


[error] 1020-1020: trailing spaces

(trailing-spaces)


[error] 1023-1023: trailing spaces

(trailing-spaces)


[error] 1025-1025: trailing spaces

(trailing-spaces)


[error] 1027-1027: trailing spaces

(trailing-spaces)


[error] 1029-1029: trailing spaces

(trailing-spaces)


[error] 1031-1031: trailing spaces

(trailing-spaces)


[error] 1033-1033: trailing spaces

(trailing-spaces)


[error] 1037-1037: trailing spaces

(trailing-spaces)


[error] 1050-1050: trailing spaces

(trailing-spaces)


[error] 1051-1051: trailing spaces

(trailing-spaces)


[error] 1079-1079: trailing spaces

(trailing-spaces)


[error] 1090-1090: trailing spaces

(trailing-spaces)


[error] 1093-1093: trailing spaces

(trailing-spaces)


[warning] 1105-1105: wrong indentation: expected 8 but found 7

(indentation)


[error] 1110-1110: trailing spaces

(trailing-spaces)


[error] 1133-1133: trailing spaces

(trailing-spaces)


[error] 1137-1137: trailing spaces

(trailing-spaces)


[error] 1169-1169: trailing spaces

(trailing-spaces)


[error] 1175-1175: trailing spaces

(trailing-spaces)

🔇 Additional comments (1)
docs/assets/search.js (1)

1-1: Blob only update acknowledged.

File contains a single assignment with a regenerated search index. No code issues detected.

hoegerma and others added 7 commits June 25, 2025 12:20
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: github-actions <github-actions@github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: github-actions <github-actions@github.com>
Signed-off-by: github-actions <github-actions@github.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a39d2ce and f982306.

⛔ Files ignored due to path filters (1)
  • src/generated/rest.model.generated.ts is excluded by !**/generated/**
📒 Files selected for processing (1)
  • rest.yaml (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
rest.yaml

[error] 253-253: trailing spaces

(trailing-spaces)


[error] 260-260: trailing spaces

(trailing-spaces)


[warning] 261-261: wrong indentation: expected 12 but found 14

(indentation)


[error] 299-299: trailing spaces

(trailing-spaces)


[warning] 300-300: wrong indentation: expected 12 but found 14

(indentation)


[error] 327-327: trailing spaces

(trailing-spaces)


[warning] 329-329: wrong indentation: expected 8 but found 6

(indentation)


[error] 338-338: trailing spaces

(trailing-spaces)


[warning] 339-339: wrong indentation: expected 12 but found 14

(indentation)


[warning] 349-349: wrong indentation: expected 8 but found 6

(indentation)


[error] 364-364: trailing spaces

(trailing-spaces)


[warning] 365-365: wrong indentation: expected 12 but found 14

(indentation)


[warning] 374-374: wrong indentation: expected 8 but found 6

(indentation)


[error] 383-383: trailing spaces

(trailing-spaces)


[warning] 384-384: wrong indentation: expected 12 but found 14

(indentation)


[warning] 395-395: wrong indentation: expected 8 but found 6

(indentation)


[error] 410-410: trailing spaces

(trailing-spaces)


[error] 413-413: trailing spaces

(trailing-spaces)


[warning] 420-420: wrong indentation: expected 8 but found 6

(indentation)


[error] 423-423: trailing spaces

(trailing-spaces)


[warning] 447-447: wrong indentation: expected 8 but found 6

(indentation)


[error] 450-450: trailing spaces

(trailing-spaces)


[error] 480-480: trailing spaces

(trailing-spaces)


[error] 486-486: trailing spaces

(trailing-spaces)


[error] 495-495: trailing spaces

(trailing-spaces)


[warning] 504-504: wrong indentation: expected 16 but found 18

(indentation)


[error] 526-526: trailing spaces

(trailing-spaces)


[error] 547-547: trailing spaces

(trailing-spaces)


[error] 568-568: trailing spaces

(trailing-spaces)


[error] 590-590: trailing spaces

(trailing-spaces)


[warning] 649-649: too many spaces after colon

(colons)


[error] 654-654: trailing spaces

(trailing-spaces)


[error] 665-665: trailing spaces

(trailing-spaces)


[error] 684-684: trailing spaces

(trailing-spaces)


[warning] 688-688: wrong indentation: expected 6 but found 5

(indentation)


[warning] 691-691: wrong indentation: expected 7 but found 8

(indentation)


[error] 698-698: trailing spaces

(trailing-spaces)


[warning] 701-701: wrong indentation: expected 4 but found 5

(indentation)


[warning] 702-702: wrong indentation: expected 7 but found 6

(indentation)


[error] 717-717: trailing spaces

(trailing-spaces)


[warning] 720-720: wrong indentation: expected 4 but found 5

(indentation)


[warning] 721-721: wrong indentation: expected 7 but found 6

(indentation)


[error] 763-763: trailing spaces

(trailing-spaces)


[error] 764-764: trailing spaces

(trailing-spaces)


[warning] 766-766: wrong indentation: expected 4 but found 5

(indentation)


[warning] 767-767: wrong indentation: expected 7 but found 6

(indentation)


[error] 783-783: trailing spaces

(trailing-spaces)


[warning] 788-788: too many blank lines

(5 > 2) (empty-lines)


[error] 789-789: trailing spaces

(trailing-spaces)


[warning] 792-792: too many blank lines

(3 > 2) (empty-lines)


[error] 801-801: trailing spaces

(trailing-spaces)


[error] 803-803: trailing spaces

(trailing-spaces)


[error] 805-805: trailing spaces

(trailing-spaces)


[error] 807-807: trailing spaces

(trailing-spaces)


[error] 814-814: trailing spaces

(trailing-spaces)


[error] 817-817: trailing spaces

(trailing-spaces)


[error] 820-820: trailing spaces

(trailing-spaces)


[error] 822-822: trailing spaces

(trailing-spaces)


[error] 824-824: trailing spaces

(trailing-spaces)


[error] 829-829: trailing spaces

(trailing-spaces)


[error] 831-831: trailing spaces

(trailing-spaces)


[error] 833-833: trailing spaces

(trailing-spaces)


[error] 837-837: trailing spaces

(trailing-spaces)


[error] 848-848: trailing spaces

(trailing-spaces)


[error] 851-851: trailing spaces

(trailing-spaces)


[error] 853-853: trailing spaces

(trailing-spaces)


[error] 855-855: trailing spaces

(trailing-spaces)


[error] 858-858: trailing spaces

(trailing-spaces)


[error] 860-860: trailing spaces

(trailing-spaces)


[error] 862-862: trailing spaces

(trailing-spaces)


[error] 865-865: trailing spaces

(trailing-spaces)


[error] 868-868: trailing spaces

(trailing-spaces)


[error] 870-870: trailing spaces

(trailing-spaces)


[error] 873-873: trailing spaces

(trailing-spaces)


[error] 875-875: trailing spaces

(trailing-spaces)


[error] 881-881: trailing spaces

(trailing-spaces)


[error] 883-883: trailing spaces

(trailing-spaces)


[error] 884-884: trailing spaces

(trailing-spaces)


[error] 893-893: trailing spaces

(trailing-spaces)


[error] 895-895: trailing spaces

(trailing-spaces)


[error] 898-898: trailing spaces

(trailing-spaces)


[error] 903-903: trailing spaces

(trailing-spaces)


[error] 907-907: trailing spaces

(trailing-spaces)


[error] 909-909: trailing spaces

(trailing-spaces)


[error] 911-911: trailing spaces

(trailing-spaces)


[error] 927-927: trailing spaces

(trailing-spaces)


[error] 930-930: trailing spaces

(trailing-spaces)


[error] 932-932: trailing spaces

(trailing-spaces)


[error] 934-934: trailing spaces

(trailing-spaces)


[error] 938-938: trailing spaces

(trailing-spaces)


[error] 940-940: trailing spaces

(trailing-spaces)


[error] 942-942: trailing spaces

(trailing-spaces)


[error] 944-944: trailing spaces

(trailing-spaces)


[error] 946-946: trailing spaces

(trailing-spaces)


[error] 948-948: trailing spaces

(trailing-spaces)


[error] 959-959: trailing spaces

(trailing-spaces)


[error] 961-961: trailing spaces

(trailing-spaces)


[error] 964-964: trailing spaces

(trailing-spaces)


[error] 967-967: trailing spaces

(trailing-spaces)


[error] 970-970: trailing spaces

(trailing-spaces)


[error] 988-988: trailing spaces

(trailing-spaces)


[error] 991-991: trailing spaces

(trailing-spaces)


[error] 993-993: trailing spaces

(trailing-spaces)


[error] 995-995: trailing spaces

(trailing-spaces)


[error] 997-997: trailing spaces

(trailing-spaces)


[error] 1001-1001: trailing spaces

(trailing-spaces)


[error] 1003-1003: trailing spaces

(trailing-spaces)


[error] 1005-1005: trailing spaces

(trailing-spaces)


[error] 1007-1007: trailing spaces

(trailing-spaces)


[error] 1009-1009: trailing spaces

(trailing-spaces)


[error] 1019-1019: trailing spaces

(trailing-spaces)


[error] 1022-1022: trailing spaces

(trailing-spaces)


[error] 1024-1024: trailing spaces

(trailing-spaces)


[error] 1026-1026: trailing spaces

(trailing-spaces)


[error] 1028-1028: trailing spaces

(trailing-spaces)


[error] 1030-1030: trailing spaces

(trailing-spaces)


[error] 1032-1032: trailing spaces

(trailing-spaces)


[error] 1036-1036: trailing spaces

(trailing-spaces)


[error] 1049-1049: trailing spaces

(trailing-spaces)


[error] 1050-1050: trailing spaces

(trailing-spaces)


[error] 1078-1078: trailing spaces

(trailing-spaces)


[error] 1089-1089: trailing spaces

(trailing-spaces)


[error] 1092-1092: trailing spaces

(trailing-spaces)


[warning] 1104-1104: wrong indentation: expected 8 but found 7

(indentation)


[error] 1109-1109: trailing spaces

(trailing-spaces)


[error] 1132-1132: trailing spaces

(trailing-spaces)


[error] 1136-1136: trailing spaces

(trailing-spaces)


[error] 1168-1168: trailing spaces

(trailing-spaces)


[error] 1174-1174: trailing spaces

(trailing-spaces)

🔇 Additional comments (1)
rest.yaml (1)

970-975: Self-reference issue fixed – great catch

Season.association now correctly references Association, removing the infinite-loop problem flagged earlier.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (2)
rest.yaml (2)

888-890: Use the standard uri format for URLs

OpenAPI recognises uri, not url. Keeping the non-standard value drops client-side validation support.

-        website:
-          type: "string"
-          format: "url"
+        website:
+          type: "string"
+          format: "uri"

1058-1063: Plural fields declared as single objects – array wrapper missing

teams, games, and commissioners are plural but reference a single object, recreating the modeling bug noted earlier. Code generators will emit the wrong types.

-        teams:
-          $ref: "#/components/schemas/MatchDayTeam"
+        teams:
+          type: "array"
+          items:
+            $ref: "#/components/schemas/MatchDayTeam"

-        games:
-          $ref: "#/components/schemas/Game"
+        games:
+          type: "array"
+          items:
+            $ref: "#/components/schemas/Game"

-        commissioners:
-          $ref: "#/components/schemas/RefereeInfo"
+        commissioners:
+          type: "array"
+          items:
+            $ref: "#/components/schemas/RefereeInfo"

Remember to keep these three keys in the required list.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f982306 and 1a1d0dc.

📒 Files selected for processing (1)
  • rest.yaml (15 hunks)

hoegertn and others added 4 commits June 25, 2025 14:09
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: github-actions <github-actions@github.com>
Signed-off-by: github-actions <github-actions@github.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
rest.yaml (1)

1062-1067: Still unresolved: MatchDay plural fields are defined as single objects

teams, games, and commissioners are plural by name and business meaning but are still declared as singular $ref objects. Most generators will produce non-iterable properties, breaking client code.

-        teams:
-          $ref: "#/components/schemas/MatchDayTeam"
-        games:
-          $ref: "#/components/schemas/Game"
-        commissioners:
-          $ref: "#/components/schemas/RefereeInfo"
+        teams:
+          type: array
+          items:
+            $ref: "#/components/schemas/MatchDayTeam"
+        games:
+          type: array
+          items:
+            $ref: "#/components/schemas/Game"
+        commissioners:
+          type: array
+          items:
+            $ref: "#/components/schemas/RefereeInfo"

Remember to adjust the required list accordingly (teams, games, commissioners).

🧹 Nitpick comments (2)
rest.yaml (2)

284-296: Path design is non-RESTful and hampers cacheability

/seasons?associationId=... mixes collection context (seasons) with filtering by another resource (association). A hierarchical path communicates intent better and avoids query-param proliferation:

/associations/{associationId}/seasons

Consider introducing this nested path and deprecating the query version.


851-852: Add explicit enum for Person.gender

Currently gender is an unconstrained string. Down-stream systems will benefit from a fixed vocabulary:

-        gender:
-          type: "string"
+        gender:
+          type: "string"
+          enum: ["männlich", "weiblich", "divers"]
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 283ec19 and 9ea213b.

⛔ Files ignored due to path filters (1)
  • src/generated/rest.model.generated.ts is excluded by !**/generated/**
📒 Files selected for processing (1)
  • rest.yaml (15 hunks)
🔇 Additional comments (1)
rest.yaml (1)

958-975: registrationStart is optional but probably should be required

registrationEnd is in the required list while registrationStart is not. Double-check business rules; missing a start date may yield ambiguous registration windows.

hoegerma and others added 2 commits June 26, 2025 10:55
Signed-off-by: github-actions <github-actions@github.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (2)
rest.yaml (2)

1021-1023: LeagueGroup.number should be integer not number

Ordinal identifiers rarely require floating-point precision.

-        number:
-          type: "number"
+        number:
+          type: "integer"

1-1175: Minor consistency nit – mixed quoting & scalar styles

The file alternates between quoted ("uuid") and bare scalars (uuid) for identical
values. Pick one style to avoid noisy diffs in future.
No functional impact.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9ea213b and e8e888a.

⛔ Files ignored due to path filters (1)
  • src/generated/rest.model.generated.ts is excluded by !**/generated/**
📒 Files selected for processing (1)
  • rest.yaml (15 hunks)
🔇 Additional comments (2)
rest.yaml (2)

1161-1168: chiefReferee should be required

RefereeInfo lists additionalReferees as required but leaves chiefReferee optional,
which feels backwards – a match without a chief referee is unusual.

      required:
-        - additionalReferees
+        - chiefReferee
+        - additionalReferees

964-966: ✅ Self-reference fixed – good catch

Season.association now correctly references Association; the infinite recursion issue
raised earlier is resolved.

Comment on lines +355 to +360
- name: "associationId"
in: "query"
required: true
schema:
type: "string"
format: "uuid"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Redundant associationId query parameter – consider dropping it

/leagues/{id} already uniquely identifies a league. For read-only endpoints an additional
mandatory associationId in the query string:

  1. adds no information,
  2. prevents efficient HTTP caching (path + query string differ),
  3. complicates client usage.

Unless you have a compelling security/partitioning reason, remove the extra parameter.

🤖 Prompt for AI Agents
In rest.yaml around lines 355 to 360, the query parameter "associationId" is
redundant for the /leagues/{id} endpoint since the path parameter already
uniquely identifies the league. Remove the entire "associationId" query
parameter block including its name, location, requirement, and schema to
simplify the API, improve caching efficiency, and reduce client complexity.

Comment on lines +855 to +857
uciCode:
type: "string"
format: "uuid"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

UCI code is not a UUID – wrong format will break validation

A UCI-ID is a numeric string (usually 11 digits) and not a RFC-4122 UUID.
Clients generated from this spec will therefore reject perfectly valid data.

-        uciCode:
-          type: "string"
-          format: "uuid"
+        uciCode:
+          type: "string"
+          pattern: '^\d{1,20}$'   # adjust length if necessary
🤖 Prompt for AI Agents
In rest.yaml around lines 855 to 857, the uciCode field is incorrectly marked
with the format "uuid", which will cause validation errors because UCI codes are
numeric strings, not UUIDs. Remove the "format: uuid" line and instead specify
the type as "string" with a pattern or length constraint that matches the
numeric string format of UCI codes, such as a regex pattern for digits or a
maxLength of 11.

Comment on lines +1131 to +1144
gameNumber:
type: number
team1:
$ref: "#/components/schemas/MatchDayTeam"
team2:
$ref: "#/components/schemas/MatchDayTeam"
halftimeGoalsTeam1:
type: number
halftimeGoalsTeam2:
type: number
finalGoalsTeam1:
type: number
finalGoalsTeam2:
type: number
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Goal & point counters should be integers

All scoring fields (halftimeGoals*, finalGoals*, points*) are counts and should be
declared as integer to avoid IEEE-754 quirks in some generators.

-        halftimeGoalsTeam1:
-          type: number
+        halftimeGoalsTeam1:
+          type: integer
# replicate for all six numeric fields

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In rest.yaml around lines 1131 to 1144, the scoring fields halftimeGoalsTeam1,
halftimeGoalsTeam2, finalGoalsTeam1, and finalGoalsTeam2 are currently typed as
number, which can cause precision issues. Change their type from number to
integer to correctly represent these count values and avoid IEEE-754 floating
point quirks in code generators.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
rest.yaml (2)

324-335: Rename operationId for consistency (“League” → “Leagues”).

operationId: getListOfLeagueInSeason is the only list endpoint that keeps the resource name singular.
Every other list endpoint uses the plural (getListOfClubs, getListOfTeamsByLeague, …). The mismatch is tiny but becomes annoying in generated SDKs.

-      operationId: getListOfLeagueInSeason
+      operationId: getListOfLeaguesInSeason

345-361: Re-evaluate mandatory associationId query parameter – it is redundant.

/leagues/{id} already uniquely identifies a league. Requiring an additional associationId:

  1. Bloats every client call with an unused value.
  2. Introduces risk of conflicting data (leagueId from one association, associationId from another).

Unless you have a multi-tenant security constraint that truly needs it, drop the extra parameter:

-        - name: "associationId"
-          in: "query"
-          required: true
-          schema:
-            type: "string"
-            format: "uuid"
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9ea213b and e8e888a.

⛔ Files ignored due to path filters (1)
  • src/generated/rest.model.generated.ts is excluded by !**/generated/**
📒 Files selected for processing (1)
  • rest.yaml (15 hunks)
🔇 Additional comments (1)
rest.yaml (1)

783-914: Kudos – prior review issues are fully addressed.

Great to see:

• Self-reference loop in Season.association fixed
Club.website & Association.website now use uri
• Arrays (Team.players, MatchDay.teams/games/commissioners) correctly typed
• Missing type: object added across schemas

This iteration cleans up validation errors flagged earlier.

Comment on lines +851 to +857
type: "string"
dateOfBirth:
type: "string"
format: "date"
uciCode:
type: "string"
format: "uuid"
Copy link
Contributor

@coderabbitai coderabbitai bot Jun 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Person.uciCode is not a UUID – wrong format hampers validation.

UCI codes are 11-digit numeric identifiers (e.g. 10012345678). Declaring them as format: uuid causes schema validators to reject perfectly valid codes and misleads generated clients.

-        uciCode:
-          type: "string"
-          format: "uuid"
+        uciCode:
+          type: "string"
+          pattern: "^[0-9]{11}$"
+          description: "11-digit UCI rider code"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
type: "string"
dateOfBirth:
type: "string"
format: "date"
uciCode:
type: "string"
format: "uuid"
dateOfBirth:
type: "string"
format: "date"
uciCode:
type: "string"
pattern: "^[0-9]{11}$"
description: "11-digit UCI rider code"
🤖 Prompt for AI Agents
In rest.yaml around lines 851 to 857, the uciCode field is incorrectly declared
with format "uuid" which causes validation errors because UCI codes are 11-digit
numeric strings, not UUIDs. Remove the format "uuid" from uciCode and ensure its
type remains "string" without any format to correctly represent the UCI code and
allow proper validation.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants