{
  "openapi": "3.0.4",
  "info": {
    "title": "CS Producer",
    "description": "Manage flow of work through a production facility and get reports.",
    "version": "v1.0",
    "contact": {
      "name": "Engineering Technology Support",
      "url": "https://www.strongtie.com/",
      "email": "engrtechsupport@strongtie.com"
    }
  },
  "servers": [
    {
      "url": "https://api.scheduler.strongtie.io"
    }
  ],
  "paths": {
    "/api/cards": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Gets the list of card.",
        "operationId": "GetCards",
        "responses": {
          "200": {
            "description": "Returns the list of cards.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCards.CardListResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "If the list of cards is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards/{id}": {
      "put": {
        "tags": [
          "Cards"
        ],
        "summary": "Updates a card by id.",
        "operationId": "UpdateCard",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card to update.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "description": "The updated card dto.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.UpdateCard.UpdateCardRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Returns the updated card.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.UpdateCard.UpdateCardResponse"
                }
              }
            }
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Gets a card by its ID.",
        "operationId": "GetCardById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the card with the specified ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardDetail.CardDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Cards"
        ],
        "summary": "Deletes a card by its ID.",
        "operationId": "DeleteCard",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card to delete.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Returns a response indicating the success of the deletion."
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards/{id}/status": {
      "patch": {
        "tags": [
          "Cards"
        ],
        "summary": "Updates card status by id.",
        "operationId": "UpdateCardStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card to update status.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "description": "The updated card request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.PatchCardRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Returns a response indicating the success of the update"
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards/{id}/order": {
      "patch": {
        "tags": [
          "Cards"
        ],
        "summary": "Updates card order by id.",
        "operationId": "UpdateCardOrder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card to update order.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "description": "Card order update request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.UpdateCardOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Returns a response indicating the success of the update"
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "If there was a conflict with a change made by another user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards/{id}/assigned-station": {
      "patch": {
        "tags": [
          "Cards"
        ],
        "summary": "Updates the assigned station of a card.",
        "operationId": "UpdateCardAssignedStation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the card to be updated.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "description": "The command containing the details for the update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.PatchCardAssignedStationCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Indicates that the assigned station was successfully updated."
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card with the specified ID was not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "If there was a conflict with a change made by another user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards-by-station/{stationId}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of cards associated with a specific station ID.",
        "operationId": "GetCardsByStation",
        "parameters": [
          {
            "name": "stationId",
            "in": "path",
            "description": "The identifier of the station for which the cards are to be retrieved.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of cards associated with the specified station ID.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByStation.CardByStationListResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/status-by-ppg/{ppgId}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of status DTOs for cards associated with a specific producer production group.",
        "operationId": "GetStatusByPpg",
        "parameters": [
          {
            "name": "ppgId",
            "in": "path",
            "description": "The identifier of the producer production group for which the statuses are to be retrieved.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of status DTOs associated with the specified producer production group.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetStatusByPpgForCards.StatusResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards/completed-for-current-shift": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves the list of completed cards for the current shift.",
        "operationId": "GetCompletedCardsForCurrentShift",
        "responses": {
          "200": {
            "description": "Returns the list of completed cards.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCompletedCardsForShift.CompletedCardResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards/completed-for-previous-shift": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves the list of completed cards for the previous shift.",
        "operationId": "GetCompletedCardsForPreviousShift",
        "responses": {
          "200": {
            "description": "Returns the list of completed cards.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCompletedCardsForShift.CompletedCardResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards-by-project/{projectId}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of cards associated with a specific project ID.",
        "operationId": "GetCardsByProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The identifier of the project for which the cards are to be retrieved.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of cards associated with the specified project ID.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByProject.CardByProjectResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards-by-stationtype-ppg": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of cards filtered by area type and producer production group ID.",
        "operationId": "GetCardsByStationTypeAndPpg",
        "parameters": [
          {
            "name": "stationTypeId",
            "in": "query",
            "description": "The station type identifier used to filter cards.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ppgId",
            "in": "query",
            "description": "The identifier of the producer production group for which the cards are to be retrieved.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of cards for the specified station type and PPG.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByProject.CardByProjectResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/cards-by-last-sync-date": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of cards from the last performed sync date.",
        "operationId": "GetCardsByLastSyncDate",
        "responses": {
          "200": {
            "description": "Returns the list of cards associated with the specified project ID.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByProject.CardByProjectResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Gets the list of card.",
        "operationId": "GetCardsWithFacility",
        "parameters": [
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of cards.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCards.CardListResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "If the list of cards is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards/{id}": {
      "put": {
        "tags": [
          "Cards"
        ],
        "summary": "Updates a card by id.",
        "operationId": "UpdateCardWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card to update.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated card dto.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.UpdateCard.UpdateCardRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Returns the updated card.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.UpdateCard.UpdateCardResponse"
                }
              }
            }
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Gets a card by its ID.",
        "operationId": "GetCardByIdWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the card with the specified ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardDetail.CardDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Cards"
        ],
        "summary": "Deletes a card by its ID.",
        "operationId": "DeleteCardWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card to delete.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Returns a response indicating the success of the deletion."
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards/{id}/status": {
      "patch": {
        "tags": [
          "Cards"
        ],
        "summary": "Updates card status by id.",
        "operationId": "UpdateCardStatusWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card to update status.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated card request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.PatchCardRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Returns a response indicating the success of the update"
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards/{id}/order": {
      "patch": {
        "tags": [
          "Cards"
        ],
        "summary": "Updates card order by id.",
        "operationId": "UpdateCardOrderWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the card to update order.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Card order update request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.UpdateCardOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Returns a response indicating the success of the update"
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "If there was a conflict with a change made by another user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards/{id}/assigned-station": {
      "patch": {
        "tags": [
          "Cards"
        ],
        "summary": "Updates the assigned station of a card.",
        "operationId": "UpdateCardAssignedStationWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the card to be updated.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The command containing the details for the update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.PatchCardAssignedStationCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Indicates that the assigned station was successfully updated."
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "If the card with the specified ID was not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "If there was a conflict with a change made by another user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards-by-station/{stationId}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of cards associated with a specific station ID.",
        "operationId": "GetCardsByStationWithFacility",
        "parameters": [
          {
            "name": "stationId",
            "in": "path",
            "description": "The identifier of the station for which the cards are to be retrieved.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of cards associated with the specified station ID.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByStation.CardByStationListResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/status-by-ppg/{ppgId}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of status DTOs for cards associated with a specific producer production group.",
        "operationId": "GetStatusByPpgWithFacility",
        "parameters": [
          {
            "name": "ppgId",
            "in": "path",
            "description": "The identifier of the producer production group for which the statuses are to be retrieved.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of status DTOs associated with the specified producer production group.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetStatusByPpgForCards.StatusResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards/completed-for-current-shift": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves the list of completed cards for the current shift.",
        "operationId": "GetCompletedCardsForCurrentShiftWithFacility",
        "parameters": [
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of completed cards.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCompletedCardsForShift.CompletedCardResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards/completed-for-previous-shift": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves the list of completed cards for the previous shift.",
        "operationId": "GetCompletedCardsForPreviousShiftWithFacility",
        "parameters": [
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of completed cards.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCompletedCardsForShift.CompletedCardResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards-by-project/{projectId}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of cards associated with a specific project ID.",
        "operationId": "GetCardsByProjectWithFacility",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The identifier of the project for which the cards are to be retrieved.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of cards associated with the specified project ID.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByProject.CardByProjectResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards-by-stationtype-ppg": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of cards filtered by area type and producer production group ID.",
        "operationId": "GetCardsByStationTypeAndPpgWithFacility",
        "parameters": [
          {
            "name": "stationTypeId",
            "in": "query",
            "description": "The station type identifier used to filter cards.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ppgId",
            "in": "query",
            "description": "The identifier of the producer production group for which the cards are to be retrieved.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of cards for the specified station type and PPG.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByProject.CardByProjectResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/cards-by-last-sync-date": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Retrieves a list of cards from the last performed sync date.",
        "operationId": "GetCardsByLastSyncDateWithFacility",
        "parameters": [
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of cards associated with the specified project ID.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByProject.CardByProjectResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If the request parameters are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there is an internal server error while processing the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/producer-production-groups": {
      "post": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Creates a new producer production group.",
        "operationId": "CreateProducerProductionGroup",
        "requestBody": {
          "description": "The command to create the producer production group.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.CreateProducerProductionGroup.CreatePpgRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.CreateProducerProductionGroup.CreatePpgResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Gets the list of producer production groups.",
        "operationId": "GetProducerProductionGroups",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Queries.GetProducerProductionGroupDetail.PpgDetailResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/producer-production-groups/{id}": {
      "get": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Gets a producer production group by its ID.",
        "operationId": "GetProducerProductionGroupById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the producer production group.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Queries.GetProducerProductionGroupDetail.PpgDetailResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Deletes a producer production group by its ID.",
        "operationId": "DeleteProducerProductionGroup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the producer production group to delete.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/producer-production-groups/{id}/due-date": {
      "patch": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Updates all due dates for producer production groups in a project.",
        "operationId": "UpdateProducerProductionGroupDueDate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the producer production group.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "description": "The request to update ppg due date",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupDueDate.UpdatePpgDueDateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupDueDate.PatchPpgDueDateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/producer-production-groups/{id}/production-note": {
      "patch": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Updates the production note of a specified producer production group.",
        "operationId": "UpdateProducerProductionGroupProductionNote",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the producer production group to be updated.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "description": "The object containing the updated production note information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupProductionNote.UpdatePpgProductionNoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupDueDate.PatchPpgDueDateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/producer-production-groups-by-ids": {
      "post": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Gets all producer production groups by their IDs.",
        "operationId": "GetProducerProductionGroupByIds",
        "requestBody": {
          "description": "The Ids of the producer production groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Queries.GetProducerProductionGroupDetail.PpgDetailResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/producer-production-groups": {
      "post": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Creates a new producer production group.",
        "operationId": "CreateProducerProductionGroupWithFacility",
        "parameters": [
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The command to create the producer production group.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.CreateProducerProductionGroup.CreatePpgRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.CreateProducerProductionGroup.CreatePpgResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Gets the list of producer production groups.",
        "operationId": "GetProducerProductionGroupsWithFacility",
        "parameters": [
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Queries.GetProducerProductionGroupDetail.PpgDetailResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/producer-production-groups/{id}": {
      "get": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Gets a producer production group by its ID.",
        "operationId": "GetProducerProductionGroupByIdWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the producer production group.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Queries.GetProducerProductionGroupDetail.PpgDetailResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Deletes a producer production group by its ID.",
        "operationId": "DeleteProducerProductionGroupWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the producer production group to delete.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/producer-production-groups/{id}/due-date": {
      "patch": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Updates all due dates for producer production groups in a project.",
        "operationId": "UpdateProducerProductionGroupDueDateWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the producer production group.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The request to update ppg due date",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupDueDate.UpdatePpgDueDateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupDueDate.PatchPpgDueDateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/producer-production-groups/{id}/production-note": {
      "patch": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Updates the production note of a specified producer production group.",
        "operationId": "UpdateProducerProductionGroupProductionNoteWithFacility",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the producer production group to be updated.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The object containing the updated production note information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupProductionNote.UpdatePpgProductionNoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupDueDate.PatchPpgDueDateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/producer-production-groups-by-ids": {
      "post": {
        "tags": [
          "ProducerProductionGroups"
        ],
        "summary": "Gets all producer production groups by their IDs.",
        "operationId": "GetProducerProductionGroupByIdsWithFacility",
        "parameters": [
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Ids of the producer production groups.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Queries.GetProducerProductionGroupDetail.PpgDetailResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports": {
      "post": {
        "tags": [
          "Reports"
        ],
        "summary": "Sends a Report file.",
        "operationId": "SendReport",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.SendReportCommand.SendReportCommand"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.SendReportCommand.SendReportCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.SendReportCommand.SendReportDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports-by-ppgId/{ppgId}": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves the list of report paths by PPG ID.",
        "operationId": "GetReportPathsByPpgId",
        "parameters": [
          {
            "name": "ppgId",
            "in": "path",
            "description": "The PPG ID.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetReportPathsByPpgIdQuery.PpgReportPathDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports-by-id/{reportId}": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves the report path by Report ID.",
        "operationId": "GetReportPathById",
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "description": "The report ID.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetReportPathByIdQuery.ReportPathDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/telerik-report": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a list of Telerik reports.",
        "operationId": "GetTelerikReports",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetTelerikReportsQuery.GetTelerikReportsResponse"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/production-reports": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a list of production reports.",
        "operationId": "GetProductionReports",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "The start date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end",
            "in": "query",
            "description": "The end date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionReportsQuery.GetProductionReportsResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/production-summary": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a production summary.",
        "operationId": "GetProductionSummary",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "The start date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end",
            "in": "query",
            "description": "The end date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionSummaryQuery.GetProductionSummaryResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/shift-reconciliation": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a shift reconciliation.",
        "operationId": "GetShiftReconciliation",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "The start date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "end",
            "in": "query",
            "description": "The end date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The shift reconciliation was successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.GetShiftReconciliationResponse"
                }
              }
            }
          },
          "500": {
            "description": "An error occurred while retrieving the shift reconciliation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/cut-not-built": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a cut not built report.",
        "operationId": "GetCutNotBuilt",
        "responses": {
          "200": {
            "description": "The report was successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetCutNotBuiltQuery.GetCutNotBuiltReportResponse"
                }
              }
            }
          },
          "500": {
            "description": "An error occurred while retrieving the report.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/reports": {
      "post": {
        "tags": [
          "Reports"
        ],
        "summary": "Sends a Report file.",
        "operationId": "SendReportWithFacility",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.SendReportCommand.SendReportCommand"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.SendReportCommand.SendReportCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.SendReportCommand.SendReportDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/reports-by-ppgId/{ppgId}": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves the list of report paths by PPG ID.",
        "operationId": "GetReportPathsByPpgIdWithFacility",
        "parameters": [
          {
            "name": "ppgId",
            "in": "path",
            "description": "The PPG ID.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetReportPathsByPpgIdQuery.PpgReportPathDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/reports-by-id/{reportId}": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves the report path by Report ID.",
        "operationId": "GetReportPathByIdWithFacility",
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "description": "The report ID.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetReportPathByIdQuery.ReportPathDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/reports/telerik-report": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a list of Telerik reports.",
        "operationId": "GetTelerikReportsWithFacility",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetTelerikReportsQuery.GetTelerikReportsResponse"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/reports/production-reports": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a list of production reports.",
        "operationId": "GetProductionReportsWithFacility",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "The start date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end",
            "in": "query",
            "description": "The end date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionReportsQuery.GetProductionReportsResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/reports/production-summary": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a production summary.",
        "operationId": "GetProductionSummaryWithFacility",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "The start date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end",
            "in": "query",
            "description": "The end date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionSummaryQuery.GetProductionSummaryResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/reports/shift-reconciliation": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a shift reconciliation.",
        "operationId": "GetShiftReconciliationWithFacility",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "The start date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "end",
            "in": "query",
            "description": "The end date in facility time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The shift reconciliation was successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.GetShiftReconciliationResponse"
                }
              }
            }
          },
          "500": {
            "description": "An error occurred while retrieving the shift reconciliation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/reports/cut-not-built": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Retrieves a cut not built report.",
        "operationId": "GetCutNotBuiltWithFacility",
        "responses": {
          "200": {
            "description": "The report was successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetCutNotBuiltQuery.GetCutNotBuiltReportResponse"
                }
              }
            }
          },
          "500": {
            "description": "An error occurred while retrieving the report.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/settings": {
      "put": {
        "tags": [
          "Settings"
        ],
        "summary": "Updates Producer setting.",
        "operationId": "UpdateSettings",
        "requestBody": {
          "description": "The command to create the producer production group.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Settings.UpdateSettingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/settings": {
      "put": {
        "tags": [
          "Settings"
        ],
        "summary": "Updates Producer setting.",
        "operationId": "UpdateSettingsWithFacility",
        "requestBody": {
          "description": "The command to create the producer production group.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Settings.UpdateSettingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/shift-statistics/current": {
      "get": {
        "tags": [
          "Shift Statistics"
        ],
        "summary": "Retrieves production statistics for the current shift.\nIf a stationId is provided, statistics are returned only for that station; otherwise, statistics for all stations are included.\nThe backend determines the current active shift based on facility shift settings and returns its statistics.\nOnly one shift's statistics are returned per request, including both current and target board feet metrics for each station.",
        "operationId": "GetCurrentShiftStatistics",
        "parameters": [
          {
            "name": "stationId",
            "in": "query",
            "description": "Optional station ID to filter statistics.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ShiftStatistics.Responses.ShiftStatisticsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/shift-statistics/previous": {
      "get": {
        "tags": [
          "Shift Statistics"
        ],
        "summary": "Retrieves production statistics for the previous shift.\nIf a stationId is provided, statistics are returned only for that station; otherwise, statistics for all stations are included.\nThe backend determines the previous shift based on facility shift settings and returns its statistics.\nOnly one shift's statistics are returned per request, including both current and target board feet metrics for each station.",
        "operationId": "GetPreviousShiftStatistics",
        "parameters": [
          {
            "name": "stationId",
            "in": "query",
            "description": "Optional station ID to filter statistics.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ShiftStatistics.Responses.ShiftStatisticsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/shift-statistics/current": {
      "get": {
        "tags": [
          "Shift Statistics"
        ],
        "summary": "Retrieves production statistics for the current shift.\nIf a stationId is provided, statistics are returned only for that station; otherwise, statistics for all stations are included.\nThe backend determines the current active shift based on facility shift settings and returns its statistics.\nOnly one shift's statistics are returned per request, including both current and target board feet metrics for each station.",
        "operationId": "GetCurrentShiftStatisticsWithFacility",
        "parameters": [
          {
            "name": "stationId",
            "in": "query",
            "description": "Optional station ID to filter statistics.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ShiftStatistics.Responses.ShiftStatisticsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/shift-statistics/previous": {
      "get": {
        "tags": [
          "Shift Statistics"
        ],
        "summary": "Retrieves production statistics for the previous shift.\nIf a stationId is provided, statistics are returned only for that station; otherwise, statistics for all stations are included.\nThe backend determines the previous shift based on facility shift settings and returns its statistics.\nOnly one shift's statistics are returned per request, including both current and target board feet metrics for each station.",
        "operationId": "GetPreviousShiftStatisticsWithFacility",
        "parameters": [
          {
            "name": "stationId",
            "in": "query",
            "description": "Optional station ID to filter statistics.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ShiftStatistics.Responses.ShiftStatisticsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/stations/crew-size": {
      "post": {
        "tags": [
          "Stations"
        ],
        "summary": "Updates the crew size for a station and broadcasts the change via SignalR.",
        "operationId": "UpdateStationCrewSize",
        "requestBody": {
          "description": "The request containing area ID, station ID, and crew size.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Stations.Commands.UpdateStationCrewSize.UpdateStationCrewSizeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Indicates that the crew size update was successfully broadcast."
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "If the user is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/stations/crew-size": {
      "post": {
        "tags": [
          "Stations"
        ],
        "summary": "Updates the crew size for a station and broadcasts the change via SignalR.",
        "operationId": "UpdateStationCrewSizeWithFacility",
        "parameters": [
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The request containing area ID, station ID, and crew size.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Stations.Commands.UpdateStationCrewSize.UpdateStationCrewSizeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "204": {
            "description": "Indicates that the crew size update was successfully broadcast."
          },
          "400": {
            "description": "If the request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "If the user is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "If there was an internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/svgs": {
      "post": {
        "tags": [
          "Svgs"
        ],
        "summary": "Uploads an SVG file.",
        "operationId": "UploadSvg",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Commands.UploadSvg.UploadSvgCommand"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Commands.UploadSvg.UploadSvgCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Commands.UploadSvg.UploadSvgDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/svgs-by-ppgId/{ppgId}": {
      "get": {
        "tags": [
          "Svgs"
        ],
        "summary": "Retrieves SVG URLs by PPG ID.",
        "operationId": "GetSvgUrlByPpgId",
        "parameters": [
          {
            "name": "ppgId",
            "in": "path",
            "description": "The PPG ID for which to retrieve the SVG URLs.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Queries.GetSvgUrlByPpgId.SvgUrlByPpgDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/svgs-by-ppgId-componentId/{ppgId}/{componentId}": {
      "get": {
        "tags": [
          "Svgs"
        ],
        "summary": "Retrieves the SVG URL associated with a specific component ID.",
        "operationId": "GetSvgUrlByPpgIdAndComponentId",
        "parameters": [
          {
            "name": "ppgId",
            "in": "path",
            "description": "Producer Production Group Id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "componentId",
            "in": "path",
            "description": "The unique identifier of the component.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Queries.GetSvgUrlByPpgIdAndComponentId.SvgUrlResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/svgs": {
      "post": {
        "tags": [
          "Svgs"
        ],
        "summary": "Uploads an SVG file.",
        "operationId": "UploadSvgWithFacility",
        "parameters": [
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Commands.UploadSvg.UploadSvgCommand"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Commands.UploadSvg.UploadSvgCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Commands.UploadSvg.UploadSvgDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/svgs-by-ppgId/{ppgId}": {
      "get": {
        "tags": [
          "Svgs"
        ],
        "summary": "Retrieves SVG URLs by PPG ID.",
        "operationId": "GetSvgUrlByPpgIdWithFacility",
        "parameters": [
          {
            "name": "ppgId",
            "in": "path",
            "description": "The PPG ID for which to retrieve the SVG URLs.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Queries.GetSvgUrlByPpgId.SvgUrlByPpgDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/company/{facilityId}/api/svgs-by-ppgId-componentId/{ppgId}/{componentId}": {
      "get": {
        "tags": [
          "Svgs"
        ],
        "summary": "Retrieves the SVG URL associated with a specific component ID.",
        "operationId": "GetSvgUrlByPpgIdAndComponentIdWithFacility",
        "parameters": [
          {
            "name": "ppgId",
            "in": "path",
            "description": "Producer Production Group Id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "componentId",
            "in": "path",
            "description": "The unique identifier of the component.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "facilityId",
            "in": "path",
            "description": "The facility identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Svgs.Queries.GetSvgUrlByPpgIdAndComponentId.SvgUrlResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Microsoft.AspNetCore.Mvc.ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.MoveToPosition": {
        "enum": [
          "First",
          "Last",
          "Next",
          "Previous",
          "Specific"
        ],
        "type": "string",
        "description": "Enum for moving card order."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.PatchCardAssignedStationCommand": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Cards.CardId"
          },
          "stationId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          }
        },
        "additionalProperties": false,
        "description": "Represents a command to update the assigned station of a production card.\nThe command includes the identifier of the card, the identifier of the station to assign,\nand the version of the card for concurrency control during updates."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.PatchCardRequest": {
        "type": "object",
        "properties": {
          "action": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.UpdateAction"
          },
          "crewSize": {
            "type": "integer",
            "description": "The crew size.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "The request to update a card partially."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.UpdateCardOrderRequest": {
        "type": "object",
        "properties": {
          "moveToPosition": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Commands.PatchCard.MoveToPosition"
          },
          "specificPosition": {
            "type": "integer",
            "description": "Specific Position for the card. This is used only\nwhen MoveToPosition is set to Specific otherwise value is ignored.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "The request to update a card order."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Commands.UpdateAction": {
        "enum": [
          "Activate",
          "Complete",
          "Deactivate",
          "ResetStatus"
        ],
        "type": "string",
        "description": "Update action for the card."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Commands.UpdateCard.UpdateCardRequest": {
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "label": {
            "type": "string",
            "description": "The label displayed as “PPG #” in the UI mockups.",
            "nullable": true
          },
          "assignedStation": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          },
          "order": {
            "type": "integer",
            "description": "The priority of the cards for each station.",
            "format": "int32"
          },
          "assignedSaw": {
            "type": "string",
            "description": "The assigned saw, used to display tags for each card.",
            "nullable": true
          },
          "assignedTable": {
            "type": "string",
            "description": "The assigned table, used to display tags for each card.",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "description": "The color index into an array of colors.",
            "format": "int32"
          },
          "activatedDateTime": {
            "type": "string",
            "description": "The date and time when the card was activated.",
            "format": "date-time",
            "nullable": true
          },
          "activatedByUser": {
            "type": "string",
            "description": "The user who activated the card.",
            "nullable": true
          },
          "completedDateTime": {
            "type": "string",
            "description": "The date and time when the card was completed.",
            "format": "date-time",
            "nullable": true
          },
          "completedByUser": {
            "type": "string",
            "description": "The user who completed the card.",
            "nullable": true
          },
          "crewSize": {
            "type": "integer",
            "description": "The crew size.",
            "format": "int32",
            "nullable": true
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time when the card was created.",
            "format": "date-time"
          },
          "createdByUser": {
            "type": "string",
            "description": "The user who created the card.",
            "nullable": true
          },
          "bdft": {
            "type": "number",
            "description": "The board feet (BDFT) calculated by Batcher.",
            "format": "float"
          },
          "numPieces": {
            "type": "integer",
            "description": "The number of pieces calculated by Batcher.",
            "format": "int32"
          },
          "numUniquePieces": {
            "type": "integer",
            "description": "The number of unique pieces calculated by Batcher.",
            "format": "int32"
          },
          "numTotalComponents": {
            "type": "integer",
            "description": "The total number of components calculated by Batcher.",
            "format": "int32"
          },
          "numUniqueComponents": {
            "type": "integer",
            "description": "The number of unique components calculated by Batcher.",
            "format": "int32"
          },
          "maxHeight": {
            "type": "number",
            "description": "The maximum height calculated by Director.",
            "format": "float"
          },
          "maxLength": {
            "type": "number",
            "description": "The maximum length calculated by Director.",
            "format": "float"
          },
          "maxWeight": {
            "type": "number",
            "description": "The maximum weight calculated by Director.",
            "format": "float"
          },
          "totalWeight": {
            "type": "number",
            "description": "The total weight calculated by Director.",
            "format": "float"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "The list of components.",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Cards.CardId"
          }
        },
        "additionalProperties": false,
        "description": "Command to update a card."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Commands.UpdateCard.UpdateCardResponse": {
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "label": {
            "type": "string",
            "description": "The label displayed as “PPG #” in the UI mockups.",
            "nullable": true
          },
          "assignedStation": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          },
          "order": {
            "type": "integer",
            "description": "The priority of the cards for each station.",
            "format": "int32"
          },
          "assignedSaw": {
            "type": "string",
            "description": "The assigned saw, used to display tags for each card.",
            "nullable": true
          },
          "assignedTable": {
            "type": "string",
            "description": "The assigned table, used to display tags for each card.",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "description": "The color index into an array of colors.",
            "format": "int32"
          },
          "activatedDateTime": {
            "type": "string",
            "description": "The date and time when the card was activated.",
            "format": "date-time",
            "nullable": true
          },
          "activatedByUser": {
            "type": "string",
            "description": "The user who activated the card.",
            "nullable": true
          },
          "completedDateTime": {
            "type": "string",
            "description": "The date and time when the card was completed.",
            "format": "date-time",
            "nullable": true
          },
          "completedByUser": {
            "type": "string",
            "description": "The user who completed the card.",
            "nullable": true
          },
          "crewSize": {
            "type": "integer",
            "description": "The crew size.",
            "format": "int32",
            "nullable": true
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time when the card was created.",
            "format": "date-time"
          },
          "createdByUser": {
            "type": "string",
            "description": "The user who created the card.",
            "nullable": true
          },
          "bdft": {
            "type": "number",
            "description": "The board feet (BDFT) calculated by Batcher.",
            "format": "float"
          },
          "numPieces": {
            "type": "integer",
            "description": "The number of pieces calculated by Batcher.",
            "format": "int32"
          },
          "numUniquePieces": {
            "type": "integer",
            "description": "The number of unique pieces calculated by Batcher.",
            "format": "int32"
          },
          "numTotalComponents": {
            "type": "integer",
            "description": "The total number of components calculated by Batcher.",
            "format": "int32"
          },
          "numUniqueComponents": {
            "type": "integer",
            "description": "The number of unique components calculated by Batcher.",
            "format": "int32"
          },
          "maxHeight": {
            "type": "number",
            "description": "The maximum height calculated by Director.",
            "format": "float"
          },
          "maxLength": {
            "type": "number",
            "description": "The maximum length calculated by Director.",
            "format": "float"
          },
          "maxWeight": {
            "type": "number",
            "description": "The maximum weight calculated by Director.",
            "format": "float"
          },
          "totalWeight": {
            "type": "number",
            "description": "The total weight calculated by Director.",
            "format": "float"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "The list of components.",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Cards.CardId"
          },
          "sawStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned saw station.",
            "format": "int32"
          },
          "tableStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned table station.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents a DTO for a card with various properties."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardDetail.CardDetailResponse": {
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "label": {
            "type": "string",
            "description": "The label displayed as “PPG #” in the UI mockups.",
            "nullable": true
          },
          "assignedStation": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          },
          "order": {
            "type": "integer",
            "description": "The priority of the cards for each station.",
            "format": "int32"
          },
          "assignedSaw": {
            "type": "string",
            "description": "The assigned saw, used to display tags for each card.",
            "nullable": true
          },
          "assignedTable": {
            "type": "string",
            "description": "The assigned table, used to display tags for each card.",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "description": "The color index into an array of colors.",
            "format": "int32"
          },
          "activatedDateTime": {
            "type": "string",
            "description": "The date and time when the card was activated.",
            "format": "date-time",
            "nullable": true
          },
          "activatedByUser": {
            "type": "string",
            "description": "The user who activated the card.",
            "nullable": true
          },
          "completedDateTime": {
            "type": "string",
            "description": "The date and time when the card was completed.",
            "format": "date-time",
            "nullable": true
          },
          "completedByUser": {
            "type": "string",
            "description": "The user who completed the card.",
            "nullable": true
          },
          "crewSize": {
            "type": "integer",
            "description": "The crew size.",
            "format": "int32",
            "nullable": true
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time when the card was created.",
            "format": "date-time"
          },
          "createdByUser": {
            "type": "string",
            "description": "The user who created the card.",
            "nullable": true
          },
          "bdft": {
            "type": "number",
            "description": "The board feet (BDFT) calculated by Batcher.",
            "format": "float"
          },
          "numPieces": {
            "type": "integer",
            "description": "The number of pieces calculated by Batcher.",
            "format": "int32"
          },
          "numUniquePieces": {
            "type": "integer",
            "description": "The number of unique pieces calculated by Batcher.",
            "format": "int32"
          },
          "numTotalComponents": {
            "type": "integer",
            "description": "The total number of components calculated by Batcher.",
            "format": "int32"
          },
          "numUniqueComponents": {
            "type": "integer",
            "description": "The number of unique components calculated by Batcher.",
            "format": "int32"
          },
          "maxHeight": {
            "type": "number",
            "description": "The maximum height calculated by Director.",
            "format": "float"
          },
          "maxLength": {
            "type": "number",
            "description": "The maximum length calculated by Director.",
            "format": "float"
          },
          "maxWeight": {
            "type": "number",
            "description": "The maximum weight calculated by Director.",
            "format": "float"
          },
          "totalWeight": {
            "type": "number",
            "description": "The total weight calculated by Director.",
            "format": "float"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "The list of components.",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Cards.CardId"
          },
          "sawStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned saw station.",
            "format": "int32"
          },
          "tableStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned table station.",
            "format": "int32"
          },
          "version": {
            "type": "string",
            "description": "The ID of the producer production group associated with the card.",
            "format": "byte",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "description": "The due date of the producer production group associated with the card.",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a DTO for a card with various properties."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Queries.GetCards.CardListResponse": {
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "label": {
            "type": "string",
            "description": "The label displayed as “PPG #” in the UI mockups.",
            "nullable": true
          },
          "assignedStation": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          },
          "order": {
            "type": "integer",
            "description": "The priority of the cards for each station.",
            "format": "int32"
          },
          "assignedSaw": {
            "type": "string",
            "description": "The assigned saw, used to display tags for each card.",
            "nullable": true
          },
          "assignedTable": {
            "type": "string",
            "description": "The assigned table, used to display tags for each card.",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "description": "The color index into an array of colors.",
            "format": "int32"
          },
          "activatedDateTime": {
            "type": "string",
            "description": "The date and time when the card was activated.",
            "format": "date-time",
            "nullable": true
          },
          "activatedByUser": {
            "type": "string",
            "description": "The user who activated the card.",
            "nullable": true
          },
          "completedDateTime": {
            "type": "string",
            "description": "The date and time when the card was completed.",
            "format": "date-time",
            "nullable": true
          },
          "completedByUser": {
            "type": "string",
            "description": "The user who completed the card.",
            "nullable": true
          },
          "crewSize": {
            "type": "integer",
            "description": "The crew size.",
            "format": "int32",
            "nullable": true
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time when the card was created.",
            "format": "date-time"
          },
          "createdByUser": {
            "type": "string",
            "description": "The user who created the card.",
            "nullable": true
          },
          "bdft": {
            "type": "number",
            "description": "The board feet (BDFT) calculated by Batcher.",
            "format": "float"
          },
          "numPieces": {
            "type": "integer",
            "description": "The number of pieces calculated by Batcher.",
            "format": "int32"
          },
          "numUniquePieces": {
            "type": "integer",
            "description": "The number of unique pieces calculated by Batcher.",
            "format": "int32"
          },
          "numTotalComponents": {
            "type": "integer",
            "description": "The total number of components calculated by Batcher.",
            "format": "int32"
          },
          "numUniqueComponents": {
            "type": "integer",
            "description": "The number of unique components calculated by Batcher.",
            "format": "int32"
          },
          "maxHeight": {
            "type": "number",
            "description": "The maximum height calculated by Director.",
            "format": "float"
          },
          "maxLength": {
            "type": "number",
            "description": "The maximum length calculated by Director.",
            "format": "float"
          },
          "maxWeight": {
            "type": "number",
            "description": "The maximum weight calculated by Director.",
            "format": "float"
          },
          "totalWeight": {
            "type": "number",
            "description": "The total weight calculated by Director.",
            "format": "float"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "The list of components.",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Cards.CardId"
          },
          "sawStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned saw station.",
            "format": "int32"
          },
          "tableStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned table station.",
            "format": "int32"
          },
          "version": {
            "type": "string",
            "description": "The version of the card. \nThis value is used for optimistic concurrency control. Needs to be set to \nthe value of the entity's version property when updating/deleting the entity.",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a DTO for a card with various properties."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByProject.CardByProjectResponse": {
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "label": {
            "type": "string",
            "description": "The label displayed as “PPG #” in the UI mockups.",
            "nullable": true
          },
          "assignedStation": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          },
          "order": {
            "type": "integer",
            "description": "The priority of the cards for each station.",
            "format": "int32"
          },
          "assignedSaw": {
            "type": "string",
            "description": "The assigned saw, used to display tags for each card.",
            "nullable": true
          },
          "assignedTable": {
            "type": "string",
            "description": "The assigned table, used to display tags for each card.",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "description": "The color index into an array of colors.",
            "format": "int32"
          },
          "activatedDateTime": {
            "type": "string",
            "description": "The date and time when the card was activated.",
            "format": "date-time",
            "nullable": true
          },
          "activatedByUser": {
            "type": "string",
            "description": "The user who activated the card.",
            "nullable": true
          },
          "completedDateTime": {
            "type": "string",
            "description": "The date and time when the card was completed.",
            "format": "date-time",
            "nullable": true
          },
          "completedByUser": {
            "type": "string",
            "description": "The user who completed the card.",
            "nullable": true
          },
          "crewSize": {
            "type": "integer",
            "description": "The crew size.",
            "format": "int32",
            "nullable": true
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time when the card was created.",
            "format": "date-time"
          },
          "createdByUser": {
            "type": "string",
            "description": "The user who created the card.",
            "nullable": true
          },
          "bdft": {
            "type": "number",
            "description": "The board feet (BDFT) calculated by Batcher.",
            "format": "float"
          },
          "numPieces": {
            "type": "integer",
            "description": "The number of pieces calculated by Batcher.",
            "format": "int32"
          },
          "numUniquePieces": {
            "type": "integer",
            "description": "The number of unique pieces calculated by Batcher.",
            "format": "int32"
          },
          "numTotalComponents": {
            "type": "integer",
            "description": "The total number of components calculated by Batcher.",
            "format": "int32"
          },
          "numUniqueComponents": {
            "type": "integer",
            "description": "The number of unique components calculated by Batcher.",
            "format": "int32"
          },
          "maxHeight": {
            "type": "number",
            "description": "The maximum height calculated by Director.",
            "format": "float"
          },
          "maxLength": {
            "type": "number",
            "description": "The maximum length calculated by Director.",
            "format": "float"
          },
          "maxWeight": {
            "type": "number",
            "description": "The maximum weight calculated by Director.",
            "format": "float"
          },
          "totalWeight": {
            "type": "number",
            "description": "The total weight calculated by Director.",
            "format": "float"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "The list of components.",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Cards.CardId"
          },
          "projectId": {
            "type": "string",
            "description": "Project Id the card is associated with.",
            "format": "uuid",
            "nullable": true
          },
          "areaName": {
            "type": "string",
            "description": "Area name the card is associated with.",
            "nullable": true
          },
          "stationName": {
            "type": "string",
            "description": "Station name the card is associated with.",
            "nullable": true
          },
          "version": {
            "type": "string",
            "description": "The version of the card. \nThis value is used for optimistic concurrency control. Needs to be set to \nthe value of the entity's version property when updating/deleting the entity.",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a card by project dto"
      },
      "ProductionSchedulerServer.Application.Features.Cards.Queries.GetCardsByStation.CardByStationListResponse": {
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "label": {
            "type": "string",
            "description": "The label displayed as “PPG #” in the UI mockups.",
            "nullable": true
          },
          "assignedStation": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          },
          "order": {
            "type": "integer",
            "description": "The priority of the cards for each station.",
            "format": "int32"
          },
          "assignedSaw": {
            "type": "string",
            "description": "The assigned saw, used to display tags for each card.",
            "nullable": true
          },
          "assignedTable": {
            "type": "string",
            "description": "The assigned table, used to display tags for each card.",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "description": "The color index into an array of colors.",
            "format": "int32"
          },
          "activatedDateTime": {
            "type": "string",
            "description": "The date and time when the card was activated.",
            "format": "date-time",
            "nullable": true
          },
          "activatedByUser": {
            "type": "string",
            "description": "The user who activated the card.",
            "nullable": true
          },
          "completedDateTime": {
            "type": "string",
            "description": "The date and time when the card was completed.",
            "format": "date-time",
            "nullable": true
          },
          "completedByUser": {
            "type": "string",
            "description": "The user who completed the card.",
            "nullable": true
          },
          "crewSize": {
            "type": "integer",
            "description": "The crew size.",
            "format": "int32",
            "nullable": true
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time when the card was created.",
            "format": "date-time"
          },
          "createdByUser": {
            "type": "string",
            "description": "The user who created the card.",
            "nullable": true
          },
          "bdft": {
            "type": "number",
            "description": "The board feet (BDFT) calculated by Batcher.",
            "format": "float"
          },
          "numPieces": {
            "type": "integer",
            "description": "The number of pieces calculated by Batcher.",
            "format": "int32"
          },
          "numUniquePieces": {
            "type": "integer",
            "description": "The number of unique pieces calculated by Batcher.",
            "format": "int32"
          },
          "numTotalComponents": {
            "type": "integer",
            "description": "The total number of components calculated by Batcher.",
            "format": "int32"
          },
          "numUniqueComponents": {
            "type": "integer",
            "description": "The number of unique components calculated by Batcher.",
            "format": "int32"
          },
          "maxHeight": {
            "type": "number",
            "description": "The maximum height calculated by Director.",
            "format": "float"
          },
          "maxLength": {
            "type": "number",
            "description": "The maximum length calculated by Director.",
            "format": "float"
          },
          "maxWeight": {
            "type": "number",
            "description": "The maximum weight calculated by Director.",
            "format": "float"
          },
          "totalWeight": {
            "type": "number",
            "description": "The total weight calculated by Director.",
            "format": "float"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "The list of components.",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Cards.CardId"
          },
          "sawStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned saw station.",
            "format": "int32"
          },
          "tableStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned table station.",
            "format": "int32"
          },
          "version": {
            "type": "string",
            "description": "The version of the card. \nThis value is used for optimistic concurrency control. Needs to be set to \nthe value of the entity's version property when updating/deleting the entity.",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a DTO for a card with various properties."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Queries.GetCompletedCardsForShift.CompletedCardResponse": {
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "label": {
            "type": "string",
            "description": "The label displayed as “PPG #” in the UI mockups.",
            "nullable": true
          },
          "assignedStation": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          },
          "order": {
            "type": "integer",
            "description": "The priority of the cards for each station.",
            "format": "int32"
          },
          "assignedSaw": {
            "type": "string",
            "description": "The assigned saw, used to display tags for each card.",
            "nullable": true
          },
          "assignedTable": {
            "type": "string",
            "description": "The assigned table, used to display tags for each card.",
            "nullable": true
          },
          "color": {
            "type": "integer",
            "description": "The color index into an array of colors.",
            "format": "int32"
          },
          "activatedDateTime": {
            "type": "string",
            "description": "The date and time when the card was activated.",
            "format": "date-time",
            "nullable": true
          },
          "activatedByUser": {
            "type": "string",
            "description": "The user who activated the card.",
            "nullable": true
          },
          "completedDateTime": {
            "type": "string",
            "description": "The date and time when the card was completed.",
            "format": "date-time",
            "nullable": true
          },
          "completedByUser": {
            "type": "string",
            "description": "The user who completed the card.",
            "nullable": true
          },
          "crewSize": {
            "type": "integer",
            "description": "The crew size.",
            "format": "int32",
            "nullable": true
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time when the card was created.",
            "format": "date-time"
          },
          "createdByUser": {
            "type": "string",
            "description": "The user who created the card.",
            "nullable": true
          },
          "bdft": {
            "type": "number",
            "description": "The board feet (BDFT) calculated by Batcher.",
            "format": "float"
          },
          "numPieces": {
            "type": "integer",
            "description": "The number of pieces calculated by Batcher.",
            "format": "int32"
          },
          "numUniquePieces": {
            "type": "integer",
            "description": "The number of unique pieces calculated by Batcher.",
            "format": "int32"
          },
          "numTotalComponents": {
            "type": "integer",
            "description": "The total number of components calculated by Batcher.",
            "format": "int32"
          },
          "numUniqueComponents": {
            "type": "integer",
            "description": "The number of unique components calculated by Batcher.",
            "format": "int32"
          },
          "maxHeight": {
            "type": "number",
            "description": "The maximum height calculated by Director.",
            "format": "float"
          },
          "maxLength": {
            "type": "number",
            "description": "The maximum length calculated by Director.",
            "format": "float"
          },
          "maxWeight": {
            "type": "number",
            "description": "The maximum weight calculated by Director.",
            "format": "float"
          },
          "totalWeight": {
            "type": "number",
            "description": "The total weight calculated by Director.",
            "format": "float"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "The list of components.",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Cards.CardId"
          },
          "sawStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned saw station.",
            "format": "int32"
          },
          "tableStationColorCode": {
            "type": "integer",
            "description": "The color code of the assigned table station.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents a DTO for a card with various properties."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Queries.GetStatusByPpgForCards.CardStatus": {
        "enum": [
          "NotStarted",
          "InProgress",
          "Done"
        ],
        "type": "string",
        "description": "The status of a card."
      },
      "ProductionSchedulerServer.Application.Features.Cards.Queries.GetStatusByPpgForCards.StatusResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The Card's assigned saw or table.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Cards.Queries.GetStatusByPpgForCards.CardStatus"
          }
        },
        "additionalProperties": false,
        "description": "A status for a card."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.BatchPieceDto": {
        "type": "object",
        "properties": {
          "consolidatedPieceKey": {
            "type": "string",
            "description": "Key for the consolidated piece.",
            "nullable": true
          },
          "componentKey": {
            "type": "string",
            "description": "Key for the component.",
            "nullable": true
          },
          "cutSequence": {
            "type": "integer",
            "description": "Cut sequence number.",
            "format": "int32"
          },
          "distinctCutSequence": {
            "type": "integer",
            "description": "Distinct cut sequence number.",
            "format": "int32"
          },
          "productionLabel": {
            "type": "string",
            "description": "Production label for the batch piece.",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity of batch pieces.",
            "format": "int32"
          },
          "overallLengthInches": {
            "type": "number",
            "description": "Overall length in inches.",
            "format": "double"
          },
          "lumberNdsDescription": {
            "type": "string",
            "description": "NDS lumber description.",
            "nullable": true
          },
          "lumberGrade": {
            "type": "string",
            "description": "Lumber grade.",
            "nullable": true
          },
          "lumberSpecies": {
            "type": "string",
            "description": "Lumber species.",
            "nullable": true
          },
          "lumberSize": {
            "type": "string",
            "description": "Lumber size.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a batch piece in a sub-production group (DTO)."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.CreateProducerProductionGroup.CreatePpgRequest": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "Gets or sets the project id associated with the producer production group.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The name of the producer production group.",
            "nullable": true
          },
          "projectNumber": {
            "type": "string",
            "description": "Gets or sets the project number.",
            "nullable": true
          },
          "projectName": {
            "type": "string",
            "description": "Project name.",
            "nullable": true
          },
          "customerName": {
            "type": "string",
            "description": "Gets or sets the customer name.",
            "nullable": true
          },
          "deliveryDate": {
            "type": "string",
            "description": "Gets or sets the estimated delivery date.",
            "format": "date",
            "nullable": true
          },
          "maxHeight": {
            "type": "number",
            "description": "Gets or sets the height of the tallest component.",
            "format": "float",
            "nullable": true
          },
          "maxSpan": {
            "type": "number",
            "description": "Gets or sets the maximum span of the group.",
            "format": "float",
            "nullable": true
          },
          "maxWeight": {
            "type": "number",
            "description": "Gets or sets the weight of the heaviest component.",
            "format": "float",
            "nullable": true
          },
          "totalBdft": {
            "type": "number",
            "description": "Gets or sets the total board feet (BDFT) of the producer production group.",
            "format": "float",
            "nullable": true
          },
          "totalComponents": {
            "type": "integer",
            "description": "Gets or sets the total number of components in the producer production group.",
            "format": "int32",
            "nullable": true
          },
          "totalLft": {
            "type": "number",
            "description": "Gets or sets the total linear feet (LFT) of the producer production group.",
            "format": "float",
            "nullable": true
          },
          "totalPieces": {
            "type": "integer",
            "description": "Gets or sets the total number of pieces in the producer production group.",
            "format": "int32",
            "nullable": true
          },
          "totalWeight": {
            "type": "number",
            "description": "Gets or sets the total weight of the producer production group.",
            "format": "float",
            "nullable": true
          },
          "uniquePieceCount": {
            "type": "integer",
            "description": "Gets or sets the number of unique pieces in the producer production group.",
            "format": "int32"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "Gets or sets the components of the producer production group.",
            "nullable": true
          },
          "subPpgs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.SubPpgDto"
            },
            "description": "Gets or sets the sub producer production groups of the producer production group.",
            "nullable": true
          },
          "productionNote": {
            "maxLength": 256,
            "type": "string",
            "description": "Gets or sets the production notes associated with the producer production group.\nThis property allows for adding additional information or context related to production.",
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of batcher output files from Director.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the data transfer object used for creating a producer production group."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.CreateProducerProductionGroup.CreatePpgResponse": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "Gets or sets the project id associated with the producer production group.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The name of the producer production group.",
            "nullable": true
          },
          "projectNumber": {
            "type": "string",
            "description": "Gets or sets the project number.",
            "nullable": true
          },
          "projectName": {
            "type": "string",
            "description": "Project name.",
            "nullable": true
          },
          "customerName": {
            "type": "string",
            "description": "Gets or sets the customer name.",
            "nullable": true
          },
          "deliveryDate": {
            "type": "string",
            "description": "Gets or sets the estimated delivery date.",
            "format": "date",
            "nullable": true
          },
          "maxHeight": {
            "type": "number",
            "description": "Gets or sets the height of the tallest component.",
            "format": "float",
            "nullable": true
          },
          "maxSpan": {
            "type": "number",
            "description": "Gets or sets the maximum span of the group.",
            "format": "float",
            "nullable": true
          },
          "maxWeight": {
            "type": "number",
            "description": "Gets or sets the weight of the heaviest component.",
            "format": "float",
            "nullable": true
          },
          "totalBdft": {
            "type": "number",
            "description": "Gets or sets the total board feet (BDFT) of the producer production group.",
            "format": "float",
            "nullable": true
          },
          "totalComponents": {
            "type": "integer",
            "description": "Gets or sets the total number of components in the producer production group.",
            "format": "int32",
            "nullable": true
          },
          "totalLft": {
            "type": "number",
            "description": "Gets or sets the total linear feet (LFT) of the producer production group.",
            "format": "float",
            "nullable": true
          },
          "totalPieces": {
            "type": "integer",
            "description": "Gets or sets the total number of pieces in the producer production group.",
            "format": "int32",
            "nullable": true
          },
          "totalWeight": {
            "type": "number",
            "description": "Gets or sets the total weight of the producer production group.",
            "format": "float",
            "nullable": true
          },
          "uniquePieceCount": {
            "type": "integer",
            "description": "Gets or sets the number of unique pieces in the producer production group.",
            "format": "int32"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "Gets or sets the components of the producer production group.",
            "nullable": true
          },
          "subPpgs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.SubPpgDto"
            },
            "description": "Gets or sets the sub producer production groups of the producer production group.",
            "nullable": true
          },
          "productionNote": {
            "maxLength": 256,
            "type": "string",
            "description": "Gets or sets the production notes associated with the producer production group.\nThis property allows for adding additional information or context related to production.",
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of batcher output files from Director.",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "version": {
            "type": "string",
            "description": "The version property. Used for optimistic concurrency control.",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the data transfer object returned after creating a producer production group."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupDueDate.PatchPpgDueDateResponse": {
        "type": "object",
        "properties": {
          "updatedPpgCount": {
            "type": "integer",
            "description": "Represents the number of producer production groups that were updated.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents the response of updating the due date of all producer production groups in a project."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupDueDate.UpdatePpgDueDateRequest": {
        "required": [
          "dueDate"
        ],
        "type": "object",
        "properties": {
          "applyToAllPpgInProject": {
            "type": "boolean",
            "description": "Determines if the new due date should be applied to all producer production groups in the project."
          },
          "dueDate": {
            "type": "string",
            "description": "New due date of the producer production group.",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "Represents a command to update Ppg due dates."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Commands.UpdateProducerProductionGroupProductionNote.UpdatePpgProductionNoteRequest": {
        "type": "object",
        "properties": {
          "productionNote": {
            "type": "string",
            "description": "Gets or sets the note associated with the production process.\nThis property is used to provide detailed information or updates\nregarding the production within a producer's production group.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the request to update a production note in a producer's production group."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto": {
        "required": [
          "id",
          "name",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the component.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Name of the component.",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Required quantity of the component.",
            "format": "int32"
          },
          "order": {
            "type": "integer",
            "description": "Order of the component.",
            "format": "int32"
          },
          "numPlies": {
            "type": "integer",
            "description": "Number of plies of the component.",
            "format": "int32"
          },
          "pieces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.PieceDto"
            },
            "description": "Collection of piece data associated with the component.",
            "nullable": true
          },
          "plates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.PlateDto"
            },
            "description": "Collection of plate data associated with the component.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a data transfer object for a component."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.PieceDto": {
        "required": [
          "label",
          "overallLengthInches",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "label": {
            "minLength": 1,
            "type": "string",
            "description": "Label of the piece."
          },
          "overallLengthInches": {
            "type": "number",
            "description": "Overall length of the piece in decimal inches.",
            "format": "double"
          },
          "quantity": {
            "type": "integer",
            "description": "Build quantity of the piece.",
            "format": "int32"
          },
          "pieceKey": {
            "type": "string",
            "description": "Unique key for the piece.",
            "nullable": true
          },
          "endCapPositive": {
            "type": "string",
            "description": "End cap positive vector for the piece.",
            "nullable": true
          },
          "endCapNegative": {
            "type": "string",
            "description": "End cap negative vector for the piece.",
            "nullable": true
          },
          "lumberNdsDescription": {
            "type": "string",
            "description": "NDS lumber description for the piece.",
            "nullable": true
          },
          "lumberGrade": {
            "type": "string",
            "description": "Lumber grade for the piece.",
            "nullable": true
          },
          "lumberSpecies": {
            "type": "string",
            "description": "Lumber species for the piece.",
            "nullable": true
          },
          "lumberSize": {
            "type": "string",
            "description": "Lumber size for the piece.",
            "nullable": true
          },
          "startPly": {
            "type": "integer",
            "description": "Start ply for the piece.",
            "format": "int32",
            "nullable": true
          },
          "plyCount": {
            "type": "integer",
            "description": "Ply count for the piece.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a data transfer object for a piece"
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.PlateDto": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "description": "Label of the plate.",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity of plates.",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "description": "Description of the plate.",
            "nullable": true
          },
          "thicknessGauge": {
            "type": "string",
            "description": "Thickness gauge of the plate.",
            "nullable": true
          },
          "lengthInches": {
            "type": "number",
            "description": "Length of the plate in inches.",
            "format": "double"
          },
          "widthInches": {
            "type": "number",
            "description": "Width of the plate in inches.",
            "format": "double"
          },
          "gauge": {
            "type": "string",
            "description": "Gauge value of the plate.",
            "nullable": true
          },
          "reportHighlightArgb": {
            "type": "integer",
            "description": "ARGB value for report highlight.",
            "format": "int32",
            "nullable": true
          },
          "colorArgb": {
            "type": "integer",
            "description": "ARGB color value for the plate.",
            "format": "int32",
            "nullable": true
          },
          "translateVector": {
            "type": "string",
            "description": "Translation vector for the plate.",
            "nullable": true
          },
          "rotateVector": {
            "type": "string",
            "description": "Rotation vector for the plate.",
            "nullable": true
          },
          "jointLabel": {
            "type": "string",
            "description": "Joint label for the plate.",
            "nullable": true
          },
          "jointLocation": {
            "type": "string",
            "description": "Joint location for the plate.",
            "nullable": true
          },
          "jointStartPly": {
            "type": "integer",
            "description": "Start ply for the joint.",
            "format": "int32"
          },
          "jointPlyCount": {
            "type": "integer",
            "description": "Ply count for the joint.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents a plate used in a component for production (DTO)."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Queries.GetProducerProductionGroupDetail.PpgDetailResponse": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "Gets or sets the project id associated with the producer production group.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The name of the producer production group.",
            "nullable": true
          },
          "projectNumber": {
            "type": "string",
            "description": "Gets or sets the project number.",
            "nullable": true
          },
          "projectName": {
            "type": "string",
            "description": "Project name.",
            "nullable": true
          },
          "customerName": {
            "type": "string",
            "description": "Gets or sets the customer name.",
            "nullable": true
          },
          "deliveryDate": {
            "type": "string",
            "description": "Gets or sets the estimated delivery date.",
            "format": "date",
            "nullable": true
          },
          "maxHeight": {
            "type": "number",
            "description": "Gets or sets the height of the tallest component.",
            "format": "float",
            "nullable": true
          },
          "maxSpan": {
            "type": "number",
            "description": "Gets or sets the maximum span of the group.",
            "format": "float",
            "nullable": true
          },
          "maxWeight": {
            "type": "number",
            "description": "Gets or sets the weight of the heaviest component.",
            "format": "float",
            "nullable": true
          },
          "totalBdft": {
            "type": "number",
            "description": "Gets or sets the total board feet (BDFT) of the producer production group.",
            "format": "float",
            "nullable": true
          },
          "totalComponents": {
            "type": "integer",
            "description": "Gets or sets the total number of components in the producer production group.",
            "format": "int32",
            "nullable": true
          },
          "totalLft": {
            "type": "number",
            "description": "Gets or sets the total linear feet (LFT) of the producer production group.",
            "format": "float",
            "nullable": true
          },
          "totalPieces": {
            "type": "integer",
            "description": "Gets or sets the total number of pieces in the producer production group.",
            "format": "int32",
            "nullable": true
          },
          "totalWeight": {
            "type": "number",
            "description": "Gets or sets the total weight of the producer production group.",
            "format": "float",
            "nullable": true
          },
          "uniquePieceCount": {
            "type": "integer",
            "description": "Gets or sets the number of unique pieces in the producer production group.",
            "format": "int32"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "Gets or sets the components of the producer production group.",
            "nullable": true
          },
          "subPpgs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.SubPpgDto"
            },
            "description": "Gets or sets the sub producer production groups of the producer production group.",
            "nullable": true
          },
          "productionNote": {
            "maxLength": 256,
            "type": "string",
            "description": "Gets or sets the production notes associated with the producer production group.\nThis property allows for adding additional information or context related to production.",
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of batcher output files from Director.",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "reports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Queries.GetProducerProductionGroupDetail.PpgReportDto"
            },
            "description": "Reports of the producer production group.",
            "nullable": true
          },
          "version": {
            "type": "string",
            "description": "The version property. Used for optimistic concurrency control.",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the detailed information of a producer production group."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.Queries.GetProducerProductionGroupDetail.PpgReportDto": {
        "type": "object",
        "properties": {
          "reportName": {
            "type": "string",
            "description": "Gets or sets the Report Name of the report.",
            "nullable": true
          },
          "reportPath": {
            "type": "string",
            "description": "Gets or sets the blob storage identifier of the report.\n{PpgId}/reports/{generated GUID}.pdf",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the DTO (Data Transfer Object) for Report belonging to a PPG."
      },
      "ProductionSchedulerServer.Application.Features.ProducerProductionGroups.SubPpgDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the sub-production group.",
            "nullable": true
          },
          "assignedSaw": {
            "type": "string",
            "description": "Assigned saw.",
            "nullable": true
          },
          "assignedTable": {
            "type": "string",
            "description": "Assigned table.",
            "nullable": true
          },
          "totalBdft": {
            "type": "number",
            "description": "Total board feet.",
            "format": "float"
          },
          "totalLft": {
            "type": "number",
            "description": "Total linear feet (LFT) of the producer production group.",
            "format": "float"
          },
          "totalPieces": {
            "type": "integer",
            "description": "Total number of pieces in the sub-production group.",
            "format": "int32"
          },
          "uniquePiecesCount": {
            "type": "integer",
            "description": "The number of unique pieces in the producer production group.",
            "format": "int32"
          },
          "totalComponents": {
            "type": "integer",
            "description": "Total number of components in the sub-production group.",
            "format": "int32"
          },
          "uniqueComponentsCount": {
            "type": "integer",
            "description": "Number of unique components in the sub-production group.",
            "format": "int32"
          },
          "maxHeight": {
            "type": "number",
            "description": "The maximum height of the components within the sub-production group.",
            "format": "double"
          },
          "maxSpan": {
            "type": "number",
            "description": "Maximum span of the sub-production group components.",
            "format": "double"
          },
          "maxWeight": {
            "type": "number",
            "description": "Maximum weight of the sub-production group.",
            "format": "double"
          },
          "totalWeight": {
            "type": "number",
            "description": "Total weight of the sub-production group.",
            "format": "double"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.ComponentDto"
            },
            "description": "List of components associated with the sub-production group.",
            "nullable": true
          },
          "batchPieces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ProducerProductionGroups.BatchPieceDto"
            },
            "description": "List of batch pieces associated with the sub-production group.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a sub-group within a producer production group."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.GetShiftReconciliationResponse": {
        "required": [
          "data",
          "metadata"
        ],
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.ResponseMetadata"
          },
          "data": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.ReconciliationData"
          }
        },
        "additionalProperties": false,
        "description": "Response model that includes metadata and the list of production summaries for each station"
      },
      "ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.ReconciliationData": {
        "required": [
          "reportCreationTime",
          "stations",
          "status"
        ],
        "type": "object",
        "properties": {
          "reportCreationTime": {
            "type": "string",
            "description": "Date and time the report was generated in the timezone of the facility with no timezone offset indicator (ISO 8601 format, e.g., 2024-10-31T14:30:00)",
            "nullable": true
          },
          "stations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of all stations returned, in the same order they will be reported for each PPG",
            "nullable": true,
            "example": [
              "Plate Pick",
              "Lumber Pick",
              "Blade Saw",
              "DeRobo",
              "Floor",
              "N. Assembly"
            ]
          },
          "status": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.ReconciliationProjects"
            },
            "description": "Data about the PPGs from this project",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "List of projects included in this response"
      },
      "ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.ReconciliationPpgs": {
        "required": [
          "ppgName",
          "stationStatus"
        ],
        "type": "object",
        "properties": {
          "ppgName": {
            "type": "string",
            "description": "Name of a PPG associated with a project",
            "nullable": true,
            "example": "ABC123"
          },
          "stationStatus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.ReconciliationStationStatus"
            },
            "description": "Status of stations in this PPG, in the same order that these stations are returned in the stations block.",
            "nullable": true
          },
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "created": {
            "type": "string",
            "description": "When the PPG was created",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "description": "Who created the PPG",
            "nullable": true
          },
          "customerName": {
            "type": "string",
            "description": "The name of the customer associated with this PPG",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "description": "When the PPG is due",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Report model for PPGs in reconciliation"
      },
      "ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.ReconciliationProjects": {
        "required": [
          "ppgData",
          "projectName",
          "projectNumber"
        ],
        "type": "object",
        "properties": {
          "projectName": {
            "type": "string",
            "description": "The name of a project",
            "nullable": true,
            "example": "Washington St. Apartment"
          },
          "projectComplete": {
            "type": "boolean",
            "description": "Whether the entire project is complete or not.",
            "example": true
          },
          "projectId": {
            "type": "string",
            "description": "The ID of the project",
            "format": "uuid"
          },
          "projectNumber": {
            "type": "string",
            "description": "The number of the project",
            "nullable": true
          },
          "ppgData": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.ReconciliationPpgs"
            },
            "description": "Data about the PPGs from this project",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "List of projects included in this response"
      },
      "ProductionSchedulerServer.Application.Features.Reports.Commands.GetShiftReconciliationCommand.ReconciliationStationStatus": {
        "required": [
          "stationName"
        ],
        "type": "object",
        "properties": {
          "stationName": {
            "type": "string",
            "description": "The name of a station",
            "nullable": true,
            "example": "'Plate Pick', 'Blade Saw'"
          },
          "stationState": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.ValueTypes.StationState"
          }
        },
        "additionalProperties": false,
        "description": "Report model for station status in reconciliation"
      },
      "ProductionSchedulerServer.Application.Features.Reports.Commands.SendReportCommand.SendReportCommand": {
        "required": [
          "file"
        ],
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "reportName": {
            "type": "string",
            "description": "The ID of the report.",
            "nullable": true
          },
          "file": {
            "type": "string",
            "description": "The file containing the report.",
            "format": "binary",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a command to receive a report."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Commands.SendReportCommand.SendReportDto": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Reports.ReportId"
          },
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "reportName": {
            "type": "string",
            "description": "Gets or sets the report path of the report.",
            "nullable": true
          },
          "reportPath": {
            "type": "string",
            "description": "Gets or sets the report path of the report.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the data transfer object for receiving a report."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetCutNotBuiltQuery.CutNotBuiltData": {
        "type": "object",
        "properties": {
          "reportCreationTime": {
            "type": "string",
            "description": "Date and time the report was generated in the timezone of the facility with no timezone offset indicator (ISO 8601 format, e.g., 2024-10-31T14:30:00)",
            "nullable": true
          },
          "totalBdFt": {
            "type": "number",
            "description": "Total board feet processed during production",
            "format": "float",
            "readOnly": true
          },
          "totalLFt": {
            "type": "number",
            "description": "Total linear feet processed during production",
            "format": "float",
            "readOnly": true
          },
          "totalComponents": {
            "type": "integer",
            "description": "Total number of components produced",
            "format": "int32",
            "readOnly": true
          },
          "totalPieces": {
            "type": "integer",
            "description": "Total number of pieces produced",
            "format": "int32",
            "readOnly": true
          },
          "projects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetCutNotBuiltQuery.CutNotBuiltProject"
            },
            "description": "List of projects with cut not built items",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The data object for the cut not built report."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetCutNotBuiltQuery.CutNotBuiltProject": {
        "type": "object",
        "properties": {
          "projectName": {
            "type": "string",
            "description": "The name of the project",
            "nullable": true
          },
          "projectNumber": {
            "type": "string",
            "description": "The number of the project",
            "nullable": true
          },
          "totalBdFt": {
            "type": "number",
            "description": "Total board feet processed during production",
            "format": "float",
            "readOnly": true
          },
          "totalLFt": {
            "type": "number",
            "description": "Total linear feet processed during production",
            "format": "float",
            "readOnly": true
          },
          "totalComponents": {
            "type": "integer",
            "description": "Total number of components produced",
            "format": "int32",
            "readOnly": true
          },
          "totalPieces": {
            "type": "integer",
            "description": "Total number of pieces produced",
            "format": "int32",
            "readOnly": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetCutNotBuiltQuery.CutNotBuiltReportItem"
            },
            "description": "List of cut not built items for the project",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The data object for a cut not built project."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetCutNotBuiltQuery.CutNotBuiltReportItem": {
        "type": "object",
        "properties": {
          "ppgId": {
            "type": "integer",
            "description": "The PPG ID number",
            "format": "int32"
          },
          "ppgName": {
            "type": "string",
            "description": "The PPG Name associated with the project",
            "nullable": true
          },
          "totalBdFt": {
            "type": "number",
            "description": "Total board feet processed during production",
            "format": "float"
          },
          "totalLFt": {
            "type": "number",
            "description": "Total linear feet processed during production",
            "format": "float"
          },
          "totalComponents": {
            "type": "integer",
            "description": "Total number of components produced",
            "format": "int32"
          },
          "totalPieces": {
            "type": "integer",
            "description": "Total number of pieces produced",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "The data object for a cut not built report item."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetCutNotBuiltQuery.GetCutNotBuiltReportResponse": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.ResponseMetadata"
          },
          "data": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetCutNotBuiltQuery.CutNotBuiltData"
          }
        },
        "additionalProperties": false,
        "description": "The response received after retrieving cut not built reports."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionReportsQuery.DailyProductionReport": {
        "type": "object",
        "properties": {
          "stationType": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.ValueTypes.ReportingStationType"
          },
          "stationName": {
            "type": "string",
            "description": "The station name.",
            "nullable": true
          },
          "shift": {
            "type": "string",
            "description": "The shift.",
            "nullable": true
          },
          "crewSize": {
            "type": "integer",
            "description": "The size of the crew.",
            "format": "int32"
          },
          "manHours": {
            "type": "number",
            "description": "The number of man-hours.",
            "format": "float"
          },
          "totalPieces": {
            "type": "integer",
            "description": "The total number of pieces.",
            "format": "int32"
          },
          "bdft": {
            "type": "number",
            "description": "The total board feet processed during production.",
            "format": "float"
          },
          "componentCount": {
            "type": "integer",
            "description": "The total number of components produced.",
            "format": "int32"
          },
          "bdFtPerManHour": {
            "type": "number",
            "description": "The BDFT per man hour.",
            "format": "float"
          },
          "uniqueComponentCount": {
            "type": "integer",
            "description": "The number of unique components processed.",
            "format": "int32"
          },
          "uniquePieceCount": {
            "type": "integer",
            "description": "Unique piece count.",
            "format": "int32"
          },
          "reportCreationDate": {
            "type": "string",
            "description": "The report creation date.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "The daily production report."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionReportsQuery.DailyProductionReportData": {
        "type": "object",
        "properties": {
          "reportCreationTime": {
            "type": "string",
            "description": "Date and time the report was generated in the timezone of the facility with no timezone offset indicator (ISO 8601 format, e.g., 2024-10-31T14:30:00)",
            "nullable": true
          },
          "reports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionReportsQuery.DailyProductionReport"
            },
            "description": "The data associated with the response.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The data associated with the response."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionReportsQuery.GetProductionReportsResponse": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.ResponseMetadata"
          },
          "data": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionReportsQuery.DailyProductionReportData"
          }
        },
        "additionalProperties": false,
        "description": "The response received after retrieving production reports."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionSummaryQuery.GetProductionSummaryResponse": {
        "required": [
          "data",
          "metadata"
        ],
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.ResponseMetadata"
          },
          "data": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionSummaryQuery.ProductionReportData"
          }
        },
        "additionalProperties": false,
        "description": "A response for the production summary."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionSummaryQuery.ProductionReportData": {
        "required": [
          "reportCreationTime",
          "reports"
        ],
        "type": "object",
        "properties": {
          "reportCreationTime": {
            "type": "string",
            "description": "Date and time the report was generated in the timezone of the facility with no timezone offset indicator (ISO 8601 format, e.g., 2024-10-31T14:30:00)",
            "nullable": true
          },
          "reports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionSummaryQuery.ProductionSummaryTotals"
            },
            "description": "The data for the response.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The report data for the production summary."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetProductionSummaryQuery.ProductionSummaryTotals": {
        "required": [
          "stationName",
          "stationType"
        ],
        "type": "object",
        "properties": {
          "stationType": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.ValueTypes.ReportingStationType"
          },
          "stationName": {
            "type": "string",
            "description": "The station name.",
            "nullable": true
          },
          "shift": {
            "type": "string",
            "description": "The shift.",
            "nullable": true
          },
          "crewSize": {
            "type": "integer",
            "description": "The size of the crew.",
            "format": "int32"
          },
          "totalTrusses": {
            "type": "integer",
            "description": "The total number of trusses.",
            "format": "int32"
          },
          "totalBdFt": {
            "type": "number",
            "description": "The total board feet.",
            "format": "float"
          },
          "totalPieces": {
            "type": "integer",
            "description": "The total number of pieces.",
            "format": "int32"
          },
          "totalManHours": {
            "type": "number",
            "description": "The total man-hours for this station and shift.",
            "format": "float"
          },
          "bdFtPerManHour": {
            "type": "number",
            "description": "The board feet per man-hour.",
            "format": "float"
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetReportPathByIdQuery.ReportPathDto": {
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "reportName": {
            "type": "string",
            "description": "Gets or sets the name of the report provided by sender.",
            "nullable": true
          },
          "reportPath": {
            "type": "string",
            "description": "Gets or sets the blob storage identifier of the report.\n{PpgId}/reports/{generated GUID}.pdf",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the DTO (Data Transfer Object) for report path."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetReportPathsByPpgIdQuery.PpgReportPathDto": {
        "type": "object",
        "properties": {
          "reportName": {
            "type": "string",
            "description": "Gets or sets the Report Name of the report.",
            "nullable": true
          },
          "reportPath": {
            "type": "string",
            "description": "Gets or sets the blob storage identifier of the report.\n{PpgId}/reports/{generated GUID}.pdf",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the DTO (Data Transfer Object) for Report belonging to a PPG."
      },
      "ProductionSchedulerServer.Application.Features.Reports.Queries.GetTelerikReportsQuery.GetTelerikReportsResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name associated with the Telerik report.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the response received after generating a Telerik report."
      },
      "ProductionSchedulerServer.Application.Features.Reports.ResponseMetadata": {
        "type": "object",
        "properties": {
          "requestDate": {
            "type": "string",
            "description": "The date the request was made.",
            "format": "date-time"
          },
          "version": {
            "type": "string",
            "description": "The version of the response.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The metadata associated with the response."
      },
      "ProductionSchedulerServer.Application.Features.ShiftStatistics.Models.StationShiftStatistic": {
        "type": "object",
        "properties": {
          "stationId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          },
          "stationName": {
            "type": "string",
            "description": "Station name.",
            "nullable": true
          },
          "currentBDFT": {
            "type": "number",
            "description": "Completed BDFT at the station.",
            "format": "float"
          },
          "targetBDFT": {
            "type": "number",
            "description": "Target BDFT at the station.",
            "format": "float"
          }
        },
        "additionalProperties": false,
        "description": "Station shift statistics."
      },
      "ProductionSchedulerServer.Application.Features.ShiftStatistics.Responses.ResponseMetadata": {
        "type": "object",
        "properties": {
          "requestDate": {
            "type": "string",
            "description": "Request date.",
            "format": "date-time"
          },
          "version": {
            "type": "string",
            "description": "API version.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Metadata about the response, including the request date and API version."
      },
      "ProductionSchedulerServer.Application.Features.ShiftStatistics.Responses.ShiftStatisticsResponse": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ShiftStatistics.Responses.ResponseMetadata"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionSchedulerServer.Application.Features.ShiftStatistics.Models.StationShiftStatistic"
            },
            "description": "List of station shift statistics.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Current shift statistics for a station, including the daily production target."
      },
      "ProductionSchedulerServer.Application.Features.Stations.Commands.UpdateStationCrewSize.UpdateStationCrewSizeRequest": {
        "required": [
          "areaId",
          "stationId"
        ],
        "type": "object",
        "properties": {
          "areaId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.AreaId"
          },
          "stationId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.StationId"
          },
          "crewSize": {
            "type": "integer",
            "description": "Gets or sets the crew size.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Request to update the crew size for a station."
      },
      "ProductionSchedulerServer.Application.Features.Svgs.Commands.UploadSvg.UploadSvgCommand": {
        "required": [
          "file"
        ],
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "componentId": {
            "type": "string",
            "description": "Gets or sets the Component Id of the SVG.",
            "format": "uuid"
          },
          "file": {
            "type": "string",
            "description": "The SVG file to upload to Azure Front Door.",
            "format": "binary",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a command to upload a Card SVG file."
      },
      "ProductionSchedulerServer.Application.Features.Svgs.Commands.UploadSvg.UploadSvgDto": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.Svgs.SvgId"
          },
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "componentId": {
            "type": "string",
            "description": "Gets or sets the Component Id of the SVG.",
            "format": "uuid"
          },
          "url": {
            "type": "string",
            "description": "Gets or sets the URL of the SVG.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "DTO for uploading an SVG."
      },
      "ProductionSchedulerServer.Application.Features.Svgs.Queries.GetSvgUrlByPpgId.SvgUrlByPpgDto": {
        "type": "object",
        "properties": {
          "ppgId": {
            "$ref": "#/components/schemas/ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId"
          },
          "componentId": {
            "type": "string",
            "description": "Gets or sets the component id of the SVG.",
            "format": "uuid"
          },
          "url": {
            "type": "string",
            "description": "Gets or sets the URL of the SVG.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the DTO (Data Transfer Object) for SVG URL."
      },
      "ProductionSchedulerServer.Application.Features.Svgs.Queries.GetSvgUrlByPpgIdAndComponentId.SvgUrlResponse": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL to the SVG resource for a specified component identifier.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the response containing the URL to an SVG resource for a specified component identifier."
      },
      "ProductionSchedulerServer.Domain.Entities.AreaId": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ProductionSchedulerServer.Domain.Entities.Cards.CardId": {
        "type": "integer",
        "additionalProperties": false,
        "format": "int32"
      },
      "ProductionSchedulerServer.Domain.Entities.ProducerProductionGroups.ProducerProductionGroupId": {
        "type": "integer",
        "additionalProperties": false,
        "format": "int32"
      },
      "ProductionSchedulerServer.Domain.Entities.Reports.ReportId": {
        "type": "integer",
        "additionalProperties": false,
        "format": "int32"
      },
      "ProductionSchedulerServer.Domain.Entities.Settings.UpdateSettingRequest": {
        "type": "object",
        "properties": {
          "setting": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductionSchedulerServer.Domain.Entities.StationId": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ProductionSchedulerServer.Domain.Entities.Svgs.SvgId": {
        "type": "integer",
        "additionalProperties": false,
        "format": "int32"
      },
      "ProductionSchedulerServer.Domain.ValueTypes.ReportingStationType": {
        "enum": [
          "Saw",
          "FloorTable",
          "RoofTable",
          "Support"
        ],
        "type": "string"
      },
      "ProductionSchedulerServer.Domain.ValueTypes.StationState": {
        "enum": [
          "",
          "waiting",
          "in progress",
          "complete"
        ],
        "type": "string"
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "JSON Web Token based security",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": [
        ""
      ]
    }
  ]
}