from src.optimizer import solve_optimization
from src.optimizer import landmark
from fastapi import FastAPI

app = FastAPI()


@app.get("/optimize/{max_steps}/{print_to_console}")
def main(max_steps: int, print_to_console: bool):
    
    # CONSTRAINT TO RESPECT MAX NUMBER OF STEPS
    #max_steps = 16


    # Initialize all landmarks (+ start and goal). Order matters here
    landmarks = []
    landmarks.append(landmark("départ", -1, (0, 0)))
    landmarks.append(landmark("tour eiffel", 99, (0,2)))                           # PUT IN JSON
    landmarks.append(landmark("arc de triomphe", 99, (0,4)))
    landmarks.append(landmark("louvre", 99, (0,6)))
    landmarks.append(landmark("montmartre", 99, (0,10)))
    landmarks.append(landmark("concorde", 99, (0,8)))
    landmarks.append(landmark("arrivée", -1, (0, 0)))


    visiting_order = solve_optimization(landmarks, max_steps, print_to_console)

    #return visiting_order

    return("max steps :", max_steps, "\n", visiting_order)


if __name__ == "__main__":
    main()