module factorymethod.pizzafactorymethod.app;

import factorymethod.pizzafactorymethod.pizza;
import factorymethod.pizzafactorymethod.pizzastore;
import factorymethod.pizzafactorymethod.nypizzastore;
import factorymethod.pizzafactorymethod.chicagopizzastore;
import std.stdio : writeln;

void main()
{
    PizzaStore nyStore = new NYPizzaStore();
    PizzaStore chicagoStore = new ChicagoPizzaStore();

    Pizza pizza = nyStore.orderPizza("cheese");
    writeln("Ethan ordered a ", pizza.getName());

    pizza = chicagoStore.orderPizza("cheese");
    writeln("Joel ordered a ", pizza.getName());

    pizza = nyStore.orderPizza("clam");
    writeln("Ethan ordered a ", pizza.getName());

    pizza = chicagoStore.orderPizza("clam");
    writeln("Joel ordered a ", pizza.getName());

    pizza = nyStore.orderPizza("pepperoni");
    writeln("Ethan ordered a ", pizza.getName());

    pizza = chicagoStore.orderPizza("pepperoni");
    writeln("Joel ordered a ", pizza.getName());

    pizza = nyStore.orderPizza("veggie");
    writeln("Ethan ordered a ", pizza.getName());

    pizza = chicagoStore.orderPizza("veggie");
    writeln("Joel ordered a ", pizza.getName());
}
