from .src.optimizer import solve_optimization
from .src.landmarks_manager import Landmark
from fastapi import FastAPI

app = FastAPI()


@app.get("/optimize/{max_steps}/{print_details}")
def main(max_steps: int, print_details: 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_details)

    #return visiting_order

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


"""if __name__ == "__main__":
    main()"""