{
    "openapi": "3.0.0",
    "info": {
        "title": "Web Dolphin Japan API",
        "description": "RESTful API for Web Dolphin Japan Application",
        "contact": {
            "name": "Support",
            "email": "support@example.com"
        },
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "http://localhost:8000/api/v1",
            "description": "Development Server"
        }
    ],
    "paths": {
        "/brand/list": {
            "get": {
                "tags": [
                    "Brands"
                ],
                "summary": "Get paginated list of brands",
                "description": "Retrieve a paginated list of all brands",
                "operationId": "listBrands",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number for pagination",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 15
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully retrieved brands list",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "code": {
                                            "type": "integer",
                                            "example": 200
                                        },
                                        "hasError": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "result": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/brand/all": {
            "get": {
                "tags": [
                    "Brands"
                ],
                "summary": "Get all brands without pagination",
                "description": "Retrieve all brands in the system without pagination",
                "operationId": "allBrands",
                "responses": {
                    "200": {
                        "description": "Successfully retrieved all brands"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/brand/add": {
            "post": {
                "tags": [
                    "Brands"
                ],
                "summary": "Create a new brand",
                "description": "Create a new brand with name and optional image",
                "operationId": "createBrand",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Nike",
                                        "maxLength": 50
                                    },
                                    "image": {
                                        "type": "string",
                                        "format": "binary",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Brand created successfully"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        }
    },
    "tags": [
        {
            "name": "Brands",
            "description": "Brands"
        }
    ]
}