findAll(); return $this->respond([ 'status' => 'success', 'message' => 'Store discounts fetched successfully', 'data' => $data ], 200); } public function show($id = null) { $storeDiscountModel = new StoreDiscount(); $data = $storeDiscountModel->find($id); return $this->respond([ 'status' => 'success', 'message' => 'Store discount fetched successfully', 'data' => $data ], 200); } public function create() { $rules = [ 'discount_name' => 'required|string', 'discount_type' => 'required|string', 'discount_value' => 'required|numeric', 'outlet_list' => 'required|is_array', 'menu_item_list' => 'required|is_array', 'status' => 'required|string', ]; if (!$this->validate($rules)) { return $this->failValidationErrors($this->validator->getErrors()); } $storeDiscountModel = new StoreDiscount(); // Insert data to database outlet_list is array and store it in JSON $discount_name = $this->request->getVar('discount_name'); $discount_type = $this->request->getVar('discount_type'); $discount_value = $this->request->getVar('discount_value'); $outlet_list = $this->request->getVar('outlet_list'); $menu_item_list = $this->request->getVar('menu_item_list'); $status = $this->request->getVar('status'); $implode_outlet_list = implode(',', $outlet_list); $implode_menu_item_list = implode(',', $menu_item_list); $data = [ 'discount_name' => $discount_name, 'discount_type' => $discount_type, 'discount_value' => $discount_value, 'outlet_list' => $implode_outlet_list, 'menu_item_list' => $implode_menu_item_list, 'status' => $status, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ]; $storeDiscountModel->insert($data); return $this->respond([ 'status' => 'success', 'message' => 'Store discount created successfully', 'data' => $data ], 200); } public function update($id = null) { $storeDiscountModel = new StoreDiscount(); $storeDiscount = $storeDiscountModel->find($id); if(!$storeDiscount) { return $this->respond([ 'status' => 'error', 'message' => 'Store discount not found', 'data' => null ], 404); } $rules = [ 'discount_name' => 'required|string', 'discount_type' => 'required|string', 'discount_value' => 'required|numeric', 'outlet_list' => 'required|is_array', 'menu_item_list' => 'required|is_array', 'status' => 'required|string', ]; if (!$this->validate($rules)) { return $this->failValidationErrors($this->validator->getErrors()); } $discount_name = $this->request->getVar('discount_name'); $discount_type = $this->request->getVar('discount_type'); $discount_value = $this->request->getVar('discount_value'); $outlet_list = $this->request->getVar('outlet_list'); $menu_item_list = $this->request->getVar('menu_item_list'); $status = $this->request->getVar('status'); $implode_outlet_list = implode(',', $outlet_list); $implode_menu_item_list = implode(',', $menu_item_list); $data = [ 'discount_name' => $discount_name, 'discount_type' => $discount_type, 'discount_value' => $discount_value, 'outlet_list' => $implode_outlet_list, 'menu_item_list' => $implode_menu_item_list, 'status' => $status, 'updated_at' => date('Y-m-d H:i:s'), ]; $storeDiscountModel->update($id, $data); return $this->respond([ 'status' => 'success', 'message' => 'Store discount updated successfully', 'data' => $data ], 200); } public function delete($id = null){ $storeDiscountModel = new StoreDiscount(); $storeDiscount = $storeDiscountModel->find($id); if(!$storeDiscount) { return $this->respond([ 'status' => 'error', 'message' => 'Store discount not found', 'data' => null ], 404); } $storeDiscountModel->delete($id); return $this->respond([ 'status' => 'success', 'message' => 'Store discount deleted successfully', 'data' => null ], 200); } }