Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion FOS/models/pizza.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from .price import Price
from dataclasses import dataclass, field
from typing import List

from .price import Price


@dataclass
class Pizza:
Expand Down
3 changes: 2 additions & 1 deletion FOS/models/price.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from ..utils.json_handler import JSON
from dataclasses import dataclass, field

from ..utils.json_handler import JSON


@dataclass
class Price:
Expand Down
4 changes: 2 additions & 2 deletions FOS/models/user.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from dataclasses import dataclass, field
from typing import Dict, List

from ..models.pizza import Pizza
from ..utils.json_handler import JSON

from .loyalty import Loyalty
from dataclasses import dataclass, field


@dataclass
Expand Down
3 changes: 2 additions & 1 deletion FOS/patterns/builder/pizza_builder.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from typing import List, Optional

from ...models.pizza import Pizza
from typing import Optional, List


class PizzaBuilder:
Expand Down
7 changes: 4 additions & 3 deletions FOS/patterns/decorators/get_pizza_for_free_decorator.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from .pizza_decorator import PizzaDecorator
from ..handlers.base_handler import PizzaCustomizationHandler
from typing import Union

from ..handlers.base_handler import PizzaCustomizationHandler
from .pizza_decorator import PizzaDecorator


class GetPizzaForFreeDecorator(PizzaDecorator):
def __init__(
Expand All @@ -14,5 +15,5 @@ def __init__(
super().__init__(builder)

def apply(self):
self.__builder .set_(self.packaging)
self.__builder.set_(self.packaging)
return self.get_builder()
7 changes: 4 additions & 3 deletions FOS/patterns/decorators/seasonal_promotions_decorator.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from .pizza_decorator import PizzaDecorator
from ..handlers.base_handler import PizzaCustomizationHandler
from typing import Union
from datetime import datetime
from typing import Union

from ..handlers.base_handler import PizzaCustomizationHandler
from .pizza_decorator import PizzaDecorator


class SeasonalPromotionsDecorator(PizzaDecorator):
Expand Down
8 changes: 4 additions & 4 deletions FOS/patterns/handlers/base_handler.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from typing import Dict
from typing import Optional
from ..builder.pizza_builder import PizzaBuilder
from abc import ABC, abstractmethod
from ...utils.json_handler import JSON
from typing import Dict, Optional

from ...utils.helper_functions import find_excluded_options
from ...utils.json_handler import JSON
from ..builder.pizza_builder import PizzaBuilder


class PizzaCustomizationHandler(ABC):
Expand Down
3 changes: 2 additions & 1 deletion FOS/patterns/handlers/cheese_handler.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from typing import Dict

from ...utils.json_handler import JSON
from ..builder.pizza_builder import PizzaBuilder
from typing import Dict
from .base_handler import PizzaCustomizationHandler


Expand Down
5 changes: 3 additions & 2 deletions FOS/patterns/handlers/crust_handler.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from typing import Dict

from ...models.pizza import Pizza
from ...utils.json_handler import JSON
from ..builder.pizza_builder import PizzaBuilder
from .base_handler import PizzaCustomizationHandler
from ...models.pizza import Pizza
from typing import Dict


class CrustsCustomizationHandler(PizzaCustomizationHandler):
Expand Down
5 changes: 3 additions & 2 deletions FOS/patterns/handlers/sauce_handler.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from .base_handler import PizzaCustomizationHandler
from ..builder.pizza_builder import PizzaBuilder
from typing import Dict

from ...models.pizza import Pizza
from ...utils.json_handler import JSON
from ..builder.pizza_builder import PizzaBuilder
from .base_handler import PizzaCustomizationHandler


class SaucesCustomizationHandler(PizzaCustomizationHandler):
Expand Down
5 changes: 3 additions & 2 deletions FOS/patterns/handlers/toppings_handler.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from .base_handler import PizzaCustomizationHandler
from ..builder.pizza_builder import PizzaBuilder
from typing import Dict

from ...models.pizza import Pizza
from ...utils.json_handler import JSON
from ..builder.pizza_builder import PizzaBuilder
from .base_handler import PizzaCustomizationHandler


class ToppingsCustomizationHandler(PizzaCustomizationHandler):
Expand Down
5 changes: 3 additions & 2 deletions FOS/patterns/observers/custom_notifier.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from .order_observer import OrderObserver
from ...models.enums.order_state import OrderState
from typing import Optional

from ...models.enums.order_state import OrderState
from .order_observer import OrderObserver


class CustomerNotifier(OrderObserver):
def update(self, order_id: str, message: str, state: Optional[OrderState] = None):
Expand Down
5 changes: 3 additions & 2 deletions FOS/patterns/observers/kitchen_display.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from .order_observer import OrderObserver
from ...models.enums.order_state import OrderState
from typing import Optional

from ...models.enums.order_state import OrderState
from .order_observer import OrderObserver


class KitchenDisplay(OrderObserver):
def update(self, order_id: str, message: str, state: Optional[OrderState] = None):
Expand Down
1 change: 1 addition & 0 deletions FOS/patterns/observers/order_observer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from abc import ABC, abstractmethod
from typing import Optional

from ...models.enums.order_state import OrderState


Expand Down
13 changes: 8 additions & 5 deletions FOS/patterns/payment.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# ...existing code...
from FOS.models.price import Price
from .strategies.base_strategy import PaymentStrategy
from ..models.user import User

from ..models.loyalty import Loyalty
from ..models.user import User
from .strategies.base_strategy import PaymentStrategy


class Payment:
Expand All @@ -20,7 +21,9 @@ def process_payment(self, apply_loyalty: bool = False):
"""Process the payment, applying any relevant discounts."""
self.apply_loyalty_points() if apply_loyalty else None
self.strategy.pay(self.price.price)
self.user.set_loyalty(
loyalty=Loyalty(self.price.price)
) if not apply_loyalty else None
(
self.user.set_loyalty(loyalty=Loyalty(self.price.price))
if not apply_loyalty
else None
)
print(f"Payment processed for amount: {self.price.price}")
4 changes: 2 additions & 2 deletions FOS/patterns/states/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from .placed_state import PlacedState
from .baking_state import BakingState
from .preparing_state import PreparingState
from .order_state import OrderState
from .placed_state import PlacedState
from .preparing_state import PreparingState

__all__ = ["PlacedState", "BakingState", "PreparingState", "OrderState"]
3 changes: 1 addition & 2 deletions FOS/patterns/watchers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from .delivery import DeliveryTracker
from .feedback import FeedbackTracker
from .feedback import Feedback, Rating
from .feedback import Feedback, FeedbackTracker, Rating

__all__ = ["FeedbackTracker", "DeliveryTracker", "Feedback", "Rating"]
2 changes: 1 addition & 1 deletion FOS/repositories/authentication_repository.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from ..utils.json_handler import JSON
from ..models.user import User
from ..utils.json_handler import JSON


class AuthenticationRepository(object):
Expand Down
9 changes: 5 additions & 4 deletions FOS/services/pizza_service.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
from typing import Optional

from ..models.pizza import Pizza
from ..patterns.builder.pizza_builder import PizzaBuilder
from ..patterns.handlers import (
CheesesCustomizationHandler,
CrustsCustomizationHandler,
SaucesCustomizationHandler,
ToppingsCustomizationHandler,
CheesesCustomizationHandler,
)
from ..utils.json_handler import JSON
from ..patterns.builder.pizza_builder import PizzaBuilder
from ..models.pizza import Pizza
from typing import Optional


class PizzaService:
Expand Down
37 changes: 19 additions & 18 deletions FOS/ui/ui.py
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
from ..patterns.observers import CustomerNotifier, KitchenDisplay
from FOS.patterns.commands.feedback_commands import (
ClearFeedBackCommand,
SetFeedBackCommand,
)
from FOS.patterns.commands.rating_commands import (
ClearStarCommand,
SetFiveStarCommand,
SetFourStarCommand,
)

from ..authentication import Login, Register
from ..models.user import User
from ..models.feedback import FeedBack
from ..models.pizza import Pizza
from ..utils.json_handler import JSON
from ..services.pizza_service import PizzaService
from ..models.rating import Rating
from ..models.user import User
from ..patterns.builder.pizza_builder import PizzaBuilder
from ..patterns.decorators.extra_cheese_decorator import ExtraCheeseDecorator
from ..patterns.decorators.get_pizza_for_free_decorator import GetPizzaForFreeDecorator
from ..patterns.decorators.seasonal_promotions_decorator import (
SeasonalPromotionsDecorator,
)
from ..patterns.decorators.extra_cheese_decorator import ExtraCheeseDecorator
from ..patterns.decorators.get_pizza_for_free_decorator import GetPizzaForFreeDecorator
from ..patterns.builder.pizza_builder import PizzaBuilder
from ..patterns.observers import CustomerNotifier, KitchenDisplay
from ..patterns.payment import Payment
from ..patterns.strategies import (
CreditCardStrategy,
DigitalWalletStrategy,
PayPalStrategy,
)
from ..models.rating import Rating
from ..models.feedback import FeedBack
from FOS.patterns.commands.rating_commands import (
SetFiveStarCommand,
SetFourStarCommand,
ClearStarCommand,
)
from FOS.patterns.commands.feedback_commands import (
SetFeedBackCommand,
ClearFeedBackCommand,
)
from ..services.order_service import Order
from ..services.pizza_service import PizzaService
from ..utils.json_handler import JSON


class UI:
Expand Down
22 changes: 11 additions & 11 deletions archive/main.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
from FOS.models.user import User
from FOS.patterns.observers.custom_notifier import CustomerNotifier
from FOS.patterns.observers.kitchen_display import KitchenDisplay
from FOS.models.user import User
from FOS.services.pizza_service import PizzaService

# Setup Observers
custom_notifier = CustomerNotifier()
kitchen_display = KitchenDisplay()

# Authentication
## Utilize FOS/authentication
# Utilize FOS/authentication

user = User(
"testing",
Expand All @@ -18,7 +18,7 @@
print(user)

# Create Custom Pizza
## kitchen_observer
# kitchen_observer

pizza_config = {
"Crusts": [
Expand All @@ -37,21 +37,21 @@
pizza_builder = PizzaService(user_configuration=pizza_config).apply_handlers()
print(pizza_builder.build())
# Create Already Created Pizza
## kitchen_observer
# kitchen_observer

# Decorator Pattern for Additional Features
## kitchen_observer
## Seasonal Specials and Promotions
# kitchen_observer
# Seasonal Specials and Promotions

# Payment
## Take into consideration loyalty points and such
# Take into consideration loyalty points and such

# States
## Placed
## Preparing
## Baking
# Placed
# Preparing
# Baking

# Delivery / Pick Up
## Implement custom delivery and pick up trackers maybe? so that till the food is handed off to the customer this will repeat on
# Implement custom delivery and pick up trackers maybe? so that till the food is handed off to the customer this will repeat on

# Rating / Feedback
5 changes: 3 additions & 2 deletions archive/main1.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from FOS.authentication.login import Login
from FOS.authentication.register import Register
from FOS.models.user import User
from FOS.repositories.authentication_repository import AuthenticationRepository
from FOS.models.pizza import Pizza
from FOS.models.user import User
from FOS.patterns.strategies import (
CreditCardStrategy,
DigitalWalletsStrategy,
PayPalStrategy,
)
from FOS.repositories.authentication_repository import AuthenticationRepository


class Main(object):
Expand Down Expand Up @@ -96,6 +96,7 @@ def payment(self):
self.payment()

def real_time_tracking(self): ...

def main(self):
self.user: User = self.authentication()
self.home_page()
Expand Down
4 changes: 1 addition & 3 deletions archive/pizza_customization.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
from typing import Dict

from ..handlers import (
PizzaCustomizationHandler,
)
from ..handlers import PizzaCustomizationHandler
from ..models.pizza import Pizza


Expand Down
14 changes: 7 additions & 7 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# ...existing code...
from uuid import uuid4

from FOS.models.user import User
from FOS.services.pizza_service import PizzaService
from FOS.services.order_service import Order

# Assume these classes exist in the directory for Decorator, Payment, States, Delivery, and Feedback
from FOS.patterns.decorators.extra_cheese_decorator import (
from FOS.patterns.decorators.extra_cheese_decorator import ( # , SeasonalSpecials
ExtraCheeseDecorator,
) # , SeasonalSpecials
)
from FOS.patterns.payment import Payment
from FOS.patterns.states import BakingState, PlacedState, PreparingState
from FOS.patterns.watchers.delivery import DeliveryTracker
from FOS.patterns.watchers.feedback import Feedback, Rating
from FOS.patterns.watchers.pickup import PickUpTracker
from FOS.patterns.watchers.feedback import Rating, Feedback
from uuid import uuid4
from FOS.services.order_service import Order
from FOS.services.pizza_service import PizzaService

# Setup Observers


# Authentication
user = User("testing", "prdai_2008", "go2ranuga@gmail.com")
print(user)
Expand Down
Loading