1 <?php
2
3 /* --------------------------------------------------------------
4 OrderItemRepositoryInterface.inc.php 2015-10-27 gm
5 Gambio GmbH
6 http://www.gambio.de
7 Copyright (c) 2015 Gambio GmbH
8 Released under the GNU General Public License (Version 2)
9 [http://www.gnu.org/licenses/gpl-2.0.html]
10 --------------------------------------------------------------
11 */
12
13 /**
14 * Interface OrderItemRepositoryInterface
15 *
16 * @category System
17 * @package Order
18 * @subpackage Interfaces
19 */
20 interface OrderItemRepositoryInterface
21 {
22 /**
23 * Adds an order item to the order item repository.
24 *
25 * @param IdType $orderId Order ID.
26 * @param OrderItemInterface $orderItem Order item to add.
27 *
28 * @return int ID of the StoredOrderItem
29 */
30 public function addToOrder(IdType $orderId, OrderItemInterface $orderItem);
31
32
33 /**
34 * Saves the order item in the repository.
35 *
36 * @param StoredOrderItemInterface $storedOrderItem Order item to save.
37 *
38 * @return OrderItemRepositoryInterface Same instance for method chaining.
39 */
40 public function store(StoredOrderItemInterface $storedOrderItem);
41
42
43 /**
44 * Returns a stored order ID by the given order item ID.
45 *
46 * @param IdType $orderItemId ID of the stored order item.
47 *
48 * @return StoredOrderItemInterface Stored order item.
49 */
50 public function getItemById(IdType $orderItemId);
51
52
53 /**
54 * Returns a stored order item collection by the given order ID.
55 *
56 * @param IdType $orderId ID of the order.
57 *
58 * @return StoredOrderItemCollection Stored order item collection.
59 */
60 public function getItemsByOrderId(IdType $orderId);
61
62
63 /**
64 * Deletes an order item from the repository by the given order item ID.
65 *
66 * @param IdType $orderItemId Order item ID.
67 *
68 * @return OrderItemRepositoryInterface Same instance for method chaining.
69 */
70 public function deleteItemById(IdType $orderItemId);
71
72
73 /**
74 * Deletes order items from the repository by the given order ID.
75 *
76 * @param IdType $orderId Order ID.
77 *
78 * @return OrderItemRepositoryInterface Same instance for method chaining.
79 */
80 public function deleteItemsByOrderId(IdType $orderId);
81 }