#pragma once

#include "app_core/app_startup.h"

class App;

namespace pp::panopainter {

void execute_legacy_app_create(App& app);
void execute_legacy_app_init_assets(App& app);
void execute_legacy_app_init_log(App& app);
void execute_legacy_app_init(App& app);

[[nodiscard]] pp::foundation::Status execute_legacy_app_startup_plan(
    App& app,
    const pp::app::AppStartupPlan& plan);
[[nodiscard]] pp::foundation::Status execute_legacy_app_startup_persistence_plan(
    App& app,
    const pp::app::AppStartupPlan& plan);
[[nodiscard]] pp::foundation::Status execute_legacy_app_startup_runtime_plan(
    App& app,
    const pp::app::AppStartupPlan& plan);
[[nodiscard]] pp::foundation::Status execute_legacy_app_startup_resources(
    App& app,
    const pp::app::AppStartupResourcePlan& plan);

} // namespace pp::panopainter
