# Functions
ConfirmOrderHandler @Summary Endpoint confirm order @Description confirm an order @Param orderId path int true "Order ID" minimum(1) @Tags Order @Produce json @Success 204 @Success 400 {object} dto.ErrorMessage @Failure 404 {object} dto.ErrorMessage @Failure 406 {object} dto.ErrorMessage @Failure 500 {object} dto.ErrorMessage @Router /api/v1/order/{orderId}/confirm [post].
CreateOrderHandler @Summary Endpoint create order @Description create order @Param Order body dto.OrderCreateReq true "It is a order creation request." @Tags Order @Produce json @Success 200 {object} dto.IdResponse @Failure 400 {object} dto.ErrorMessage @Failure 404 {object} dto.ErrorMessage @Failure 406 {object} dto.ErrorMessage @Router /api/v1/order [post].
CreateProductHandler @Summary Endpoint create product @Description create product @Param sellerId path int true "Seller ID" minimum(1) @Param Product body dto.ProductCreateReq true "It is a product creation request." @Tags Product @Produce json @Success 200 {object} dto.IdResponse @Failure 400 {object} dto.ErrorMessage @Failure 404 {object} dto.ErrorMessage @Router /api/v1/seller/{sellerId}/product [post].
DeleteAllBySellerHandler @Summary Endpoint delete all products of seller @Description delete all products by seller id @Param sellerId path int true "Seller ID" minimum(1) @Tags Product @Produce json @Success 204 @Failure 400 {object} dto.ErrorMessage @Router /api/v1/seller/{sellerId}/product/all [delete].
DeleteProductHandler @Summary Endpoint delete product @Description delete product by id @Param productId path int true "Product ID" minimum(1) @Tags Product @Produce json @Success 204 @Failure 400 {object} dto.ErrorMessage @Failure 404 {object} dto.ErrorMessage @Failure 406 {object} dto.ErrorMessage @Router /api/v1/seller/product/{productId} [delete].
DeliveredOrderHandler @Summary Endpoint delivered order @Description delivered an order @Param orderId path int true "Order ID" minimum(1) @Tags Order @Produce json @Success 204 @Success 400 {object} dto.ErrorMessage @Failure 404 {object} dto.ErrorMessage @Failure 406 {object} dto.ErrorMessage @Failure 500 {object} dto.ErrorMessage @Router /api/v1/order/{orderId}/delivered [post].
FindOrderHandler @Summary Endpoint find order @Description find order @Param orderId path int true "Order ID" minimum(1) @Tags Order @Produce json @Success 200 {object} dto.OrderDTO @Success 400 {object} dto.ErrorMessage @Failure 404 {object} dto.ErrorMessage @Failure 500 {object} dto.ErrorMessage @Router /api/v1/order/{orderId} [get].
FindProductHandler @Summary Endpoint find product @Description find product @Param productId path int true "Product ID" minimum(1) @Tags Product @Produce json @Success 200 {object} model.Product @Success 400 {object} dto.ErrorMessage @Failure 404 {object} dto.ErrorMessage @Router /api/v1/seller/product/{productId} [get].
SearchProductsHandler @Summary Endpoint search products @Description update product @Param page query integer false "page request" minimum(0) maximum(9999999999999) @Param pageSize query integer false "pageSize request" minimum(1) maximum(500) @Param name query string false "filter by name" example("name") @Param category query string false "filter by category" example("category") @Param sellerId query number false "filter by sellerId" minimum(1) maximum(999999999999999999) @Param priceMin query number false "filter by min price" minimum(0) maximum(999999999999999999) @Param priceMax query number false "filter by max price" minimum(0) maximum(999999999999999999) @Tags Product @Produce json @Success 200 {object} dto.ProductSearchResponse @Failure 400 {object} dto.ErrorMessage @Router /api/v1/seller/product/search [get].
UpdateProductHandler @Summary Endpoint update product @Description update product @Param productId path int true "Product ID" minimum(1) @Param Product body model.UpdateProduct true "It is a product updatable info." @Tags Product @Produce json @Success 204 @Failure 400 {object} dto.ErrorMessage @Failure 404 {object} dto.ErrorMessage @Failure 406 {object} dto.ErrorMessage @Router /api/v1/seller/product/{productId} [put].