diff --git a/src/interface_adapters/cart_database_interface.py b/src/interface_adapters/cart_database_interface.py new file mode 100644 index 0000000..1c9964f --- /dev/null +++ b/src/interface_adapters/cart_database_interface.py @@ -0,0 +1,8 @@ +from typing import Optional, List + +class CartDatabaseInterface: + def fetch_cart_items(self, user_id: int) -> Optional[List[dict]]: + """ + Abstract method to fetch cart items from the database for a given user ID. + """ + raise NotImplementedError("fetch_cart_items must be implemented by a subclass") \ No newline at end of file diff --git a/src/interface_adapters/cart_repository.py b/src/interface_adapters/cart_repository.py new file mode 100644 index 0000000..25663b6 --- /dev/null +++ b/src/interface_adapters/cart_repository.py @@ -0,0 +1,13 @@ +#python imports +from typing import Optional, List + +#dependency imports +from use_cases.cart_repository_interface import CartRepositoryInterface +from interface_adapters.cart_database_interface import CartDatabaseInterface + +class CartRepository(CartRepositoryInterface): + def __init__(self, database_gateway: CartDatabaseInterface): + self.database_gateway = database_gateway + + def fetch_cart_by_user_id(self, user_id: int) -> Optional[List[dict]]: + return self.database_gateway.fetch_cart_items(user_id) \ No newline at end of file