{
  "version": "1.0",
  "modules": [
    {
      "name": "Calculator",
      "prefix": "/calculator",
      "endpoints": [
        {
          "method": "POST",
          "path": "/session-histories",
          "summary": "Create Session History",
          "description": "Creates a new session history record for tracking calculator usage. Returns 409 if a session with the same session_id already exists.",
          "request_body": {
            "schema_name": "SessionhistoryCreate",
            "fields": [
              {
                "name": "session_id",
                "type": "str",
                "required": true
              },
              {
                "name": "start_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "last_activity_time",
                "type": "datetime",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "SessionhistoryResponse",
            "fields": [
              {
                "name": "session_id",
                "type": "str",
                "required": true
              },
              {
                "name": "start_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "last_activity_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/session-histories/{sessionhistory_id}",
          "summary": "Get Session History",
          "description": "Retrieves a single session history record by ID. Returns 404 if the session history is not found.",
          "path_params": [
            {
              "name": "sessionhistory_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "SessionhistoryResponse",
            "fields": [
              {
                "name": "session_id",
                "type": "str",
                "required": true
              },
              {
                "name": "start_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "last_activity_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/session-histories",
          "summary": "List Session Histories",
          "description": "Returns a paginated list of all session history records ordered by creation date descending.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            }
          ],
          "response": {
            "schema_name": "SessionhistoryResponse",
            "fields": [
              {
                "name": "session_id",
                "type": "str",
                "required": true
              },
              {
                "name": "start_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "last_activity_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PATCH",
          "path": "/session-histories/{sessionhistory_id}",
          "summary": "Update Session History",
          "description": "Updates an existing session history record. Only provided fields are updated. Returns 404 if not found, 409 if session_id conflicts with another record.",
          "path_params": [
            {
              "name": "sessionhistory_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "SessionhistoryUpdate",
            "fields": [
              {
                "name": "session_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "start_time",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "last_activity_time",
                "type": "datetime",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "SessionhistoryResponse",
            "fields": [
              {
                "name": "session_id",
                "type": "str",
                "required": true
              },
              {
                "name": "start_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "last_activity_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/session-histories/{sessionhistory_id}",
          "summary": "Delete Session History",
          "description": "Deletes a session history record and all associated calculations and calculator state via cascade. Returns 404 if not found.",
          "path_params": [
            {
              "name": "sessionhistory_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/session-histories/{sessionhistory_id}/details",
          "summary": "Get Session History Details",
          "description": "Retrieves a session history record with all associated calculations and calculator state eagerly loaded. Returns 404 if not found.",
          "path_params": [
            {
              "name": "sessionhistory_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "SessionhistoryDetailResponse",
            "fields": [
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "session_id",
                "type": "str",
                "required": true
              },
              {
                "name": "start_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "last_activity_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "calculations",
                "type": "List[CalculationDetailResponse]",
                "required": true,
                "is_list": true,
                "item_fields": [
                  {
                    "name": "id",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "operand1",
                    "type": "float",
                    "required": true
                  },
                  {
                    "name": "operator",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "operand2",
                    "type": "float",
                    "required": true
                  },
                  {
                    "name": "result",
                    "type": "float",
                    "required": true
                  },
                  {
                    "name": "expression",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "timestamp",
                    "type": "datetime",
                    "required": true
                  },
                  {
                    "name": "created_at",
                    "type": "datetime",
                    "required": true
                  },
                  {
                    "name": "updated_at",
                    "type": "datetime",
                    "required": true
                  }
                ]
              },
              {
                "name": "calculator_state",
                "type": "CalculatorstateDetailResponse",
                "required": false,
                "nullable": true,
                "fields": [
                  {
                    "name": "id",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "current_display",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "previous_value",
                    "type": "float",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "current_operator",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "awaiting_operand",
                    "type": "bool",
                    "required": true
                  },
                  {
                    "name": "is_result_displayed",
                    "type": "bool",
                    "required": true
                  },
                  {
                    "name": "memory",
                    "type": "float",
                    "required": true
                  },
                  {
                    "name": "created_at",
                    "type": "datetime",
                    "required": true
                  },
                  {
                    "name": "updated_at",
                    "type": "datetime",
                    "required": true
                  }
                ]
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/calculations",
          "summary": "Create Calculation",
          "description": "Creates a new calculation record and updates the session's last activity time. Returns 404 if the session history does not exist.",
          "request_body": {
            "schema_name": "CalculationCreate",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "operand1",
                "type": "float",
                "required": true
              },
              {
                "name": "operator",
                "type": "str",
                "required": true
              },
              {
                "name": "operand2",
                "type": "float",
                "required": true
              },
              {
                "name": "result",
                "type": "float",
                "required": true
              },
              {
                "name": "expression",
                "type": "str",
                "required": true
              },
              {
                "name": "timestamp",
                "type": "datetime",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "CalculationResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "operand1",
                "type": "float",
                "required": true
              },
              {
                "name": "operator",
                "type": "str",
                "required": true
              },
              {
                "name": "operand2",
                "type": "float",
                "required": true
              },
              {
                "name": "result",
                "type": "float",
                "required": true
              },
              {
                "name": "expression",
                "type": "str",
                "required": true
              },
              {
                "name": "timestamp",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/calculations/{calculation_id}",
          "summary": "Get Calculation",
          "description": "Retrieves a single calculation record by ID. Returns 404 if the calculation is not found.",
          "path_params": [
            {
              "name": "calculation_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CalculationResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "operand1",
                "type": "float",
                "required": true
              },
              {
                "name": "operator",
                "type": "str",
                "required": true
              },
              {
                "name": "operand2",
                "type": "float",
                "required": true
              },
              {
                "name": "result",
                "type": "float",
                "required": true
              },
              {
                "name": "expression",
                "type": "str",
                "required": true
              },
              {
                "name": "timestamp",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/calculations",
          "summary": "List Calculations",
          "description": "Returns a paginated list of calculations ordered by timestamp descending. Optionally filter by session_history_id.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "session_history_id",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "CalculationResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "operand1",
                "type": "float",
                "required": true
              },
              {
                "name": "operator",
                "type": "str",
                "required": true
              },
              {
                "name": "operand2",
                "type": "float",
                "required": true
              },
              {
                "name": "result",
                "type": "float",
                "required": true
              },
              {
                "name": "expression",
                "type": "str",
                "required": true
              },
              {
                "name": "timestamp",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PATCH",
          "path": "/calculations/{calculation_id}",
          "summary": "Update Calculation",
          "description": "Updates an existing calculation record. Only provided fields are updated. Returns 404 if not found or if referenced session history does not exist.",
          "path_params": [
            {
              "name": "calculation_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "CalculationUpdate",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "operand1",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "operand2",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "result",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "expression",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "timestamp",
                "type": "datetime",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "CalculationResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "operand1",
                "type": "float",
                "required": true
              },
              {
                "name": "operator",
                "type": "str",
                "required": true
              },
              {
                "name": "operand2",
                "type": "float",
                "required": true
              },
              {
                "name": "result",
                "type": "float",
                "required": true
              },
              {
                "name": "expression",
                "type": "str",
                "required": true
              },
              {
                "name": "timestamp",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/calculations/{calculation_id}",
          "summary": "Delete Calculation",
          "description": "Deletes a calculation record. Returns 404 if not found.",
          "path_params": [
            {
              "name": "calculation_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/session-histories/{session_id}/calculations",
          "summary": "Get Session Calculations",
          "description": "Retrieves all calculations for a specific session identified by session_id. Returns up to the specified limit of most recent calculations. Returns 404 if session not found.",
          "path_params": [
            {
              "name": "session_id",
              "type": "str"
            }
          ],
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 50
            }
          ],
          "response": {
            "schema_name": "CalculationResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "operand1",
                "type": "float",
                "required": true
              },
              {
                "name": "operator",
                "type": "str",
                "required": true
              },
              {
                "name": "operand2",
                "type": "float",
                "required": true
              },
              {
                "name": "result",
                "type": "float",
                "required": true
              },
              {
                "name": "expression",
                "type": "str",
                "required": true
              },
              {
                "name": "timestamp",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/calculator-states",
          "summary": "Create Calculator State",
          "description": "Creates a new calculator state record for a session. Returns 404 if session history does not exist, 409 if a calculator state already exists for the session.",
          "request_body": {
            "schema_name": "CalculatorstateCreate",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/calculator-states/{calculatorstate_id}",
          "summary": "Get Calculator State",
          "description": "Retrieves a single calculator state record by ID. Returns 404 if not found.",
          "path_params": [
            {
              "name": "calculatorstate_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/calculator-states",
          "summary": "List Calculator States",
          "description": "Returns a paginated list of all calculator state records ordered by creation date descending.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            }
          ],
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PATCH",
          "path": "/calculator-states/{calculatorstate_id}",
          "summary": "Update Calculator State",
          "description": "Updates an existing calculator state record. Only provided fields are updated. Returns 404 if not found or if referenced session history does not exist, 409 if session_history_id conflicts.",
          "path_params": [
            {
              "name": "calculatorstate_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "CalculatorstateUpdate",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": false,
                "nullable": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/calculator-states/{calculatorstate_id}",
          "summary": "Delete Calculator State",
          "description": "Deletes a calculator state record. Returns 404 if not found.",
          "path_params": [
            {
              "name": "calculatorstate_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/session-histories/{sessionhistory_id}/calculate",
          "summary": "Perform Calculation",
          "description": "Performs an arithmetic calculation and creates a calculation record. Validates operator and checks for division by zero. Updates session last activity time. Returns 400 for invalid operations or division by zero, 404 if session not found.",
          "path_params": [
            {
              "name": "sessionhistory_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "CalculateRequest",
            "fields": [
              {
                "name": "operand1",
                "type": "float",
                "required": true
              },
              {
                "name": "operator",
                "type": "str",
                "required": true
              },
              {
                "name": "operand2",
                "type": "float",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "CalculationResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "operand1",
                "type": "float",
                "required": true
              },
              {
                "name": "operator",
                "type": "str",
                "required": true
              },
              {
                "name": "operand2",
                "type": "float",
                "required": true
              },
              {
                "name": "result",
                "type": "float",
                "required": true
              },
              {
                "name": "expression",
                "type": "str",
                "required": true
              },
              {
                "name": "timestamp",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "POST",
          "path": "/calculator-states/{calculatorstate_id}/clear-entry",
          "summary": "Clear Entry",
          "description": "Clears the current display value to zero while preserving previous value and operator. Sets is_result_displayed to false. Returns 404 if calculator state not found.",
          "path_params": [
            {
              "name": "calculatorstate_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/calculator-states/{calculatorstate_id}/all-clear",
          "summary": "All Clear",
          "description": "Resets all calculator state values to defaults: display to zero, clears previous value and operator, sets flags to false. Memory is preserved. Returns 404 if calculator state not found.",
          "path_params": [
            {
              "name": "calculatorstate_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/calculator-states/{calculatorstate_id}/memory-clear",
          "summary": "Memory Clear",
          "description": "Clears the memory value to zero. Returns 404 if calculator state not found.",
          "path_params": [
            {
              "name": "calculatorstate_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/calculator-states/{calculatorstate_id}/memory-recall",
          "summary": "Memory Recall",
          "description": "Recalls the memory value to the current display and sets is_result_displayed to true. Returns 404 if calculator state not found.",
          "path_params": [
            {
              "name": "calculatorstate_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/calculator-states/{calculatorstate_id}/memory-add",
          "summary": "Memory Add",
          "description": "Adds the current display value to memory. Returns 400 if current display is not a valid number, 404 if calculator state not found.",
          "path_params": [
            {
              "name": "calculatorstate_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/calculator-states/{calculatorstate_id}/memory-subtract",
          "summary": "Memory Subtract",
          "description": "Subtracts the current display value from memory. Returns 400 if current display is not a valid number, 404 if calculator state not found.",
          "path_params": [
            {
              "name": "calculatorstate_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CalculatorstateResponse",
            "fields": [
              {
                "name": "session_history_id",
                "type": "str",
                "required": true
              },
              {
                "name": "current_display",
                "type": "str",
                "required": true
              },
              {
                "name": "previous_value",
                "type": "float",
                "required": false,
                "nullable": true
              },
              {
                "name": "current_operator",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "awaiting_operand",
                "type": "bool",
                "required": true
              },
              {
                "name": "is_result_displayed",
                "type": "bool",
                "required": true
              },
              {
                "name": "memory",
                "type": "float",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/session-histories/{sessionhistory_id}/clear-history",
          "summary": "Clear Session History",
          "description": "Deletes all calculations for a session while preserving the session record. Resets calculator state to defaults if it exists. Returns 404 if session not found.",
          "path_params": [
            {
              "name": "sessionhistory_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "SessionhistoryResponse",
            "fields": [
              {
                "name": "session_id",
                "type": "str",
                "required": true
              },
              {
                "name": "start_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "last_activity_time",
                "type": "datetime",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        }
      ]
    }
  ],
  "enums": {
    "OperatorType": [
      "ADDITION",
      "SUBTRACTION",
      "MULTIPLICATION",
      "DIVISION",
      "MULTIPLICATION_ALT",
      "DIVISION_ALT"
    ]
  }
}
