{
    "openapi": "3.1.0",
    "info": {
        "title": "eSchool API Documentation",
        "version": "1.0.0",
        "description": "API Documentation untuk eSchool - Software Manajemen Sekolah.\n\n## Authentication\n\nSebagian besar endpoint membutuhkan 2 header:\n\n| Header | Tipe | Wajib | Deskripsi |\n|--------|------|-------|-----------|\n| `Authorization` | Bearer Token | Ya* | Token dari response login. Format: `Bearer {token}` |\n| `school_code` | String | Ya* | Kode sekolah yang diperoleh saat registrasi |\n\n*Tidak wajib untuk endpoint login dan forgot-password\n\n## Contoh Request\n\n```bash\ncurl -X GET \"https:\/\/devapisekolah.eschool.ac.id\/api\/student\/subjects\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN_HERE\" \\\n  -H \"school_code: YOUR_SCHOOL_CODE\"\n```\n\n## Format Response\n\n### Success Response\n```json\n{\n  \"success\": true,\n  \"message\": \"Success message\",\n  \"data\": { ... },\n  \"code\": 200\n}\n```\n\n### Error Response\n```json\n{\n  \"success\": false,\n  \"message\": \"Error message\",\n  \"data\": null,\n  \"code\": 400\n}\n```\n\n### Validation Error Response\n```json\n{\n  \"success\": false,\n  \"message\": \"Validation failed\",\n  \"errors\": { \"field\": [\"Error detail\"] },\n  \"error_code\": \"VALIDATION_ERROR\"\n}\n```\n\n## Kelompok API\n\n1. **eSchool API (General)** - Webhook, Logout, Device Token, Health Check, OTP\n2. **Student API** - Endpoint khusus untuk siswa\n3. **Parent API** - Endpoint khusus untuk orang tua\/wali\n4. **Teacher API** - Endpoint khusus untuk guru\n5. **Staff API** - Endpoint khusus untuk staff\n6. **General Settings** - Pengaturan umum, Chatbot, Messaging\n7. **Contact** - Kontak & messaging\n8. **Admin API** - Manajemen pembayaran admin"
    },
    "servers": [
        {
            "url": "https:\/\/devapisekolah.eschool.ac.id\/api",
            "description": "Development"
        }
    ],
    "security": [
        {
            "bearerAuth": [],
            "schoolCode": []
        }
    ],
    "paths": {
        "\/health\/ping": {
            "get": {
                "operationId": "healthCheck.ping",
                "description": "Lightweight check \u2014 returns 200 if the PHP process is alive.\nUse this for load balancer health probes and Kubernetes livenessProbe.\nNo external dependencies are checked.",
                "summary": "Liveness probe",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/health\/ready": {
            "get": {
                "operationId": "healthCheck.ready",
                "description": "Checks whether the application can serve traffic by verifying critical\ndependencies (database and cache). Returns 200 if ready, 503 if not.\nUse this for Kubernetes readinessProbe or pre-deployment verification.",
                "summary": "Readiness probe",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/health\/db": {
            "get": {
                "operationId": "healthCheck.dbCheck",
                "description": "Verifies all configured database connections (mysql, central, mysql_test).\nReturns latency, server version, and connection status per database.\nUse this to verify database configs are correct after deployment.",
                "summary": "Database connection diagnostics",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/health": {
            "get": {
                "operationId": "healthCheck.health",
                "description": "Deep system health report following RFC draft-inadarei-api-health-check.\nVerifies all critical and non-critical subsystems including database,\ncache, Redis, storage, queue, mail, and external services.\n\nStatus values follow the RFC convention:\n- `pass` \u2014 All critical checks passed\n- `warn` \u2014 Non-critical issues detected\n- `fail` \u2014 One or more critical checks failed\n\nReturns HTTP 200 for pass\/warn, HTTP 503 for fail.\nUse this for monitoring dashboards and alerting.",
                "summary": "Comprehensive health check",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/subscription\/webhook\/stripe": {
            "post": {
                "operationId": "subscriptionWebhook.stripe",
                "description": "Memproses callback pembayaran dari Stripe (payment_intent.succeeded \/ failed).",
                "summary": "Handle Stripe Webhook",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/subscription\/webhook\/razorpay": {
            "post": {
                "operationId": "subscriptionWebhook.razorpay",
                "description": "Memproses callback pembayaran dari Razorpay (payment.captured).",
                "summary": "Handle Razorpay Webhook",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/webhook\/xendit\/unified": {
            "post": {
                "operationId": "payment.xenditUnifiedWebhook.handle_0",
                "summary": "Handle semua Xendit webhook callback",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/xendit\/callback": {
            "post": {
                "operationId": "payment.xenditUnifiedWebhook.handle_0",
                "summary": "Handle semua Xendit webhook callback",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/xendit\/webhook": {
            "post": {
                "operationId": "payment.xenditUnifiedWebhook.handle_0",
                "summary": "Handle semua Xendit webhook callback",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/webhook\/xendit\/invoice": {
            "post": {
                "operationId": "payment.xenditUnifiedWebhook.handle_0",
                "summary": "Handle semua Xendit webhook callback",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/xendit\/create-invoice": {
            "post": {
                "operationId": "xendit.createInvoice",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "amount": {
                                        "type": "number"
                                    },
                                    "email": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "email"
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    }
                                },
                                "required": [
                                    "amount"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/logout": {
            "post": {
                "operationId": "auth.logout",
                "summary": "Logout",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "requestBody": {
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/LogoutRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/auth\/otp\/request": {
            "post": {
                "operationId": "otp.requestOtp",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "phone": {
                                        "type": "string",
                                        "pattern": "^\\+?[0-9]\\d{1,14}$"
                                    }
                                },
                                "required": [
                                    "phone"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/auth\/otp\/verify": {
            "post": {
                "operationId": "otp.verifyOtp",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "phone": {
                                        "type": "string"
                                    },
                                    "otp": {
                                        "type": "string",
                                        "minLength": 6,
                                        "maxLength": 6
                                    }
                                },
                                "required": [
                                    "phone",
                                    "otp"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/devices\/register": {
            "post": {
                "operationId": "deviceToken.register",
                "summary": "Register or update FCM device token for any user (student, teacher, parent)",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/RegisterDeviceTokenRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/devices\/{fcm_id}": {
            "delete": {
                "operationId": "deviceToken.unregister",
                "summary": "Unregister FCM device token",
                "tags": [
                    "1. eSchool API (General)"
                ],
                "parameters": [
                    {
                        "name": "fcm_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/login": {
            "post": {
                "operationId": "studentApi.login",
                "description": "Login siswa meenggunakan GR \/ Email \/ Admission No dan password.",
                "summary": "Student Login",
                "tags": [
                    "2. Student API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StudentLoginRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/student\/forgot-password": {
            "post": {
                "operationId": "studentApi.forgotPassword",
                "description": "Meminta reset password jika lupa ke email akun terkait.",
                "summary": "Forgot Password",
                "tags": [
                    "2. Student API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StudentForgotPasswordRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/student\/class-subjects": {
            "get": {
                "operationId": "studentApi.classSubjects",
                "description": "Mengambil daftar seluruh mata pelajaran untuk kelas siswa bersangkutan di semester aktif.",
                "summary": "Get Class Subjects",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/subjects": {
            "get": {
                "operationId": "studentApi.subjects",
                "description": "Mengambil daftar mata pelajaran yang telah dipilih\/diikuti oleh siswa.",
                "summary": "Get Enrolled Subjects",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/select-subjects": {
            "post": {
                "operationId": "studentApi.selectSubjects",
                "description": "Memilih mata pelajaran pilihan yang disediakan.",
                "summary": "Select Subjects",
                "tags": [
                    "2. Student API"
                ],
                "requestBody": {
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SelectSubjectsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/guradian-details": {
            "get": {
                "operationId": "studentApi.getGuardianDetails_0",
                "description": "Mengambil profil orang tua untuk siswa ini.",
                "summary": "Get Guardian Details",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/guardian-details": {
            "get": {
                "operationId": "studentApi.getGuardianDetails_0",
                "description": "Mengambil profil orang tua untuk siswa ini.",
                "summary": "Get Guardian Details",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/timetable": {
            "get": {
                "operationId": "studentApi.getTimetable",
                "description": "Mengambil jadwal harian pelajaran siswa.",
                "summary": "Get Timetable",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/lessons": {
            "get": {
                "operationId": "studentApi.getLessons",
                "description": "Mengambil daftar pelajaran dalam mata pelajaran tertentu.",
                "summary": "Get Lessons",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "lesson_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/lesson-topics": {
            "get": {
                "operationId": "studentApi.getLessonTopics",
                "description": "Mengambil bagian topik dari suatu pelajaran.",
                "summary": "Get Lesson Topics",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "lesson_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "topic_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/assignments": {
            "get": {
                "operationId": "studentApi.getAssignments",
                "description": "Mengambil daftar tugas yang diberikan ke siswa.",
                "summary": "Get Assignments",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "assignment_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "is_submitted",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/submit-assignment": {
            "post": {
                "operationId": "studentApi.submitAssignment",
                "description": "Mengumpulkan jawaban atau lampiran file untuk sebuah tugas.",
                "summary": "Submit Assignment",
                "tags": [
                    "2. Student API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SubmitAssignmentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/delete-assignment-submission": {
            "post": {
                "operationId": "studentApi.deleteAssignmentSubmission",
                "description": "Membatalkan pengumpulan\/menghapus tugas yang sudah dinilai\/dikirim.",
                "summary": "Delete Assignment Submission",
                "tags": [
                    "2. Student API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/DeleteAssignmentSubmissionRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/attendance": {
            "get": {
                "operationId": "studentApi.getAttendance",
                "description": "Mengambil riwayat absensi harian siswa.",
                "summary": "Get Attendance",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "month",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/subject-attendance": {
            "get": {
                "operationId": "studentApi.getSubjectAttendance",
                "description": "Mengambil riwayat absensi per-mata pelajaran untuk siswa.",
                "summary": "Get Subject Attendance",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "month",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/announcements": {
            "get": {
                "operationId": "studentApi.getAnnouncements",
                "description": "Mengambil daftar komunikasi\/pengumuman sekolah maupun kelas.",
                "summary": "Get Announcements",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "subject",
                                "noticeboard",
                                "class"
                            ]
                        }
                    },
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-exam-list": {
            "get": {
                "operationId": "studentApi.getExamList",
                "description": "Mengambil daftar ujian luring yang terdaftar.",
                "summary": "Get Exam List",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-exam-details": {
            "get": {
                "operationId": "studentApi.getExamDetails",
                "description": "Mengambil detail jadwal per mata pelajaran dalam sebuah ujian luring.",
                "summary": "Get Exam Details",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/exam-marks": {
            "get": {
                "operationId": "studentApi.getExamMarks",
                "description": "Mengambil nilai final\/rapor ujian siswa.",
                "summary": "Get Exam Marks",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/sliders": {
            "get": {
                "operationId": "studentApi.getSliders",
                "description": "Mengambil daftar gambar banner carousel (slider) pada Dashboard.",
                "summary": "Get Sliders",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-online-exam-list": {
            "get": {
                "operationId": "studentApi.getOnlineExamList",
                "description": "Mengambil jadwal daftar ujian daring yang belum \/ sedang \/ sudah berjalan.",
                "summary": "Get Online Exam List",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-online-exam-questions": {
            "get": {
                "operationId": "studentApi.getOnlineExamQuestions",
                "description": "Mengambil soal-soal untuk ujian daring beserta jenis soalnya.",
                "summary": "Get Online Exam Questions",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "exam_key",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/submit-online-exam-answers": {
            "post": {
                "operationId": "studentApi.submitOnlineExamAnswers",
                "description": "Menyimpan progres atau nilai akhir jawaban ujian.",
                "summary": "Submit Online Exam Answers",
                "tags": [
                    "2. Student API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SubmitOnlineExamAnswersRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-online-exam-result-list": {
            "get": {
                "operationId": "studentApi.getOnlineExamResultList",
                "description": "Mengambil rekap seluruh daftar hasil ujian online.",
                "summary": "Get Online Exam Result List",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-online-exam-result": {
            "get": {
                "operationId": "studentApi.getOnlineExamResult",
                "description": "Mengambil hasil pengerjaan spesifik pada satu buah ujian.",
                "summary": "Get Online Exam Result",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "online_exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "number"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-online-exam-status": {
            "get": {
                "operationId": "studentApi.getOnlineExamStatus",
                "description": "Mengecek status ketersediaan\/waktu\/limit percobaan ujian online oleh siswa.",
                "summary": "Get Online Exam Status",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "online_exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "number"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-online-exam-report": {
            "get": {
                "operationId": "studentApi.getOnlineExamReport",
                "description": "Mengambil statistik rapor dari ujian-ujian online.",
                "summary": "Get Online Exam Report",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-assignments-report": {
            "get": {
                "operationId": "studentApi.getAssignmentReport",
                "description": "Mendapatkan laporan ringkasan kumpulan tugas harian.",
                "summary": "Get Assignment Report",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/get-profile-data": {
            "get": {
                "operationId": "studentApi.getProfileDetails",
                "description": "Mengambil profil lengkap diri siswa.",
                "summary": "Get Profile Details",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/current-session-year": {
            "get": {
                "operationId": "studentApi.getSessionYear",
                "description": "Mengambil rentang semester \/ tahun ajaran saat ini.",
                "summary": "Get Session Year",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/school-settings": {
            "get": {
                "operationId": "studentApi.getSchoolSettings",
                "description": "Mengambil konfigurasi dasar sekolah\/tenant (nama, fitur aktif, dsb).",
                "summary": "Get School Settings",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/join-eskul": {
            "post": {
                "operationId": "studentApi.submitExtracurricular",
                "description": "Mengajukan diri untuk mendaftarkan ke satu atau lebih ekstrakurikuler.",
                "summary": "Submit Extracurricular",
                "tags": [
                    "2. Student API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/JoinExtracurricularRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/my-eskul": {
            "get": {
                "operationId": "studentApi.getMyEskul",
                "description": "Menampilkan daftar ekstrakurikuler yang diikuti (berstatus pending, approve, atau reject).",
                "summary": "Get My Ekstrakurikuler",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student\/extracurricular\/show": {
            "get": {
                "operationId": "studentApi.showEkstrakurikuler",
                "description": "Menampilkan daftar semua ekstrakurikuler yang bisa dipilih.",
                "summary": "Show Ekstrakurikuler",
                "tags": [
                    "2. Student API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/student-exan-result-pdf": {
            "get": {
                "operationId": "setting.getExamResultPdf",
                "description": "Mengambil hasil ujian siswa dalam format PDF (base64).",
                "summary": "Get Exam Result PDF",
                "tags": [
                    "2. Student API"
                ],
                "parameters": [
                    {
                        "name": "exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "student_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "anyOf": [
                                                {
                                                    "type": "string",
                                                    "enum": [
                                                        "GENERIC_ERROR"
                                                    ]
                                                },
                                                {
                                                    "type": "integer",
                                                    "enum": [
                                                        404
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/parent\/fees\/xendit\/webhook": {
            "post": {
                "operationId": "payment.xenditUnifiedWebhook.handle_0",
                "summary": "Handle semua Xendit webhook callback",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/login": {
            "post": {
                "operationId": "parentApi.login",
                "description": "Login orang tua\/wali menggunakan email dan password.",
                "summary": "Parent Login",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "anyOf": [
                                                {
                                                    "type": "string"
                                                },
                                                {
                                                    "type": "string",
                                                    "enum": [
                                                        "GENERIC_ERROR"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "null"
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "VALIDATION_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/parent\/payment-confirmation": {
            "post": {
                "operationId": "paymentConfirmation.confirmPayment",
                "description": "All data is stored in the TENANT (school) database because:\n- Auth::user()->id is a tenant-local user ID (set by APISwitchDatabase middleware)\n- The payment_transactions table has FK to users(id) in the same database\n- payment_history and fees are also in the tenant database",
                "summary": "Confirm payment and update fees status",
                "tags": [
                    "3. Parent API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "invoice_id": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "payment_method": {
                                        "type": "string",
                                        "enum": [
                                            "xendit",
                                            "stripe",
                                            "razorpay"
                                        ]
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "paid",
                                            "pending",
                                            "failed"
                                        ]
                                    },
                                    "amount": {
                                        "type": "number",
                                        "minimum": 1
                                    },
                                    "fee_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "invoice_id",
                                    "payment_method",
                                    "status",
                                    "amount",
                                    "fee_ids"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/payment-confirmation\/{invoiceId}": {
            "get": {
                "operationId": "paymentConfirmation.getTransaction",
                "summary": "Get transaction details by invoice ID",
                "tags": [
                    "3. Parent API"
                ],
                "parameters": [
                    {
                        "name": "invoiceId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/subjects": {
            "get": {
                "operationId": "parentApi.subjects",
                "description": "Mengambil mata pelajaran yang diikuti anak.",
                "summary": "Get Child's Enrolled Subjects",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/class-subjects": {
            "get": {
                "operationId": "parentApi.classSubjects",
                "description": "Mengambil daftar mata pelajaran kelas anak.",
                "summary": "Get Child's Class Subjects",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/timetable": {
            "get": {
                "operationId": "parentApi.getTimetable",
                "description": "Mengambil jadwal pelajaran harian anak.",
                "summary": "Get Child's Timetable",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/lessons": {
            "get": {
                "operationId": "parentApi.getLessons",
                "description": "Mengambil daftar pelajaran dalam mata pelajaran tertentu.",
                "summary": "Get Lessons",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/lesson-topics": {
            "get": {
                "operationId": "parentApi.getLessonTopics",
                "description": "Mengambil bagian topik dari suatu pelajaran.",
                "summary": "Get Lesson Topics",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/assignments": {
            "get": {
                "operationId": "parentApi.getAssignments",
                "description": "Mengambil daftar tugas yang diberikan ke anak.",
                "summary": "Get Assignments",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/attendance": {
            "get": {
                "operationId": "parentApi.getAttendance",
                "description": "Mengambil riwayat absensi harian anak.",
                "summary": "Get Attendance",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/subject-attendance": {
            "get": {
                "operationId": "parentApi.getSubjectAttendance",
                "description": "Mengambil riwayat absensi per-mata pelajaran anak.",
                "summary": "Get Subject Attendance",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/teachers": {
            "get": {
                "operationId": "parentApi.getTeachers",
                "description": "Mengambil daftar guru yang mengajar anak.",
                "summary": "Get Teachers",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/sliders": {
            "get": {
                "operationId": "parentApi.getSliders",
                "description": "Mengambil gambar banner carousel pada dashboard.",
                "summary": "Get Sliders",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/get-exam-list": {
            "get": {
                "operationId": "parentApi.getExamList",
                "description": "Mengambil daftar ujian luring anak.",
                "summary": "Get Exam List",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/get-exam-details": {
            "get": {
                "operationId": "parentApi.getExamDetails",
                "description": "Mengambil detail jadwal per mata pelajaran dalam ujian.",
                "summary": "Get Exam Details",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/exam-marks": {
            "get": {
                "operationId": "parentApi.getExamMarks",
                "description": "Mengambil nilai ujian anak.",
                "summary": "Get Exam Marks",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/profile": {
            "post": {
                "operationId": "parentApi.updateProfile",
                "description": "Memperbarui profil data diri orang tua\/wali.",
                "summary": "Update Parent Profile",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "null"
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "VALIDATION_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/fees": {
            "get": {
                "operationId": "parentApi.getFees",
                "description": "Mengambil daftar tagihan SPP\/biaya sekolah anak.",
                "summary": "Get Fees",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/fees\/pay-bill": {
            "post": {
                "operationId": "parentApi.payBill",
                "description": "Melakukan pembayaran tagihan tunggal.",
                "summary": "Pay Bill",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/fees\/pay-bill-bulk": {
            "post": {
                "operationId": "parentApi.payBillBulk",
                "description": "Melakukan pembayaran tagihan secara bulk (beberapa sekaligus).",
                "summary": "Pay Bill Bulk",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/fees\/xendit\/create": {
            "post": {
                "operationId": "xenditPayment.createInvoice",
                "description": "POST \/api\/parent\/fees\/xendit\/create",
                "summary": "Create Xendit invoice for parent fees payment",
                "tags": [
                    "3. Parent API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "school_id": {
                                        "type": "integer"
                                    },
                                    "student_id": {
                                        "type": "integer"
                                    },
                                    "amount": {
                                        "type": "number",
                                        "minimum": 1
                                    },
                                    "payment_method_id": {
                                        "type": "integer"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "fee_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "payment_methods": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "required": [
                                    "school_id",
                                    "student_id",
                                    "amount",
                                    "payment_method_id",
                                    "email",
                                    "description",
                                    "fee_ids"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "success": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "errors": {
                                                    "type": "object",
                                                    "properties": {
                                                        "exception": {
                                                            "type": "string"
                                                        },
                                                        "message": {
                                                            "type": "string"
                                                        },
                                                        "file": {
                                                            "type": "string"
                                                        },
                                                        "line": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "exception",
                                                        "message",
                                                        "file",
                                                        "line"
                                                    ]
                                                },
                                                "error_code": {
                                                    "type": "string",
                                                    "const": "INTERNAL_SERVER_ERROR"
                                                }
                                            },
                                            "required": [
                                                "success",
                                                "message",
                                                "errors",
                                                "error_code"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "success": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "errors": {
                                                    "type": "object",
                                                    "properties": {
                                                        "exception": {
                                                            "type": "string"
                                                        },
                                                        "message": {
                                                            "type": "string"
                                                        },
                                                        "file": {
                                                            "type": "string"
                                                        },
                                                        "line": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "exception",
                                                        "message",
                                                        "file",
                                                        "line"
                                                    ]
                                                },
                                                "error_code": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "const": "GENERIC_ERROR"
                                                }
                                            },
                                            "required": [
                                                "success",
                                                "message",
                                                "errors",
                                                "error_code"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/parent\/fees\/xendit\/retry\/{invoiceId}": {
            "post": {
                "operationId": "xenditPayment.retryInvoice",
                "description": "POST \/api\/parent\/fees\/xendit\/retry\/{invoiceId}",
                "summary": "Retry an expired Xendit invoice by creating a new one with the same fees",
                "tags": [
                    "3. Parent API"
                ],
                "parameters": [
                    {
                        "name": "invoiceId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "success": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "errors": {
                                                    "type": "object",
                                                    "properties": {
                                                        "exception": {
                                                            "type": "string"
                                                        },
                                                        "message": {
                                                            "type": "string"
                                                        },
                                                        "file": {
                                                            "type": "string"
                                                        },
                                                        "line": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "exception",
                                                        "message",
                                                        "file",
                                                        "line"
                                                    ]
                                                },
                                                "error_code": {
                                                    "type": "string",
                                                    "const": "INTERNAL_SERVER_ERROR"
                                                }
                                            },
                                            "required": [
                                                "success",
                                                "message",
                                                "errors",
                                                "error_code"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "success": {
                                                    "type": "boolean"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "errors": {
                                                    "type": "object",
                                                    "properties": {
                                                        "exception": {
                                                            "type": "string"
                                                        },
                                                        "message": {
                                                            "type": "string"
                                                        },
                                                        "file": {
                                                            "type": "string"
                                                        },
                                                        "line": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "exception",
                                                        "message",
                                                        "file",
                                                        "line"
                                                    ]
                                                },
                                                "error_code": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "const": "GENERIC_ERROR"
                                                }
                                            },
                                            "required": [
                                                "success",
                                                "message",
                                                "errors",
                                                "error_code"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/fees\/xendit\/status\/{invoiceId}": {
            "get": {
                "operationId": "xenditPayment.getInvoiceStatus",
                "description": "GET \/api\/parent\/fees\/xendit\/status\/{invoiceId}",
                "summary": "Get Xendit invoice status",
                "tags": [
                    "3. Parent API"
                ],
                "parameters": [
                    {
                        "name": "invoiceId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/fees\/receipt": {
            "get": {
                "operationId": "payment.generatePaymentReceiptPDF_0",
                "description": "Generate receipt pembayaran dalam format PDF berdasarkan payment_history_id.",
                "summary": "Generate Payment Receipt PDF",
                "tags": [
                    "3. Parent API"
                ],
                "parameters": [
                    {
                        "name": "payment_history_id[]",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "default": "m"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/get-online-exam-list": {
            "get": {
                "operationId": "parentApi.getOnlineExamList",
                "description": "Mengambil daftar ujian daring anak.",
                "summary": "Get Online Exam List",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/get-online-exam-result-list": {
            "get": {
                "operationId": "parentApi.getOnlineExamResultList",
                "description": "Mengambil rekap seluruh hasil ujian daring anak.",
                "summary": "Get Online Exam Result List",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/get-online-exam-result": {
            "get": {
                "operationId": "parentApi.getOnlineExamResult",
                "description": "Mengambil hasil ujian daring anak.",
                "summary": "Get Online Exam Result",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/get-online-exam-report": {
            "get": {
                "operationId": "parentApi.getOnlineExamReport",
                "description": "Mengambil statistik rapor ujian daring anak.",
                "summary": "Get Online Exam Report",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/get-assignments-report": {
            "get": {
                "operationId": "parentApi.getAssignmentReport",
                "description": "Mendapatkan laporan ringkasan tugas harian anak.",
                "summary": "Get Assignment Report",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/current-session-year": {
            "get": {
                "operationId": "parentApi.getSessionYear",
                "description": "Mengambil informasi tahun ajaran aktif.",
                "summary": "Get Session Year",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/school-settings": {
            "get": {
                "operationId": "parentApi.getSchoolSettings",
                "description": "Mengambil konfigurasi dasar sekolah.",
                "summary": "Get School Settings",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/get-child-profile-data": {
            "get": {
                "operationId": "parentApi.getChildProfileDetails",
                "description": "Mengambil profil lengkap anak yang diampu.",
                "summary": "Get Child Profile Details",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/announcements": {
            "get": {
                "operationId": "parentApi.getAnnouncements",
                "description": "Mengambil pengumuman sekolah\/kelas.",
                "summary": "Get Announcements",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/apply-leaves": {
            "post": {
                "operationId": "parentApi.parentApplyLeaves",
                "description": "Mengajukan izin atas nama anak.",
                "summary": "Apply Leave for Child",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/parent\/child-leaves": {
            "get": {
                "operationId": "parentApi.getChildLeaves",
                "description": "Mengambil daftar pengajuan izin anak.",
                "summary": "Get Child Leaves",
                "tags": [
                    "3. Parent API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/login": {
            "post": {
                "operationId": "teacherApi.login_0",
                "description": "Login guru\/staf dengan email dan password. Mendukung multi-school authentication.",
                "summary": "Teacher Login",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/TeacherLoginRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/teacher\/subjects": {
            "get": {
                "operationId": "teacherApi.subjects",
                "description": "Mengambil daftar mata pelajaran yang diajar oleh guru yang sedang login.",
                "summary": "Get Teacher Subjects",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "class_section_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-assignment-filetype": {
            "get": {
                "operationId": "teacherApi.getAssignmentFileType",
                "description": "Mengambil daftar tipe file yang diizinkan untuk tugas.",
                "summary": "Get Assignment File Types",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-assignment": {
            "get": {
                "operationId": "teacherApi.getAssignment",
                "description": "Mengambil daftar tugas berdasarkan filter.",
                "summary": "Get Assignments",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "class_section_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "grade_level_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/create-assignment": {
            "post": {
                "operationId": "teacherApi.createAssignment",
                "description": "Membuat tugas baru untuk kelas tertentu.",
                "summary": "Create Assignment",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/CreateAssignmentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/update-assignment": {
            "post": {
                "operationId": "teacherApi.updateAssignment",
                "description": "Memperbarui tugas yang sudah ada.",
                "summary": "Update Assignment",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateAssignmentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/delete-assignment": {
            "post": {
                "operationId": "teacherApi.deleteAssignment",
                "description": "Menghapus tugas berdasarkan ID.",
                "summary": "Delete Assignment",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-assignment-submission": {
            "get": {
                "operationId": "teacherApi.getAssignmentSubmission",
                "description": "Mengambil daftar pengumpulan tugas dari siswa.",
                "summary": "Get Assignment Submissions",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "assignment_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "grade_level_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/update-assignment-submission": {
            "post": {
                "operationId": "teacherApi.updateAssignmentSubmission",
                "description": "Menilai\/memperbarui pengumpulan tugas siswa.",
                "summary": "Update Assignment Submission",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateAssignmentSubmissionRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/delete-file": {
            "post": {
                "operationId": "teacherApi.deleteFile",
                "description": "Menghapus file lampiran berdasarkan ID.",
                "summary": "Delete File",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/FileIdRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/update-file": {
            "post": {
                "operationId": "teacherApi.updateFile",
                "description": "Memperbarui file lampiran pelajaran\/topik.",
                "summary": "Update File",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/FileIdRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-lesson": {
            "get": {
                "operationId": "teacherApi.getLesson",
                "description": "Mengambil daftar pelajaran berdasarkan filter.",
                "summary": "Get Lessons",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "lesson_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "class_section_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "grade_level_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/create-lesson": {
            "post": {
                "operationId": "teacherApi.createLesson",
                "description": "Membuat pelajaran\/modul baru.",
                "summary": "Create Lesson",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/update-lesson": {
            "post": {
                "operationId": "teacherApi.updateLesson",
                "description": "Memperbarui pelajaran\/modul yang sudah ada.",
                "summary": "Update Lesson",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateLessonRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/delete-lesson": {
            "post": {
                "operationId": "teacherApi.deleteLesson",
                "description": "Menghapus pelajaran\/modul berdasarkan ID.",
                "summary": "Delete Lesson",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/LessonIdRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-topic": {
            "get": {
                "operationId": "teacherApi.getTopic",
                "description": "Mengambil daftar topik dalam pelajaran.",
                "summary": "Get Topics",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "lesson_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "number"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/create-topic": {
            "post": {
                "operationId": "teacherApi.createTopic",
                "description": "Membuat topik baru dalam pelajaran.",
                "summary": "Create Topic",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/CreateTopicRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/update-topic": {
            "post": {
                "operationId": "teacherApi.updateTopic",
                "description": "Memperbarui topik yang sudah ada.",
                "summary": "Update Topic",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateTopicRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/delete-topic": {
            "post": {
                "operationId": "teacherApi.deleteTopic",
                "description": "Menghapus topik berdasarkan ID.",
                "summary": "Delete Topic",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/TopicIdRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-announcement": {
            "get": {
                "operationId": "teacherApi.getAnnouncement",
                "description": "Mengambil daftar pengumuman.",
                "summary": "Get Announcements",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "class_section_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "grade_level_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/send-announcement": {
            "post": {
                "operationId": "teacherApi.sendAnnouncement",
                "description": "Mengirim pengumuman baru ke kelas.",
                "summary": "Send Announcement",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SendAnnouncementRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/update-announcement": {
            "post": {
                "operationId": "teacherApi.updateAnnouncement",
                "description": "Memperbarui pengumuman yang sudah ada.",
                "summary": "Update Announcement",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateAnnouncementRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/delete-announcement": {
            "post": {
                "operationId": "teacherApi.deleteAnnouncement",
                "description": "Menghapus pengumuman berdasarkan ID.",
                "summary": "Delete Announcement",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/AnnouncementIdRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-attendance": {
            "get": {
                "operationId": "teacherApi.getAttendance",
                "description": "Mengambil data presensi siswa.",
                "summary": "Get Attendance",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "date",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "4"
                            ]
                        }
                    },
                    {
                        "name": "class_section_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "grade_level_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "session_year_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/submit-attendance": {
            "post": {
                "operationId": "teacherApi.submitAttendance",
                "description": "Submit presensi siswa per kelas per tanggal.",
                "summary": "Submit Attendance",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SubmitAttendanceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-subject-attendance": {
            "get": {
                "operationId": "teacherApi.getSubjectAttendance",
                "description": "Mengambil data presensi per mata pelajaran.",
                "summary": "Get Subject Attendance",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "timetable_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "4"
                            ]
                        }
                    },
                    {
                        "name": "grade_level_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "class_section_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "strict_cs",
                        "in": "query",
                        "schema": {
                            "type": [
                                "boolean",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/submit-subject-attendance": {
            "post": {
                "operationId": "teacherApi.submitSubjectAttendance",
                "description": "Submit presensi per mata pelajaran.",
                "summary": "Submit Subject Attendance",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart\/form-data": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SubmitSubjectAttendanceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/attendance-ranking": {
            "get": {
                "operationId": "teacherApi.getAttendanceRanking",
                "description": "Mengambil peringkat presensi siswa.",
                "summary": "Get Attendance Ranking",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/student-leave-approve": {
            "post": {
                "operationId": "teacherApi.studentLeaveApprove",
                "description": "Menyetujui atau menolak pengajuan izin siswa.",
                "summary": "Approve\/Reject Student Leave",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StudentLeaveApproveRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-exam-list": {
            "get": {
                "operationId": "teacherApi.getExamList",
                "description": "Mengambil daftar ujian.",
                "summary": "Get Exam List",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "0",
                                "1",
                                "2",
                                "3"
                            ]
                        }
                    },
                    {
                        "name": "publish",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "0",
                                "1"
                            ]
                        }
                    },
                    {
                        "name": "grade_level_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-exam-details": {
            "get": {
                "operationId": "teacherApi.getExamDetails",
                "description": "Mengambil detail ujian berdasarkan ID.",
                "summary": "Get Exam Details",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/submit-exam-marks\/subject": {
            "post": {
                "operationId": "teacherApi.submitExamMarksBySubjects",
                "description": "Input nilai ujian per mata pelajaran.",
                "summary": "Submit Exam Marks by Subjects",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SubmitExamMarksBySubjectsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/submit-exam-marks\/student": {
            "post": {
                "operationId": "teacherApi.submitExamMarksByStudent",
                "description": "Input nilai ujian per siswa.",
                "summary": "Submit Exam Marks by Student",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SubmitExamMarksByStudentRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-online-exam-list": {
            "get": {
                "operationId": "teacherApi.getOnlineExamList",
                "description": "Mengambil daftar ujian online yang dibuat guru.",
                "summary": "Get Online Exam List",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/store-online-exam": {
            "post": {
                "operationId": "teacherApi.storeOnlineExam",
                "description": "Membuat ujian online baru.",
                "summary": "Store Online Exam",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StoreOnlineExamRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/update-online-exam\/{id}": {
            "post": {
                "operationId": "teacherApi.updateOnlineExam",
                "description": "Memperbarui ujian online yang sudah ada.",
                "summary": "Update Online Exam",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateOnlineExamRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/delete-online-exam\/{id}": {
            "delete": {
                "operationId": "teacherApi.deleteOnlineExam",
                "description": "Menghapus ujian online berdasarkan ID.",
                "summary": "Delete Online Exam",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "mode",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "archive",
                                "permanent",
                                "restore"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-online-exam-status": {
            "get": {
                "operationId": "teacherApi.getOnlineExamStatus",
                "description": "Mengambil status ujian online.",
                "summary": "Get Online Exam Status",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "online_exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "number"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/reset-online-exam-status": {
            "delete": {
                "operationId": "teacherApi.resetOnlineExamStatus",
                "description": "Mereset status ujian online siswa agar bisa mengulang.",
                "summary": "Reset Online Exam Status",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "online_exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "student_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "number"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-online-exam-questions\/{id}": {
            "get": {
                "operationId": "teacherApi.getOnlineExamQuestions",
                "description": "Mengambil daftar soal ujian online.",
                "summary": "Get Online Exam Questions",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/store-online-exam-questions": {
            "post": {
                "operationId": "teacherApi.storeOnlineExamQuestions",
                "description": "Menambahkan soal ke ujian online.",
                "summary": "Store Online Exam Questions",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StoreOnlineExamQuestionsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/delete-online-exam-questions": {
            "delete": {
                "operationId": "teacherApi.deleteOnlineExamQuestions",
                "description": "Menghapus soal dari ujian online.",
                "summary": "Delete Online Exam Questions",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "question_id[]",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "number"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-online-exam-question-list-correction": {
            "get": {
                "operationId": "teacherApi.getOnlineExamQuestionListCorrection",
                "description": "Mengambil daftar soal ujian untuk koreksi.",
                "summary": "Get Online Exam Question List for Correction",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "question_type",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "multiple_choice",
                                "true_false",
                                "essay",
                                "short_answer",
                                "numeric",
                                "image_choice"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-online-exam-answer-list-correction": {
            "get": {
                "operationId": "teacherApi.getOnlineExamAnswerListCorrection",
                "description": "Mengambil daftar jawaban siswa untuk dikoreksi.",
                "summary": "Get Online Exam Answer List for Correction",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "online_exam_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "question_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/update-online-exam-answer-correction": {
            "post": {
                "operationId": "teacherApi.updateOnlineExamAnswerCorrection",
                "description": "Memperbarui koreksi jawaban ujian online.",
                "summary": "Update Online Exam Answer Correction",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateExamAnswerCorrectionRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-grade-levels": {
            "get": {
                "operationId": "teacherApi.getGradeLevels",
                "description": "Mengambil daftar tingkat\/jenjang kelas.",
                "summary": "Get Grade Levels",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-class-sections": {
            "get": {
                "operationId": "teacherApi.getClassSectionsByGradeLevel",
                "description": "Mengambil daftar kelas berdasarkan tingkat.",
                "summary": "Get Class Sections by Grade Level",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-student-result": {
            "get": {
                "operationId": "teacherApi.getStudentExamResult",
                "description": "Mengambil hasil ujian siswa.",
                "summary": "Get Student Exam Result",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "student_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "grade_level_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/get-student-marks": {
            "get": {
                "operationId": "teacherApi.getStudentExamMarks",
                "description": "Mengambil detail nilai ujian siswa.",
                "summary": "Get Student Exam Marks",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "student_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "grade_level_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/student-list": {
            "get": {
                "operationId": "teacherApi.getStudentList",
                "description": "Mengambil daftar siswa berdasarkan kelas.",
                "summary": "Get Student List",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "class_section_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "student_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "session_year_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "exam_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "class_subject_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "paginate",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/class-detail": {
            "post": {
                "operationId": "teacherApi.getClassDetail",
                "description": "Mengambil detail kelas yang diampu guru.",
                "summary": "Get Class Detail",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/student-leaves": {
            "get": {
                "operationId": "teacherApi.getStudentLeave",
                "description": "Mengambil daftar pengajuan izin siswa.",
                "summary": "Get Student Leave Requests",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/bank-soal\/get": {
            "get": {
                "operationId": "bankSoal.getBank",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "subject_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "null"
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "VALIDATION_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/bank-soal\/getSoal": {
            "get": {
                "operationId": "bankSoal.getBankSoal",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "subject_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "banksoal_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "online_exam_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "null"
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "VALIDATION_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/bank-soal\/getTeacherSubject": {
            "get": {
                "operationId": "bankSoal.getTeacherSubject",
                "tags": [
                    "4. Teacher API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/bank-soal\/create": {
            "post": {
                "operationId": "bankSoal.createBankSoal",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StoreBankSoalRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/bank-soal\/update": {
            "post": {
                "operationId": "bankSoal.updateBankSoal",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateBankSoalRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/bank-soal\/delete": {
            "delete": {
                "operationId": "bankSoal.deleteBankSoal",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "subject_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "banksoal_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "null"
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "VALIDATION_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/bank-soal\/createSoal": {
            "post": {
                "operationId": "bankSoal.createSoal",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StoreSoalRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/bank-soal\/updateSoal": {
            "post": {
                "operationId": "bankSoal.updateSoal",
                "tags": [
                    "4. Teacher API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "banksoal_soal_id": {
                                        "type": "integer"
                                    },
                                    "banksoal_id": {
                                        "type": "integer"
                                    },
                                    "subject_id": {
                                        "type": "integer"
                                    },
                                    "question": {
                                        "type": "string"
                                    },
                                    "name": {
                                        "type": "string"
                                    },
                                    "default_point": {
                                        "type": "integer"
                                    },
                                    "type": {
                                        "type": "string"
                                    },
                                    "choice_style": {
                                        "type": "string",
                                        "enum": [
                                            "alphabet_lowercase",
                                            "alphabet_uppercase",
                                            "numeric",
                                            "roman_lowercase",
                                            "roman_uppercase"
                                        ]
                                    },
                                    "image": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 2048
                                    },
                                    "note": {
                                        "type": [
                                            "string",
                                            "null"
                                        ]
                                    },
                                    "options": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "text": {
                                                    "type": "string"
                                                },
                                                "percentage": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 100
                                                },
                                                "feedback": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "text",
                                                "percentage",
                                                "feedback"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "banksoal_soal_id",
                                    "banksoal_id",
                                    "subject_id",
                                    "question",
                                    "name",
                                    "default_point",
                                    "type",
                                    "options"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "null"
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "VALIDATION_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/teacher\/bank-soal\/deleteSoal": {
            "delete": {
                "operationId": "bankSoal.deleteSoal",
                "tags": [
                    "4. Teacher API"
                ],
                "parameters": [
                    {
                        "name": "subject_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "banksoal_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "banksoal_soal_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "null"
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "VALIDATION_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/login": {
            "post": {
                "operationId": "teacherApi.login_0",
                "description": "Login guru\/staf dengan email dan password. Mendukung multi-school authentication.",
                "summary": "Teacher Login",
                "tags": [
                    "5. Staff API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/TeacherLoginRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/staff\/my-payroll": {
            "get": {
                "operationId": "staffApi.myPayroll",
                "description": "Mengambil data gaji\/payroll staf yang sedang login.",
                "summary": "Get My Payroll",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/payroll-slip": {
            "get": {
                "operationId": "staffApi.myPayrollSlip",
                "description": "Mengambil detail slip gaji per bulan.",
                "summary": "Get My Payroll Slip",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/payroll-create": {
            "post": {
                "operationId": "staffApi.storePayroll",
                "description": "Menyimpan data payroll baru.",
                "summary": "Store Payroll",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/payroll-staff-list": {
            "get": {
                "operationId": "staffApi.staffPayrollList",
                "description": "Mengambil daftar payroll seluruh staf.",
                "summary": "Get Staff Payroll List",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/payroll-year": {
            "get": {
                "operationId": "staffApi.payrollYear",
                "description": "Mengambil daftar tahun payroll yang tersedia.",
                "summary": "Get Payroll Year",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/profile": {
            "get": {
                "operationId": "staffApi.profile",
                "description": "Mengambil profil lengkap staf yang sedang login.",
                "summary": "Get Staff Profile",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/counter": {
            "get": {
                "operationId": "staffApi.counter",
                "description": "Mengambil ringkasan statistik dashboard (jumlah siswa, guru, kelas, dll).",
                "summary": "Get Dashboard Counter",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/teachers": {
            "get": {
                "operationId": "staffApi.teacher",
                "description": "Mengambil daftar guru yang terdaftar di sekolah.",
                "summary": "Get Teacher List",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/teacher-timetable": {
            "get": {
                "operationId": "staffApi.teacherTimetable",
                "description": "Mengambil jadwal mengajar guru tertentu.",
                "summary": "Get Teacher Timetable",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/staffs": {
            "get": {
                "operationId": "staffApi.staff",
                "description": "Mengambil daftar staf sekolah.",
                "summary": "Get Staff List",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/leave-request": {
            "get": {
                "operationId": "staffApi.staffLeaveRequest",
                "description": "Mengambil daftar pengajuan izin staf.",
                "summary": "Get Staff Leave Requests",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/student-leave-request": {
            "get": {
                "operationId": "staffApi.studentLeaveRequest",
                "description": "Mengambil daftar pengajuan izin siswa untuk di-review.",
                "summary": "Get Student Leave Requests",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/leave-approve": {
            "post": {
                "operationId": "staffApi.leaveApprove",
                "description": "Menyetujui atau menolak pengajuan izin staf.",
                "summary": "Approve\/Reject Staff Leave",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/student-leave-approve": {
            "post": {
                "operationId": "staffApi.studentLeaveApprove",
                "description": "Menyetujui atau menolak pengajuan izin siswa.",
                "summary": "Approve\/Reject Student Leave",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/leave-delete": {
            "post": {
                "operationId": "staffApi.leaveDelete",
                "description": "Menghapus pengajuan izin.",
                "summary": "Delete Leave Request",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/get-announcement": {
            "get": {
                "operationId": "staffApi.getAnnouncement",
                "description": "Mengambil daftar pengumuman.",
                "summary": "Get Announcements",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/send-announcement": {
            "post": {
                "operationId": "staffApi.sendAnnouncement",
                "description": "Mengirim pengumuman baru.",
                "summary": "Send Announcement",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/update-announcement": {
            "post": {
                "operationId": "staffApi.updateAnnouncement",
                "description": "Memperbarui pengumuman yang sudah ada.",
                "summary": "Update Announcement",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/delete-announcement": {
            "post": {
                "operationId": "staffApi.deleteAnnouncement",
                "description": "Menghapus pengumuman berdasarkan ID.",
                "summary": "Delete Announcement",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/student\/attendance": {
            "get": {
                "operationId": "staffApi.studentAttendance",
                "description": "Mengambil data presensi siswa.",
                "summary": "Get Student Attendance",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/roles": {
            "get": {
                "operationId": "staffApi.getRoles",
                "description": "Mengambil daftar role\/jabatan yang tersedia.",
                "summary": "Get Roles",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/users": {
            "get": {
                "operationId": "chat.getUsers_0",
                "description": "Mengambil daftar pengguna yang bisa diajak chatting berdasarkan filter role dan pencarian.",
                "summary": "Get Chat Users",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/notification": {
            "post": {
                "operationId": "staffApi.storeNotification",
                "description": "Mengirim notifikasi push ke user tertentu.",
                "summary": "Send Notification",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "get": {
                "operationId": "staffApi.getNotification",
                "description": "Mengambil daftar notifikasi.",
                "summary": "Get Notifications",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/notification-delete": {
            "post": {
                "operationId": "staffApi.deleteNotification",
                "description": "Menghapus notifikasi berdasarkan ID.",
                "summary": "Delete Notification",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/get-fees": {
            "get": {
                "operationId": "staffApi.getFees",
                "description": "Mengambil daftar tagihan SPP\/biaya sekolah.",
                "summary": "Get Fees",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/fees-paid-list": {
            "get": {
                "operationId": "staffApi.getFeesPaidList",
                "description": "Mengambil daftar pembayaran yang sudah dilakukan.",
                "summary": "Get Fees Paid List",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/student-offline-exam-result": {
            "get": {
                "operationId": "staffApi.getOfflineExamResult",
                "description": "Mengambil hasil ujian luring.",
                "summary": "Get Offline Exam Result",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/features-permission": {
            "get": {
                "operationId": "staffApi.getFeaturesPermissions",
                "description": "Mengambil daftar fitur dan permission yang tersedia di sekolah ini.",
                "summary": "Get Features & Permissions",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/class-timetable": {
            "get": {
                "operationId": "staffApi.getClassTimetable",
                "description": "Mengambil jadwal pelajaran kelas.",
                "summary": "Get Class Timetable",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/student-fees-receipt": {
            "get": {
                "operationId": "payment.generatePaymentReceiptPDF_0",
                "description": "Generate receipt pembayaran dalam format PDF berdasarkan payment_history_id.",
                "summary": "Generate Payment Receipt PDF",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "payment_history_id[]",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/allowances-deductions": {
            "get": {
                "operationId": "staffApi.allowancesDeductions",
                "description": "Mengambil daftar tunjangan dan potongan yang berlaku.",
                "summary": "Get Allowances & Deductions",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/assignment-monitoring\/show": {
            "get": {
                "operationId": "staffApi.assignmentMonitoringShow",
                "description": "Memantau progress tugas per kelas\/guru.",
                "summary": "Get Assignment Monitoring",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/assignment-monitoring\/teacher\/{teacherId}\/assignments": {
            "get": {
                "operationId": "staffApi.getTeacherAssignments",
                "description": "Mengambil daftar tugas yang dibuat oleh guru tertentu.",
                "summary": "Get Teacher Assignments",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "teacherId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular": {
            "get": {
                "operationId": "ekstrakurikuler.getEkstrakurikuler",
                "description": "Mengambil seluruh daftar kegiatan ekstrakurikuler yang aktif.",
                "summary": "Get All Ekstrakurikuler",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/store": {
            "post": {
                "operationId": "ekstrakurikuler.storeEkstrakurikuler",
                "description": "Membuat data ekstrakurikuler baru.",
                "summary": "Store Ekstrakurikuler",
                "tags": [
                    "5. Staff API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StoreEkstrakurikulerRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/show": {
            "get": {
                "operationId": "ekstrakurikuler.showEkstrakurikuler",
                "description": "Menampilkan daftar ekstrakurikuler dengan dukungan paginasi, sorting, dan pencarian.\nBisa menampilkan yang sudah di-soft delete (show_deleted=1).",
                "summary": "Show\/Paginate Ekstrakurikuler",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "offset",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "default": 10
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "default": "id"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "default": "DESC"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "show_deleted",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/edit\/{id}": {
            "get": {
                "operationId": "ekstrakurikuler.editEkstrakurikuler",
                "description": "Mengambil detail spesifik dari jadwal ekstrakurikuler berdasarkan ID.",
                "summary": "Edit Ekstrakurikuler",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/update\/{id}": {
            "put": {
                "operationId": "ekstrakurikuler.updateEkstrakurikuler",
                "description": "Memperbarui informasi kegiatan ekstrakurikuler (Nama, deskripsi, pelatih).",
                "summary": "Update Ekstrakurikuler",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateEkstrakurikulerRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/destroy\/{id}": {
            "delete": {
                "operationId": "ekstrakurikuler.destroyEkstrakurikuler",
                "description": "Melakukan soft delete terhadap kegiatan ekstrakurikuler.",
                "summary": "Delete Ekstrakurikuler",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/trashed": {
            "get": {
                "operationId": "ekstrakurikuler.trashedEkstrakurikuler",
                "description": "Mengambil daftar ekstrakurikuler yang sudah di soft-delete.",
                "summary": "Get Trashed Ekstrakurikuler",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/restore\/{id}": {
            "post": {
                "operationId": "ekstrakurikuler.restoreEkstrakurikuler",
                "description": "Mengembalikan ekstrakurikuler yang telah di soft-delete.",
                "summary": "Restore Ekstrakurikuler",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/force-delete\/{id}": {
            "delete": {
                "operationId": "ekstrakurikuler.forceDeleteEkstrakurikuler",
                "description": "Menghapus secara permanen data ekstrakurikuler.",
                "summary": "Force Delete Ekstrakurikuler",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/bulk-restore": {
            "post": {
                "operationId": "ekstrakurikuler.bulkRestoreEkstrakurikuler",
                "description": "Me-restore beberapa eskul sekaligus.",
                "summary": "Bulk Restore",
                "tags": [
                    "5. Staff API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/BulkRestoreEkstrakurikulerRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/timetable": {
            "get": {
                "operationId": "ekstrakurikuler.showTimetableEkstrakurikuler",
                "description": "Mengambil jadwal kegiatan harian untuk ekstrakurikuler.",
                "summary": "Show Timetable",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/timetable\/save": {
            "post": {
                "operationId": "ekstrakurikuler.saveTimetable",
                "description": "Menambahkan jadwal eskul baru (hari & jam).",
                "summary": "Save Timetable",
                "tags": [
                    "5. Staff API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SaveTimetableEkstrakurikulerRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/timetable\/update\/{id}": {
            "put": {
                "operationId": "ekstrakurikuler.updateTimetableEkstrakurikuler",
                "description": "Memperbarui jadwal eskul yang sudah ada.",
                "summary": "Update Timetable",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateTimetableEkstrakurikulerRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/timetable\/reset\/{id}": {
            "delete": {
                "operationId": "ekstrakurikuler.resetTimetableEkstrakurikuler",
                "description": "Menghapus semua jadwal terkait suatu ekstrakurikuler.",
                "summary": "Reset Timetable",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/members": {
            "get": {
                "operationId": "ekstrakurikuler.showMembersEkstrakurikuler",
                "description": "Mengambil daftar anggota\/siswa pada kegiatan ekstrakurikuler.",
                "summary": "Show Members",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/members\/approve\/{id}": {
            "put": {
                "operationId": "ekstrakurikuler.approveMemberEkstrakurikuler",
                "description": "Menyetujui keanggotaan siswa (status = 1) di ekstrakurikuler.",
                "summary": "Approve Member",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/members\/reject\/{id}": {
            "put": {
                "operationId": "ekstrakurikuler.rejectMemberEkstrakurikuler",
                "description": "Menolak pengajuan keanggotaan siswa (status = 2) di ekstrakurikuler.",
                "summary": "Reject Member",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/attendance\/{id}": {
            "get": {
                "operationId": "ekstrakurikuler.showAttendancesEkstrakurikuler",
                "description": "Menampilkan daftar kehadiran anggota ekskul pada tanggal\/sesi tertentu.",
                "summary": "Show Attendances",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/attendance\/store\/{id}": {
            "post": {
                "operationId": "ekstrakurikuler.storeAttendanceEkstrakurikuler",
                "description": "Menyimpan\/mencatat rekap absensi keseluruhan saat kelas ekskul berlangsung.",
                "summary": "Store Attendance",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StoreAttendanceEkstrakurikulerRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff\/extracurricular\/attendance": {
            "get": {
                "operationId": "ekstrakurikuler.viewAttendanceAPI",
                "description": "Laporan rekapan presensi ekstra (UI viewer format rekapitulasi presensi).",
                "summary": "View Attendance",
                "tags": [
                    "5. Staff API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/staff-leaves-details": {
            "get": {
                "operationId": "leave.getStaffLeaveDetail",
                "description": "Mengambil detail cuti staff tertentu. Bisa difilter berdasarkan bulan, status, dan session year.",
                "summary": "Get Staff Leave Detail",
                "tags": [
                    "5. Staff API"
                ],
                "parameters": [
                    {
                        "name": "staff_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "month",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7",
                                "8",
                                "9",
                                "10",
                                "11",
                                "12"
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "0",
                                "1",
                                "2"
                            ]
                        }
                    },
                    {
                        "name": "session_year_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/register": {
            "post": {
                "operationId": "auth.register",
                "description": "Mendaftar pengguna baru ke sistem sekolah.",
                "summary": "Register New User (Public)\nPOST \/api\/register",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/RegisterRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/forgot-password": {
            "post": {
                "operationId": "auth.forgotPassword",
                "description": "Mengirimkan instruksi reset password ke email yang terdaftar.",
                "summary": "Forgot Password",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ForgotPasswordRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/settings": {
            "get": {
                "operationId": "setting.getSettings",
                "description": "Mengambil pengaturan umum aplikasi (versi app, link download, maintenance mode, dll).",
                "summary": "Get Settings",
                "tags": [
                    "6. General Settings"
                ],
                "responses": {
                    "200": {
                        "description": "Return default values on error so mobile app doesn't crash",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "setting.createSettings",
                "description": "Membuat atau memperbarui pengaturan berdasarkan type dan key.",
                "summary": "Create\/Update Settings",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/CreateSettingsRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/school-settings": {
            "get": {
                "operationId": "setting.getSchoolSettings",
                "description": "Mengambil pengaturan sekolah berdasarkan tipe (privacy_policy, terms_condition, refund_cancellation).",
                "summary": "Get School Settings",
                "tags": [
                    "6. General Settings"
                ],
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "privacy_policy",
                                "terms_condition",
                                "refund_cancellation"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/holidays": {
            "get": {
                "operationId": "setting.getHolidays",
                "description": "Mengambil daftar hari libur sekolah.",
                "summary": "Get Holidays",
                "tags": [
                    "6. General Settings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/change-password": {
            "post": {
                "operationId": "auth.changePassword",
                "description": "Mengubah password akun saat ini dengan password baru.",
                "summary": "Change Password",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ChangePasswordRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/payment-transactions": {
            "get": {
                "operationId": "payment.getPaymentTransactions",
                "description": "Mengambil riwayat transaksi pembayaran. Bisa difilter berdasarkan latest_only dan student_id.",
                "summary": "Get Payment Transactions",
                "tags": [
                    "6. General Settings"
                ],
                "parameters": [
                    {
                        "name": "latest_only",
                        "in": "query",
                        "schema": {
                            "type": [
                                "boolean",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "student_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "number",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/gallery": {
            "get": {
                "operationId": "setting.getGallery",
                "description": "Mengambil galeri foto\/media sekolah.",
                "summary": "Get Gallery",
                "tags": [
                    "6. General Settings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/session-years": {
            "get": {
                "operationId": "setting.getSessionYear",
                "description": "Mengambil data tahun ajaran aktif.",
                "summary": "Get Session Year",
                "tags": [
                    "6. General Settings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/leaves": {
            "get": {
                "operationId": "leave.getLeaves",
                "description": "Mengambil daftar pengajuan cuti. Bisa difilter berdasarkan type (0=Full,1=Half,2=...) dan status.",
                "summary": "Get Leaves",
                "tags": [
                    "6. General Settings"
                ],
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "0",
                                "1",
                                "2"
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "0",
                                "1",
                                "2"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "leave.applyLeaves",
                "description": "Mengajukan cuti\/izin baru dengan alasan, detail tanggal, dan lampiran opsional.",
                "summary": "Apply Leaves",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart\/form-data": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ApplyLeavesRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/my-leaves": {
            "get": {
                "operationId": "leave.getMyLeaves",
                "description": "Mengambil riwayat cuti milik user yang sedang login. Bisa difilter berdasarkan bulan dan status.",
                "summary": "Get My Leaves",
                "tags": [
                    "6. General Settings"
                ],
                "parameters": [
                    {
                        "name": "month",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7",
                                "8",
                                "9",
                                "10",
                                "11",
                                "12"
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "0",
                                "1",
                                "2"
                            ]
                        }
                    },
                    {
                        "name": "session_year_id",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/delete-my-leaves": {
            "post": {
                "operationId": "leave.deleteLeaves",
                "description": "Menghapus pengajuan cuti berdasarkan leave_id (hanya jika status masih pending).",
                "summary": "Delete Leaves",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/DeleteLeavesRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/leave-settings": {
            "get": {
                "operationId": "leave.leaveSettings",
                "description": "Mengambil konfigurasi cuti (jenis cuti, kuota, dll).",
                "summary": "Get Leave Settings",
                "tags": [
                    "6. General Settings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/medium": {
            "get": {
                "operationId": "setting.getMedium",
                "description": "Mengambil daftar medium bahasa pengantar.",
                "summary": "Get Medium",
                "tags": [
                    "6. General Settings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/classes": {
            "get": {
                "operationId": "setting.getClass",
                "description": "Mengambil daftar kelas berdasarkan mode (all\/teacher).",
                "summary": "Get Class",
                "tags": [
                    "6. General Settings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/update-profile": {
            "post": {
                "operationId": "auth.updateProfile",
                "description": "Memperbarui informasi profil pengguna yang sedang login.",
                "summary": "Update Profile",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "content": {
                        "multipart\/form-data": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdateProfileRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/message": {
            "post": {
                "operationId": "chat.sendMessage",
                "description": "Mengirim pesan teks atau file ke pengguna lain.",
                "summary": "Send Message",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SendMessageRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "get": {
                "operationId": "chat.getMessage",
                "description": "Mengambil riwayat percakapan antara user yang sedang login dengan receiver_id.",
                "summary": "Get Message",
                "tags": [
                    "6. General Settings"
                ],
                "parameters": [
                    {
                        "name": "receiver_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/delete\/message": {
            "post": {
                "operationId": "chat.deleteMessage",
                "description": "Menghapus pesan (untuk diri sendiri) berdasarkan ID pesan.",
                "summary": "Delete Message",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/DeleteMessageRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/message\/read": {
            "post": {
                "operationId": "chat.readMessage",
                "description": "Menandai pesan sebagai sudah dibaca.",
                "summary": "Read Message",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ReadMessageRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/users": {
            "get": {
                "operationId": "chat.getUsers_0",
                "description": "Mengambil daftar pengguna yang bisa diajak chatting berdasarkan filter role dan pencarian.",
                "summary": "Get Chat Users",
                "tags": [
                    "6. General Settings"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/users\/chat\/history": {
            "get": {
                "operationId": "chat.usersChatHistory",
                "description": "Mengambil riwayat percakapan dengan berbagai peran pengguna.",
                "summary": "Users Chat History",
                "tags": [
                    "6. General Settings"
                ],
                "parameters": [
                    {
                        "name": "role",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "Guardian",
                                "Staff",
                                "Student",
                                "Teacher"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/class-section\/teachers": {
            "post": {
                "operationId": "setting.classSectionTeachers",
                "description": "Mengambil daftar guru yang mengajar di kelas tertentu.",
                "summary": "Get Class Section Teachers",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ClassSectionTeachersRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/chatbot\/query": {
            "post": {
                "operationId": "chatbot.handleQuery",
                "description": "Memproses pertanyaan pengguna dan memberikan balasan dari AI Dify.",
                "summary": "Handle chatbot query",
                "tags": [
                    "6. General Settings"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/QueryRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/chatbot\/context": {
            "get": {
                "operationId": "chatbot.getContext",
                "description": "Mengambil konteks data sekolah untuk sistem Knowledge Base AI Dify.",
                "summary": "Get context data for Dify Knowledge Base",
                "tags": [
                    "6. General Settings"
                ],
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "default": "all"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/contact\/submit": {
            "post": {
                "operationId": "contact.submitContact",
                "summary": "Submit contact inquiry or report\/complaint\nGeneral endpoint for all roles (Admin, Teacher, Student, Guardian)",
                "tags": [
                    "7. Contact"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/SubmitContactRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": []
            }
        },
        "\/contacts": {
            "get": {
                "operationId": "contact.getContacts",
                "description": "Mengambil daftar kontak\/keluhan. Admin bisa melihat semua, sedangkan\nuser lain hanya bisa melihat yang mereka kirimkan.",
                "summary": "Get Contacts",
                "tags": [
                    "7. Contact"
                ],
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "inquiry",
                                "report"
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "new",
                                "replied",
                                "closed"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 100
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/contacts\/stats": {
            "get": {
                "operationId": "contact.getContactStats",
                "description": "Mengambil statistik kotak masuk kontak.",
                "summary": "Get Contact Stats (Admin only)",
                "tags": [
                    "7. Contact"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/contacts\/{id}": {
            "get": {
                "operationId": "contact.getContactDetails",
                "description": "Mengambil detail laporan spesifik berdasarkan ID.",
                "summary": "Get Contact Details",
                "tags": [
                    "7. Contact"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/contacts\/{id}\/reply": {
            "post": {
                "operationId": "contact.replyContact",
                "description": "Membalas pesan keluhan, khusus untuk pengguna dengan role Admin.\nAkan mengirim email ke submitter jika memungkinkan.",
                "summary": "Reply to Contact (Admin only)",
                "tags": [
                    "7. Contact"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/ReplyContactRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/admin\/payment-methods": {
            "get": {
                "operationId": "paymentMethodAdmin.index",
                "summary": "Get all payment methods (Admin View)\nGET \/api\/admin\/payment-methods",
                "tags": [
                    "8. Admin API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            },
            "post": {
                "operationId": "paymentMethodAdmin.store",
                "summary": "Store new payment method\nPOST \/api\/admin\/payment-methods",
                "tags": [
                    "8. Admin API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart\/form-data": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StorePaymentMethodRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "403": {
                        "$ref": "#\/components\/responses\/AuthorizationException"
                    }
                }
            }
        },
        "\/admin\/payment-methods\/{id}": {
            "put": {
                "operationId": "paymentMethodAdmin.update",
                "summary": "Update payment method\nPUT \/api\/admin\/payment-methods\/{id}",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart\/form-data": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdatePaymentMethodRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "403": {
                        "$ref": "#\/components\/responses\/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "paymentMethodAdmin.destroy",
                "summary": "Destroy payment method\nDELETE \/api\/admin\/payment-methods\/{id}",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/payment-methods\/{id}\/toggle": {
            "patch": {
                "operationId": "paymentMethodAdmin.toggle",
                "summary": "Toggle active status\nPATCH \/api\/admin\/payment-methods\/{id}\/toggle",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/payment-methods\/reorder": {
            "post": {
                "operationId": "paymentMethodAdmin.reorder",
                "summary": "Reorder payment methods\nPOST \/api\/admin\/payment-methods\/reorder",
                "tags": [
                    "8. Admin API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "ordered_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "required": [
                                    "ordered_ids"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/payment-methods\/{methodId}\/accounts": {
            "get": {
                "operationId": "paymentAccountAdmin.index",
                "summary": "Get accounts for a specific payment method\nGET \/api\/admin\/payment-methods\/{id}\/accounts",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "methodId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/payment-accounts": {
            "post": {
                "operationId": "paymentAccountAdmin.store",
                "summary": "Store new payment account\nPOST \/api\/admin\/payment-accounts",
                "tags": [
                    "8. Admin API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/StorePaymentAccountRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "403": {
                        "$ref": "#\/components\/responses\/AuthorizationException"
                    }
                }
            }
        },
        "\/admin\/payment-accounts\/{id}": {
            "put": {
                "operationId": "paymentAccountAdmin.update",
                "summary": "Update payment account\nPUT \/api\/admin\/payment-accounts\/{id}",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/UpdatePaymentAccountRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "403": {
                        "$ref": "#\/components\/responses\/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "paymentAccountAdmin.destroy",
                "summary": "Destroy payment account\nDELETE \/api\/admin\/payment-accounts\/{id}",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/payment-accounts\/{id}\/set-primary": {
            "patch": {
                "operationId": "paymentAccountAdmin.setPrimary",
                "summary": "Set account as primary\nPATCH \/api\/admin\/payment-accounts\/{id}\/set-primary",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/payments\/analytics": {
            "get": {
                "operationId": "paymentApprovalAdmin.getPaymentAnalytics",
                "summary": "Dashboard analytics sederhana\nGET \/api\/admin\/payments\/analytics",
                "tags": [
                    "8. Admin API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/payments\/pending": {
            "get": {
                "operationId": "paymentApprovalAdmin.getPendingPayments",
                "summary": "Get pending manual payments",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "default": 15
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/payments\/{id}\/approve": {
            "post": {
                "operationId": "paymentApprovalAdmin.approve",
                "summary": "Approve manual payment",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/payments\/{id}\/reject": {
            "post": {
                "operationId": "paymentApprovalAdmin.reject",
                "summary": "Reject manual payment",
                "tags": [
                    "8. Admin API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": "string",
                                        "maxLength": 500
                                    }
                                },
                                "required": [
                                    "reason"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": "string",
                                            "const": "INTERNAL_SERVER_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object",
                                            "properties": {
                                                "exception": {
                                                    "type": "string"
                                                },
                                                "message": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "line": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "exception",
                                                "message",
                                                "file",
                                                "line"
                                            ]
                                        },
                                        "error_code": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "const": "GENERIC_ERROR"
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message",
                                        "errors",
                                        "error_code"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    }
                }
            }
        },
        "\/admin\/create-account": {
            "post": {
                "operationId": "auth.createAccount",
                "description": "Membuat akun baru dalam sistem.",
                "summary": "Create Account",
                "tags": [
                    "8. Admin API"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/CreateAccountRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Success"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "500": {
                        "description": "Server Error",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Error"
                                        },
                                        "errors": {
                                            "type": [
                                                "object",
                                                "null"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "success",
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "description": "Bearer token dari login response. Format: Bearer {token}",
                "scheme": "bearer",
                "bearerFormat": "Sanctum Token"
            },
            "schoolCode": {
                "type": "apiKey",
                "description": "Kode sekolah yang diperoleh saat registrasi. Wajib untuk semua endpoint kecuali login.",
                "in": "header",
                "name": "school_code"
            }
        },
        "schemas": {
            "AnnouncementIdRequest": {
                "type": "object",
                "description": "Shared FormRequest for a single announcement_id.\nUsed by: deleteAnnouncement",
                "properties": {
                    "announcement_id": {
                        "type": "number"
                    }
                },
                "required": [
                    "announcement_id"
                ],
                "title": "AnnouncementIdRequest"
            },
            "ApplyLeavesRequest": {
                "type": "object",
                "properties": {
                    "reason": {
                        "type": "string",
                        "maxLength": 500
                    },
                    "files": {
                        "type": "object"
                    },
                    "leave_details": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "date": {
                                    "type": "string",
                                    "format": "date-time"
                                },
                                "type": {
                                    "type": "string",
                                    "enum": [
                                        "Full",
                                        "Half",
                                        "First Half",
                                        "Second Half"
                                    ]
                                }
                            },
                            "required": [
                                "date",
                                "type"
                            ]
                        },
                        "minItems": 1
                    }
                },
                "required": [
                    "reason",
                    "leave_details"
                ],
                "title": "ApplyLeavesRequest"
            },
            "BulkRestoreEkstrakurikulerRequest": {
                "type": "object",
                "properties": {
                    "ids": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                },
                "required": [
                    "ids"
                ],
                "title": "BulkRestoreEkstrakurikulerRequest"
            },
            "ChangePasswordRequest": {
                "type": "object",
                "description": "ChangePasswordRequest\n\nForm request untuk change password endpoint",
                "properties": {
                    "current_password": {
                        "type": "string",
                        "minLength": 6
                    },
                    "new_password": {
                        "type": "string",
                        "minLength": 6
                    },
                    "new_password_confirmation": {
                        "type": "string",
                        "minLength": 6
                    }
                },
                "required": [
                    "current_password",
                    "new_password",
                    "new_password_confirmation"
                ],
                "title": "ChangePasswordRequest"
            },
            "ClassSectionTeachersRequest": {
                "type": "object",
                "properties": {
                    "class_section_id": {
                        "type": "string"
                    }
                },
                "required": [
                    "class_section_id"
                ],
                "title": "ClassSectionTeachersRequest"
            },
            "CreateAccountRequest": {
                "type": "object",
                "description": "CreateAccountRequest\n\nForm request untuk pembuatan akun internal\/admin endpoint",
                "properties": {
                    "first_name": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "last_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 100
                    },
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "password": {
                        "type": "string",
                        "minLength": 6
                    },
                    "role": {
                        "type": "string",
                        "enum": [
                            "Student",
                            "Teacher",
                            "Guardian",
                            "Staff"
                        ]
                    },
                    "school_code": {
                        "type": "string"
                    },
                    "status": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "address": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "first_name",
                    "email",
                    "password",
                    "role",
                    "school_code"
                ],
                "title": "CreateAccountRequest"
            },
            "CreateAssignmentRequest": {
                "type": "object",
                "properties": {
                    "grade_level_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "class_section_id": {
                        "type": "number"
                    },
                    "class_subject_id": {
                        "type": "number"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "start_date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "points": {
                        "type": "number"
                    },
                    "min_points": {
                        "type": "number"
                    },
                    "resubmission": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "extra_days_for_resubmission": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "accepted_file": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "max_file": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "text": {
                        "type": "string",
                        "enum": [
                            "0",
                            "1"
                        ]
                    },
                    "file": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "class_section_id",
                    "class_subject_id",
                    "name",
                    "due_date",
                    "start_date",
                    "points",
                    "min_points",
                    "text"
                ],
                "title": "CreateAssignmentRequest"
            },
            "CreateSettingsRequest": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string"
                    },
                    "key": {
                        "type": "string"
                    },
                    "value": {
                        "type": "string"
                    },
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "type",
                    "key",
                    "value"
                ],
                "title": "CreateSettingsRequest"
            },
            "CreateTopicRequest": {
                "type": "object",
                "properties": {
                    "lesson_id": {
                        "type": "number"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "grade_level_id": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "file": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "enum": [
                                        "file_upload",
                                        "youtube_link",
                                        "video_upload",
                                        "other_link"
                                    ]
                                },
                                "name": {
                                    "type": "string"
                                },
                                "thumbnail": {
                                    "type": "string"
                                },
                                "link": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "file": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                }
                            },
                            "required": [
                                "type"
                            ]
                        }
                    }
                },
                "required": [
                    "lesson_id",
                    "name",
                    "description"
                ],
                "title": "CreateTopicRequest"
            },
            "DeleteAssignmentSubmissionRequest": {
                "type": "object",
                "properties": {
                    "assignment_submission_id": {
                        "type": "number"
                    }
                },
                "required": [
                    "assignment_submission_id"
                ],
                "title": "DeleteAssignmentSubmissionRequest"
            },
            "DeleteLeavesRequest": {
                "type": "object",
                "properties": {
                    "leave_id": {
                        "type": "string"
                    }
                },
                "required": [
                    "leave_id"
                ],
                "title": "DeleteLeavesRequest"
            },
            "DeleteMessageRequest": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "id"
                ],
                "title": "DeleteMessageRequest"
            },
            "FileIdRequest": {
                "type": "object",
                "description": "Shared FormRequest requiring file_id.\nUsed by: updateFile, deleteFile",
                "properties": {
                    "file_id": {
                        "type": "number"
                    }
                },
                "required": [
                    "file_id"
                ],
                "title": "FileIdRequest"
            },
            "ForgotPasswordRequest": {
                "type": "object",
                "description": "ForgotPasswordRequest\n\nForm request untuk forgot password endpoint",
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email"
                    }
                },
                "required": [
                    "email"
                ],
                "title": "ForgotPasswordRequest"
            },
            "JoinExtracurricularRequest": {
                "type": "object",
                "description": "JoinExtracurricularRequest\n\nForm request untuk student join extracurricular activity",
                "properties": {
                    "estrakulikuler_id": {
                        "type": "integer"
                    }
                },
                "required": [
                    "estrakulikuler_id"
                ],
                "title": "JoinExtracurricularRequest"
            },
            "LessonIdRequest": {
                "type": "object",
                "description": "Shared FormRequest for lesson_id-only endpoints.\nUsed by: deleteLesson, getTopic",
                "properties": {
                    "lesson_id": {
                        "type": "number"
                    }
                },
                "required": [
                    "lesson_id"
                ],
                "title": "LessonIdRequest"
            },
            "LogoutRequest": {
                "type": "object",
                "description": "LogoutRequest\n\nForm request untuk logout endpoint",
                "properties": {
                    "device_token": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 1024
                    }
                },
                "title": "LogoutRequest"
            },
            "QueryRequest": {
                "type": "object",
                "description": "QueryRequest\n\nForm request untuk chatbot endpoint",
                "properties": {
                    "question": {
                        "type": "string"
                    },
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "question"
                ],
                "title": "QueryRequest"
            },
            "ReadMessageRequest": {
                "type": "object",
                "properties": {
                    "message_id": {
                        "type": "string"
                    }
                },
                "required": [
                    "message_id"
                ],
                "title": "ReadMessageRequest"
            },
            "RegisterDeviceTokenRequest": {
                "type": "object",
                "description": "RegisterDeviceTokenRequest\n\nForm request untuk registrasi FCM device token.",
                "properties": {
                    "fcm_id": {
                        "type": "string",
                        "maxLength": 1024
                    },
                    "platform": {
                        "type": "string",
                        "enum": [
                            "android",
                            "ios",
                            "web"
                        ]
                    }
                },
                "required": [
                    "fcm_id",
                    "platform"
                ],
                "title": "RegisterDeviceTokenRequest"
            },
            "RegisterRequest": {
                "type": "object",
                "description": "RegisterRequest\n\nForm request untuk registrasi akun publik endpoint",
                "properties": {
                    "first_name": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "last_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 100
                    },
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "password": {
                        "type": "string",
                        "minLength": 6
                    },
                    "school_code": {
                        "type": "string"
                    },
                    "gr_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "dob": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "gender": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "male",
                            "female"
                        ]
                    },
                    "password_confirmation": {
                        "type": "string",
                        "minLength": 6
                    }
                },
                "required": [
                    "first_name",
                    "email",
                    "password",
                    "school_code",
                    "password_confirmation"
                ],
                "title": "RegisterRequest"
            },
            "ReplyContactRequest": {
                "type": "object",
                "properties": {
                    "reply": {
                        "type": "string"
                    }
                },
                "required": [
                    "reply"
                ],
                "title": "ReplyContactRequest"
            },
            "SaveTimetableEkstrakurikulerRequest": {
                "type": "object",
                "properties": {
                    "extracurricular_id": {
                        "type": "integer"
                    },
                    "day": {
                        "type": "string",
                        "enum": [
                            "Monday",
                            "Tuesday",
                            "Wednesday",
                            "Thursday",
                            "Friday",
                            "Saturday",
                            "Sunday"
                        ]
                    },
                    "start_time": {
                        "type": "string"
                    },
                    "end_time": {
                        "type": "string"
                    }
                },
                "required": [
                    "extracurricular_id",
                    "day",
                    "start_time",
                    "end_time"
                ],
                "title": "SaveTimetableEkstrakurikulerRequest"
            },
            "SelectSubjectsRequest": {
                "type": "object",
                "properties": {
                    "subject_ids": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    "subject_group": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "class_subject_id": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "title": "SelectSubjectsRequest"
            },
            "SendAnnouncementRequest": {
                "type": "object",
                "properties": {
                    "class_section_id": {
                        "type": "string"
                    },
                    "grade_level_id": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "class_subject_id": {
                        "type": "number"
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "file": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "class_section_id",
                    "class_subject_id",
                    "title"
                ],
                "title": "SendAnnouncementRequest"
            },
            "SendMessageRequest": {
                "type": "object",
                "properties": {
                    "to": {
                        "type": "string"
                    }
                },
                "required": [
                    "to"
                ],
                "title": "SendMessageRequest"
            },
            "StoreAttendanceEkstrakurikulerRequest": {
                "type": "object",
                "properties": {
                    "ekstrakurikuler_id": {
                        "type": "integer"
                    },
                    "attendance_data": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "date": {
                        "type": "string"
                    }
                },
                "required": [
                    "ekstrakurikuler_id",
                    "attendance_data",
                    "date"
                ],
                "title": "StoreAttendanceEkstrakurikulerRequest"
            },
            "StoreBankSoalRequest": {
                "type": "object",
                "description": "StoreBankSoalRequest\n\nForm request untuk membuat Bank Soal (container).",
                "properties": {
                    "subject_id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    }
                },
                "required": [
                    "subject_id",
                    "name"
                ],
                "title": "StoreBankSoalRequest"
            },
            "StoreEkstrakurikulerRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "coach_id": {
                        "type": "integer"
                    }
                },
                "required": [
                    "name",
                    "description",
                    "coach_id"
                ],
                "title": "StoreEkstrakurikulerRequest"
            },
            "StoreOnlineExamQuestionsRequest": {
                "type": "object",
                "properties": {
                    "exam_id": {
                        "type": "string"
                    },
                    "class_section_id": {
                        "type": "string"
                    },
                    "class_subject_id": {
                        "type": "string"
                    },
                    "merge_existing": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "assign_questions": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "question_id": {
                                    "type": "string"
                                },
                                "marks": {
                                    "type": "number"
                                },
                                "from_bank": {
                                    "type": "boolean"
                                }
                            },
                            "required": [
                                "question_id",
                                "marks",
                                "from_bank"
                            ]
                        }
                    }
                },
                "required": [
                    "exam_id",
                    "class_section_id",
                    "class_subject_id",
                    "assign_questions"
                ],
                "title": "StoreOnlineExamQuestionsRequest"
            },
            "StoreOnlineExamRequest": {
                "type": "object",
                "properties": {
                    "class_section_id": {
                        "type": "integer"
                    },
                    "class_subject_id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "string"
                    },
                    "exam_key": {
                        "type": "string"
                    },
                    "duration": {
                        "type": "number"
                    },
                    "start_date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "grade_level_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "class_section_id",
                    "class_subject_id",
                    "title",
                    "exam_key",
                    "duration",
                    "start_date"
                ],
                "title": "StoreOnlineExamRequest"
            },
            "StorePaymentAccountRequest": {
                "type": "object",
                "properties": {
                    "payment_method_id": {
                        "type": "integer"
                    },
                    "bank_name": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "account_number": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "account_holder": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "branch": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 100
                    },
                    "is_primary": {
                        "type": "boolean"
                    },
                    "is_active": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "payment_method_id",
                    "bank_name",
                    "account_number",
                    "account_holder"
                ],
                "title": "StorePaymentAccountRequest"
            },
            "StorePaymentMethodRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "code": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "category": {
                        "type": "string",
                        "enum": [
                            "bank_transfer",
                            "ewallet",
                            "retail",
                            "qris",
                            "credit_card",
                            "manual"
                        ]
                    },
                    "admin_fee": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 999999
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "requires_proof": {
                        "type": "boolean"
                    },
                    "is_online": {
                        "type": "boolean"
                    },
                    "gateway_code": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 50
                    },
                    "sort_order": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 500
                    },
                    "image": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "binary",
                        "contentMediaType": "application\/octet-stream",
                        "maxLength": 2048
                    }
                },
                "required": [
                    "name",
                    "code",
                    "category",
                    "admin_fee"
                ],
                "title": "StorePaymentMethodRequest"
            },
            "StoreSoalRequest": {
                "type": "object",
                "description": "StoreSoalRequest\n\nForm request untuk membuat pertanyaan di Bank Soal.",
                "properties": {
                    "banksoal_id": {
                        "type": "integer"
                    },
                    "subject_id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "multiple_choice",
                            "essay",
                            "short_answer",
                            "true_false",
                            "numeric"
                        ]
                    },
                    "choice_style": {
                        "type": "string",
                        "enum": [
                            "alphabet_lowercase",
                            "alphabet_uppercase",
                            "numeric",
                            "roman_lowercase",
                            "roman_uppercase"
                        ]
                    },
                    "default_point": {
                        "type": "number",
                        "minimum": 1
                    },
                    "image": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 2048
                    },
                    "question": {
                        "type": "string"
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "options": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "text": {
                                    "type": "string"
                                },
                                "percentage": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 100
                                },
                                "feedback": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "text",
                                "percentage",
                                "feedback"
                            ]
                        }
                    }
                },
                "required": [
                    "banksoal_id",
                    "subject_id",
                    "name",
                    "type",
                    "default_point",
                    "question",
                    "options"
                ],
                "title": "StoreSoalRequest"
            },
            "StudentForgotPasswordRequest": {
                "type": "object",
                "properties": {
                    "gr_no": {
                        "type": "string"
                    },
                    "dob": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "school_code": {
                        "type": "string"
                    }
                },
                "required": [
                    "gr_no",
                    "dob",
                    "school_code"
                ],
                "title": "StudentForgotPasswordRequest"
            },
            "StudentLeaveApproveRequest": {
                "type": "object",
                "properties": {
                    "leave_id": {
                        "type": "integer"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "0",
                            "1",
                            "2"
                        ]
                    },
                    "rejection_reason": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "0=pending, 1=approved, 2=rejected",
                        "maxLength": 2000
                    }
                },
                "required": [
                    "leave_id",
                    "status"
                ],
                "title": "StudentLeaveApproveRequest"
            },
            "StudentLoginRequest": {
                "type": "object",
                "properties": {
                    "gr_number": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "password": {
                        "type": "string",
                        "description": "Email atau student number",
                        "minLength": 6
                    },
                    "school_code": {
                        "type": "string"
                    },
                    "device_token": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 1024
                    },
                    "fcm_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "platform": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "android",
                            "ios",
                            "web"
                        ]
                    }
                },
                "required": [
                    "gr_number",
                    "password",
                    "school_code"
                ],
                "title": "StudentLoginRequest"
            },
            "SubmitAssignmentRequest": {
                "type": "object",
                "description": "SubmitAssignmentRequest\n\nForm request untuk student submit assignment endpoint",
                "properties": {
                    "assignment_id": {
                        "type": "number"
                    },
                    "subject_id": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "text": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "files": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "assignment_id"
                ],
                "title": "SubmitAssignmentRequest"
            },
            "SubmitAttendanceRequest": {
                "type": "object",
                "properties": {
                    "class_section_id": {
                        "type": "integer"
                    },
                    "date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "holiday": {
                        "type": "string",
                        "enum": [
                            "0",
                            "1"
                        ]
                    },
                    "attendance": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "student_id": {
                                    "type": "integer"
                                },
                                "type": {
                                    "type": "string",
                                    "enum": [
                                        "0",
                                        "1",
                                        "2",
                                        "3",
                                        "4"
                                    ]
                                }
                            },
                            "required": [
                                "student_id",
                                "type"
                            ]
                        },
                        "minItems": 1
                    }
                },
                "required": [
                    "class_section_id",
                    "date",
                    "attendance"
                ],
                "title": "SubmitAttendanceRequest"
            },
            "SubmitContactRequest": {
                "type": "object",
                "properties": {
                    "subject": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "message": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "inquiry",
                            "report"
                        ]
                    },
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "email": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "email",
                        "maxLength": 255
                    }
                },
                "required": [
                    "subject",
                    "message",
                    "type"
                ],
                "title": "SubmitContactRequest"
            },
            "SubmitExamMarksByStudentRequest": {
                "type": "object",
                "properties": {
                    "exam_id": {
                        "type": "number"
                    },
                    "grade_level_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "student_id": {
                        "type": "array",
                        "items": {
                            "type": "number"
                        }
                    },
                    "marks_data": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "class_subject_id": {
                                    "type": "integer"
                                },
                                "obtained_marks": {
                                    "type": "number",
                                    "minimum": 0
                                }
                            },
                            "required": [
                                "class_subject_id",
                                "obtained_marks"
                            ]
                        }
                    }
                },
                "required": [
                    "exam_id",
                    "student_id",
                    "marks_data"
                ],
                "title": "SubmitExamMarksByStudentRequest"
            },
            "SubmitExamMarksBySubjectsRequest": {
                "type": "object",
                "properties": {
                    "exam_id": {
                        "type": "number"
                    },
                    "class_subject_id": {
                        "type": "number"
                    },
                    "grade_level_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "marks_data": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "student_id": {
                                    "type": "integer"
                                },
                                "obtained_marks": {
                                    "type": "number",
                                    "minimum": 0
                                }
                            },
                            "required": [
                                "student_id",
                                "obtained_marks"
                            ]
                        }
                    }
                },
                "required": [
                    "exam_id",
                    "class_subject_id",
                    "marks_data"
                ],
                "title": "SubmitExamMarksBySubjectsRequest"
            },
            "SubmitOnlineExamAnswersRequest": {
                "type": "object",
                "description": "SubmitOnlineExamAnswersRequest\n\nForm request untuk student submit online exam answers",
                "properties": {
                    "online_exam_id": {
                        "type": "number"
                    },
                    "answers_data": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "object",
                            "properties": {
                                "question_id": {
                                    "type": "number"
                                },
                                "option_id": {
                                    "type": [
                                        "number",
                                        "null"
                                    ]
                                },
                                "answer": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                }
                            },
                            "required": [
                                "question_id"
                            ]
                        }
                    }
                },
                "required": [
                    "online_exam_id"
                ],
                "title": "SubmitOnlineExamAnswersRequest"
            },
            "SubmitSubjectAttendanceRequest": {
                "type": "object",
                "properties": {
                    "timetable_id": {
                        "type": "integer",
                        "minimum": 1
                    },
                    "date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "materi": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "lampiran": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "binary",
                        "contentMediaType": "application\/octet-stream",
                        "maxLength": 2048
                    },
                    "grade_level_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "class_section_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "attendance": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "student_id": {
                                    "type": "string"
                                },
                                "type": {
                                    "type": "string",
                                    "enum": [
                                        "0",
                                        "1",
                                        "2",
                                        "3",
                                        "4"
                                    ]
                                }
                            },
                            "required": [
                                "student_id",
                                "type"
                            ]
                        },
                        "minItems": 1
                    }
                },
                "required": [
                    "timetable_id",
                    "date",
                    "attendance"
                ],
                "title": "SubmitSubjectAttendanceRequest"
            },
            "TeacherLoginRequest": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "password": {
                        "type": "string"
                    },
                    "fcm_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 1024
                    },
                    "device_token": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 1024
                    },
                    "platform": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "android",
                            "ios",
                            "web"
                        ]
                    }
                },
                "required": [
                    "email",
                    "password"
                ],
                "title": "TeacherLoginRequest"
            },
            "TopicIdRequest": {
                "type": "object",
                "description": "Shared FormRequest for topic_id only endpoints.\nUsed by: deleteTopic",
                "properties": {
                    "topic_id": {
                        "type": "number"
                    }
                },
                "required": [
                    "topic_id"
                ],
                "title": "TopicIdRequest"
            },
            "UpdateAnnouncementRequest": {
                "type": "object",
                "properties": {
                    "announcement_id": {
                        "type": "number"
                    },
                    "class_section_id": {
                        "type": "string"
                    },
                    "grade_level_id": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "class_subject_id": {
                        "type": "number"
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "announcement_id",
                    "class_section_id",
                    "class_subject_id",
                    "title"
                ],
                "title": "UpdateAnnouncementRequest"
            },
            "UpdateAssignmentRequest": {
                "type": "object",
                "properties": {
                    "assignment_id": {
                        "type": "number"
                    },
                    "class_section_id": {
                        "type": "number"
                    },
                    "class_subject_id": {
                        "type": "number"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "start_date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "points": {
                        "type": "number"
                    },
                    "min_points": {
                        "type": "number"
                    },
                    "resubmission": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "extra_days_for_resubmission": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "uploaded_files": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "max_file": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "text": {
                        "type": "string",
                        "enum": [
                            "0",
                            "1"
                        ]
                    },
                    "file": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "accepted_file": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "string",
                            "enum": [
                                ""
                            ]
                        }
                    }
                },
                "required": [
                    "assignment_id",
                    "class_section_id",
                    "class_subject_id",
                    "name",
                    "due_date",
                    "start_date",
                    "points",
                    "min_points",
                    "text"
                ],
                "title": "UpdateAssignmentRequest"
            },
            "UpdateAssignmentSubmissionRequest": {
                "type": "object",
                "properties": {
                    "assignment_submission_id": {
                        "type": "number"
                    },
                    "status": {
                        "type": "number",
                        "enum": [
                            "1",
                            "0"
                        ]
                    },
                    "points": {
                        "type": "number"
                    },
                    "feedback": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "assignment_submission_id",
                    "status",
                    "points"
                ],
                "title": "UpdateAssignmentSubmissionRequest"
            },
            "UpdateBankSoalRequest": {
                "type": "object",
                "description": "UpdateBankSoalRequest\n\nForm request untuk memperbarui Bank Soal (container).",
                "properties": {
                    "banksoal_id": {
                        "type": "integer"
                    },
                    "subject_id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    }
                },
                "required": [
                    "banksoal_id",
                    "subject_id",
                    "name"
                ],
                "title": "UpdateBankSoalRequest"
            },
            "UpdateEkstrakurikulerRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "coach_id": {
                        "type": "integer"
                    }
                },
                "required": [
                    "name",
                    "coach_id"
                ],
                "title": "UpdateEkstrakurikulerRequest"
            },
            "UpdateExamAnswerCorrectionRequest": {
                "type": "object",
                "properties": {
                    "online_exam_id": {
                        "type": "number"
                    },
                    "data": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "student_id": {
                                    "type": "number"
                                },
                                "question_id": {
                                    "type": "number"
                                },
                                "answer_id": {
                                    "type": "number"
                                },
                                "is_answer": {
                                    "type": "number",
                                    "enum": [
                                        "0",
                                        "1"
                                    ]
                                },
                                "marks": {
                                    "type": "number"
                                }
                            },
                            "required": [
                                "student_id",
                                "question_id",
                                "answer_id",
                                "is_answer",
                                "marks"
                            ]
                        }
                    }
                },
                "required": [
                    "online_exam_id",
                    "data"
                ],
                "title": "UpdateExamAnswerCorrectionRequest"
            },
            "UpdateLessonRequest": {
                "type": "object",
                "properties": {
                    "lesson_id": {
                        "type": "number"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "class_section_id": {
                        "type": "number"
                    },
                    "class_subject_id": {
                        "type": "number"
                    },
                    "grade_level_id": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "file": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "enum": [
                                        "file_upload",
                                        "youtube_link",
                                        "video_upload",
                                        "other_link"
                                    ]
                                },
                                "name": {
                                    "type": "string"
                                },
                                "thumbnail": {
                                    "type": "string"
                                },
                                "file": {
                                    "type": "string"
                                },
                                "link": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "required": [
                    "lesson_id",
                    "name",
                    "description",
                    "class_section_id",
                    "class_subject_id"
                ],
                "title": "UpdateLessonRequest"
            },
            "UpdateOnlineExamRequest": {
                "type": "object",
                "properties": {
                    "class_section_id": {
                        "type": "integer"
                    },
                    "class_subject_id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "string"
                    },
                    "exam_key": {
                        "type": "string"
                    },
                    "duration": {
                        "type": "number"
                    },
                    "start_date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "grade_level_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "class_section_id",
                    "class_subject_id",
                    "title",
                    "exam_key",
                    "duration",
                    "start_date"
                ],
                "title": "UpdateOnlineExamRequest"
            },
            "UpdatePaymentAccountRequest": {
                "type": "object",
                "properties": {
                    "bank_name": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "account_number": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "account_holder": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "branch": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 100
                    },
                    "is_primary": {
                        "type": "boolean"
                    },
                    "is_active": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "bank_name",
                    "account_number",
                    "account_holder"
                ],
                "title": "UpdatePaymentAccountRequest"
            },
            "UpdatePaymentMethodRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "code": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "category": {
                        "type": "string",
                        "enum": [
                            "bank_transfer",
                            "ewallet",
                            "retail",
                            "qris",
                            "credit_card",
                            "manual"
                        ]
                    },
                    "admin_fee": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 999999
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "requires_proof": {
                        "type": "boolean"
                    },
                    "is_online": {
                        "type": "boolean"
                    },
                    "gateway_code": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 50
                    },
                    "sort_order": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 500
                    },
                    "image": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "binary",
                        "contentMediaType": "application\/octet-stream",
                        "maxLength": 2048
                    }
                },
                "required": [
                    "name",
                    "code",
                    "category",
                    "admin_fee"
                ],
                "title": "UpdatePaymentMethodRequest"
            },
            "UpdateProfileRequest": {
                "type": "object",
                "description": "UpdateProfileRequest\n\nForm request untuk update profile endpoint",
                "properties": {
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "email": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "email"
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 20
                    },
                    "address": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 500
                    },
                    "avatar": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "binary",
                        "contentMediaType": "application\/octet-stream",
                        "maxLength": 2048
                    }
                },
                "title": "UpdateProfileRequest"
            },
            "UpdateTimetableEkstrakurikulerRequest": {
                "type": "object",
                "properties": {
                    "extracurricular_id": {
                        "type": "integer"
                    },
                    "day": {
                        "type": "string",
                        "enum": [
                            "Monday",
                            "Tuesday",
                            "Wednesday",
                            "Thursday",
                            "Friday",
                            "Saturday",
                            "Sunday"
                        ]
                    },
                    "start_time": {
                        "type": "string"
                    },
                    "end_time": {
                        "type": "string"
                    }
                },
                "required": [
                    "extracurricular_id",
                    "day",
                    "start_time",
                    "end_time"
                ],
                "title": "UpdateTimetableEkstrakurikulerRequest"
            },
            "UpdateTopicRequest": {
                "type": "object",
                "properties": {
                    "topic_id": {
                        "type": "number"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "grade_level_id": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "file": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": [
                                        "string",
                                        "null"
                                    ],
                                    "enum": [
                                        "file_upload",
                                        "youtube_link",
                                        "video_upload",
                                        "other_link"
                                    ]
                                },
                                "name": {
                                    "type": "string"
                                },
                                "thumbnail": {
                                    "type": "string"
                                },
                                "file": {
                                    "type": "string"
                                },
                                "link": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "required": [
                    "topic_id",
                    "name",
                    "description"
                ],
                "title": "UpdateTopicRequest"
            }
        },
        "responses": {
            "ValidationException": {
                "description": "Validation error",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Errors overview."
                                },
                                "errors": {
                                    "type": "object",
                                    "description": "A detailed description of each field that failed validation.",
                                    "additionalProperties": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "message",
                                "errors"
                            ]
                        }
                    }
                }
            },
            "AuthenticationException": {
                "description": "Unauthenticated",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "AuthorizationException": {
                "description": "Authorization error",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            }
        }
    }
}