Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
156 changes: 154 additions & 2 deletions api/openapi.yaml

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions services/py-genai-helper/generated/models.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# generated by datamodel-codegen:
# filename: openapi.yaml
# timestamp: 2026-06-12T12:58:15+00:00
# timestamp: 2026-06-18T08:03:34+00:00

from __future__ import annotations
from pydantic import AwareDatetime, BaseModel, Field
from pydantic import AwareDatetime, BaseModel, Field, SecretStr
from datetime import date
from uuid import UUID
from typing import Annotated
Expand Down Expand Up @@ -99,6 +99,7 @@ class MemberCreate(BaseModel):
first_name: str
last_name: str
email: str
password: SecretStr
birthday: date | None = None
phone_number: str | None = None
address: str | None = None
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ default Optional<NativeWebRequest> getRequest() {

/**
* POST /events : Create event
* Creates a new event. - Directors: can create events for their sport. - Trainers: can create events for their team. - Admins: can create any event.
*
* @param eventCreate The request body for creating a new event. (required)
* @return The request was successful, and a new resource was created. (status code 201)
Expand All @@ -63,6 +64,7 @@ default Optional<NativeWebRequest> getRequest() {
@Operation(
operationId = "createEvent",
summary = "Create event",
description = "Creates a new event. - Directors: can create events for their sport. - Trainers: can create events for their team. - Admins: can create any event. ",
tags = { "events" },
responses = {
@ApiResponse(responseCode = "201", description = "The request was successful, and a new resource was created.", content = {
Expand Down Expand Up @@ -139,6 +141,7 @@ default ResponseEntity<Event> createEvent(

/**
* DELETE /events/{event_id} : Delete event
* Deletes a specific event. - Creators: can delete events they created. - Directors: can delete events linked to their sport. - Admins: can delete any event.
*
* @param eventId (required)
* @return The request was successful, but there is no content to return in the response. (status code 204)
Expand All @@ -150,6 +153,7 @@ default ResponseEntity<Event> createEvent(
@Operation(
operationId = "deleteEvent",
summary = "Delete event",
description = "Deletes a specific event. - Creators: can delete events they created. - Directors: can delete events linked to their sport. - Admins: can delete any event. ",
tags = { "events" },
responses = {
@ApiResponse(responseCode = "204", description = "The request was successful, but there is no content to return in the response."),
Expand Down Expand Up @@ -210,6 +214,7 @@ default ResponseEntity<Void> deleteEvent(

/**
* GET /events : Get all events
* Returns a list of all events. - All authenticated users: can see events linked to their team or sport, or events where they are an attendee. - Creators: can see all events they created. - Admins: can see all events.
*
* @return The request was successful, and the server has returned the requested resource in the response body. (status code 200)
* or Authentication is required to access the requested resource. The client must include the appropriate credentials. (status code 401)
Expand All @@ -219,6 +224,7 @@ default ResponseEntity<Void> deleteEvent(
@Operation(
operationId = "getAllEvents",
summary = "Get all events",
description = "Returns a list of all events. - All authenticated users: can see events linked to their team or sport, or events where they are an attendee. - Creators: can see all events they created. - Admins: can see all events. ",
tags = { "events" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down Expand Up @@ -278,6 +284,7 @@ default ResponseEntity<List<EventSummary>> getAllEvents(

/**
* GET /events/{event_id} : Get event details
* Returns the details of a specific event. - All authenticated users: can access events linked to their team or sport, or events where they are an attendee. - Creators: can view events they created. - Admins: can view any event.
*
* @param eventId (required)
* @return The request was successful, and the server has returned the requested resource in the response body. (status code 200)
Expand All @@ -289,6 +296,7 @@ default ResponseEntity<List<EventSummary>> getAllEvents(
@Operation(
operationId = "getEventDetails",
summary = "Get event details",
description = "Returns the details of a specific event. - All authenticated users: can access events linked to their team or sport, or events where they are an attendee. - Creators: can view events they created. - Admins: can view any event. ",
tags = { "events" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down Expand Up @@ -356,6 +364,7 @@ default ResponseEntity<Event> getEventDetails(

/**
* PATCH /events/{event_id} : Update event details
* Partially updates the details of a specific event. - Creators: can update events they created. - Directors: can update events linked to their sport. - Admins: can update any event.
*
* @param eventId (required)
* @param eventPartialUpdate The request body for partially updating an event. (required)
Expand All @@ -369,6 +378,7 @@ default ResponseEntity<Event> getEventDetails(
@Operation(
operationId = "updateEventDetails",
summary = "Update event details",
description = "Partially updates the details of a specific event. - Creators: can update events they created. - Directors: can update events linked to their sport. - Admins: can update any event. ",
tags = { "events" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ default Optional<NativeWebRequest> getRequest() {

/**
* POST /feedback : Create feedback
* Creates a new feedback entry for a member. - Trainers: can create feedback for their trainees. - Admins: can create feedback for any member.
*
* @param feedbackCreate The request body for creating new feedback. (required)
* @return The request was successful, and a new resource was created. (status code 201)
Expand All @@ -63,6 +64,7 @@ default Optional<NativeWebRequest> getRequest() {
@Operation(
operationId = "createFeedback",
summary = "Create feedback",
description = "Creates a new feedback entry for a member. - Trainers: can create feedback for their trainees. - Admins: can create feedback for any member. ",
tags = { "feedback" },
responses = {
@ApiResponse(responseCode = "201", description = "The request was successful, and a new resource was created.", content = {
Expand Down Expand Up @@ -139,6 +141,7 @@ default ResponseEntity<Feedback> createFeedback(

/**
* DELETE /feedback/{feedback_id} : Delete feedback
* Deletes a specific feedback entry. - Creators: can delete feedback they submitted. - Admins: can delete any feedback.
*
* @param feedbackId (required)
* @return The request was successful, but there is no content to return in the response. (status code 204)
Expand All @@ -150,6 +153,7 @@ default ResponseEntity<Feedback> createFeedback(
@Operation(
operationId = "deleteFeedback",
summary = "Delete feedback",
description = "Deletes a specific feedback entry. - Creators: can delete feedback they submitted. - Admins: can delete any feedback. ",
tags = { "feedback" },
responses = {
@ApiResponse(responseCode = "204", description = "The request was successful, but there is no content to return in the response."),
Expand Down Expand Up @@ -210,6 +214,7 @@ default ResponseEntity<Void> deleteFeedback(

/**
* GET /feedback : Get all feedback
* Returns a list of all feedback entries. - Creators: can see feedback they submitted. - Members: can see feedback about themselves. - Admins: can see all feedback.
*
* @return The request was successful, and the server has returned the requested resource in the response body. (status code 200)
* or Authentication is required to access the requested resource. The client must include the appropriate credentials. (status code 401)
Expand All @@ -219,6 +224,7 @@ default ResponseEntity<Void> deleteFeedback(
@Operation(
operationId = "getAllFeedback",
summary = "Get all feedback",
description = "Returns a list of all feedback entries. - Creators: can see feedback they submitted. - Members: can see feedback about themselves. - Admins: can see all feedback. ",
tags = { "feedback" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down Expand Up @@ -278,6 +284,7 @@ default ResponseEntity<List<FeedbackSummary>> getAllFeedback(

/**
* GET /feedback/{feedback_id} : Get feedback details
* Returns the details of a specific feedback entry. - Creators: can view feedback they submitted. - Members: can view feedback about themselves. - Admins: can view any feedback.
*
* @param feedbackId (required)
* @return The request was successful, and the server has returned the requested resource in the response body. (status code 200)
Expand All @@ -289,6 +296,7 @@ default ResponseEntity<List<FeedbackSummary>> getAllFeedback(
@Operation(
operationId = "getFeedbackDetails",
summary = "Get feedback details",
description = "Returns the details of a specific feedback entry. - Creators: can view feedback they submitted. - Members: can view feedback about themselves. - Admins: can view any feedback. ",
tags = { "feedback" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down Expand Up @@ -356,6 +364,7 @@ default ResponseEntity<Feedback> getFeedbackDetails(

/**
* PATCH /feedback/{feedback_id} : Update feedback details
* Partially updates a specific feedback entry. - Creators: can update feedback they submitted. - Admins: can update any feedback.
*
* @param feedbackId (required)
* @param feedbackPartialUpdate The request body for partially updating a specific feedback. (required)
Expand All @@ -369,6 +378,7 @@ default ResponseEntity<Feedback> getFeedbackDetails(
@Operation(
operationId = "updateFeedbackDetails",
summary = "Update feedback details",
description = "Partially updates a specific feedback entry. - Creators: can update feedback they submitted. - Admins: can update any feedback. ",
tags = { "feedback" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ default Optional<NativeWebRequest> getRequest() {

/**
* POST /finance/transactions : Create transaction
* Creates a new financial transaction for a member. - Directors: can create transactions for members in their sport. - Admins: can create transactions for any member.
*
* @param transactionCreate The request body for creating a new transaction. (required)
* @return The request was successful, and a new resource was created. (status code 201)
Expand All @@ -63,6 +64,7 @@ default Optional<NativeWebRequest> getRequest() {
@Operation(
operationId = "createTransaction",
summary = "Create transaction",
description = "Creates a new financial transaction for a member. - Directors: can create transactions for members in their sport. - Admins: can create transactions for any member. ",
tags = { "finance" },
responses = {
@ApiResponse(responseCode = "201", description = "The request was successful, and a new resource was created.", content = {
Expand Down Expand Up @@ -139,6 +141,7 @@ default ResponseEntity<Transaction> createTransaction(

/**
* DELETE /finance/transactions/{transaction_id} : Delete transaction
* Deletes a specific transaction. - Creators: can delete transactions they created. - Admins: can delete any transaction.
*
* @param transactionId (required)
* @return The request was successful, but there is no content to return in the response. (status code 204)
Expand All @@ -150,6 +153,7 @@ default ResponseEntity<Transaction> createTransaction(
@Operation(
operationId = "deleteTransaction",
summary = "Delete transaction",
description = "Deletes a specific transaction. - Creators: can delete transactions they created. - Admins: can delete any transaction. ",
tags = { "finance" },
responses = {
@ApiResponse(responseCode = "204", description = "The request was successful, but there is no content to return in the response."),
Expand Down Expand Up @@ -210,6 +214,7 @@ default ResponseEntity<Void> deleteTransaction(

/**
* GET /finance/balances : Get all balances
* Returns a list of all member balances. - Directors: can view balances of members in their sport. - Admins: can view all balances.
*
* @return The request was successful, and the server has returned the requested resource in the response body. (status code 200)
* or Authentication is required to access the requested resource. The client must include the appropriate credentials. (status code 401)
Expand All @@ -219,6 +224,7 @@ default ResponseEntity<Void> deleteTransaction(
@Operation(
operationId = "getAllBalances",
summary = "Get all balances",
description = "Returns a list of all member balances. - Directors: can view balances of members in their sport. - Admins: can view all balances. ",
tags = { "finance" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down Expand Up @@ -278,6 +284,7 @@ default ResponseEntity<List<Balance>> getAllBalances(

/**
* GET /finance/transactions : Get all transactions
* Returns a list of all transactions. Users only see transactions where they are the member or the creator. - Members: can see transactions they are part of. - Creators: can see transactions they created. - Directors: can see transactions for members in their sport. - Admins: can see all transactions.
*
* @return The request was successful, and the server has returned the requested resource in the response body. (status code 200)
* or Authentication is required to access the requested resource. The client must include the appropriate credentials. (status code 401)
Expand All @@ -287,6 +294,7 @@ default ResponseEntity<List<Balance>> getAllBalances(
@Operation(
operationId = "getAllTransactions",
summary = "Get all transactions",
description = "Returns a list of all transactions. Users only see transactions where they are the member or the creator. - Members: can see transactions they are part of. - Creators: can see transactions they created. - Directors: can see transactions for members in their sport. - Admins: can see all transactions. ",
tags = { "finance" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down Expand Up @@ -346,6 +354,7 @@ default ResponseEntity<List<Transaction>> getAllTransactions(

/**
* GET /finance/balances/{member_id} : Get member balance
* Returns the balance of a specific member. - Members themselves: can view their own balance. - Directors: can view balances of members in their sport. - Admins: can view any member&#39;s balance.
*
* @param memberId (required)
* @return The request was successful, and the server has returned the requested resource in the response body. (status code 200)
Expand All @@ -357,6 +366,7 @@ default ResponseEntity<List<Transaction>> getAllTransactions(
@Operation(
operationId = "getMemberBalance",
summary = "Get member balance",
description = "Returns the balance of a specific member. - Members themselves: can view their own balance. - Directors: can view balances of members in their sport. - Admins: can view any member's balance. ",
tags = { "finance" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down Expand Up @@ -424,6 +434,7 @@ default ResponseEntity<Balance> getMemberBalance(

/**
* GET /finance/transactions/{transaction_id} : Get transaction
* Returns the details of a specific transaction. - Members: can view transactions they are part of. - Creators: can view transactions they created. - Directors: can view transactions for members in their sport. - Admins: can view any transaction.
*
* @param transactionId (required)
* @return The request was successful, and the server has returned the requested resource in the response body. (status code 200)
Expand All @@ -435,6 +446,7 @@ default ResponseEntity<Balance> getMemberBalance(
@Operation(
operationId = "getTransaction",
summary = "Get transaction",
description = "Returns the details of a specific transaction. - Members: can view transactions they are part of. - Creators: can view transactions they created. - Directors: can view transactions for members in their sport. - Admins: can view any transaction. ",
tags = { "finance" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down Expand Up @@ -502,6 +514,7 @@ default ResponseEntity<Transaction> getTransaction(

/**
* PATCH /finance/transactions/{transaction_id} : Update transaction
* Partially updates a specific transaction. The member field can only be changed by admins. - Creators: can update transactions they created (except the member field). - Admins: can update any transaction including the member field.
*
* @param transactionId (required)
* @param transactionPartialUpdate The request body for partially updating a transaction. (required)
Expand All @@ -515,6 +528,7 @@ default ResponseEntity<Transaction> getTransaction(
@Operation(
operationId = "updateTransaction",
summary = "Update transaction",
description = "Partially updates a specific transaction. The member field can only be changed by admins. - Creators: can update transactions they created (except the member field). - Admins: can update any transaction including the member field. ",
tags = { "finance" },
responses = {
@ApiResponse(responseCode = "200", description = "The request was successful, and the server has returned the requested resource in the response body.", content = {
Expand Down
Loading
Loading