from .views.auth import LoginView, RegistrationView, LogoutView, ForgotPasswordView, ResetPasswordView
from .views.site import SiteView, OrderView, FileBrowserView, UserManagementView
from .views.upload import UploadView
from .views.migrate import MigrateView
from .views.admin import get_users, add_user, update_user_quota, delete_user, get_user_details, delete_team
def setup_routes(app):
app.router.add_view("/login", LoginView, name="login")
app.router.add_view("/register", RegistrationView, name="register")
app.router.add_view("/logout", LogoutView, name="logout")
app.router.add_view("/forgot_password", ForgotPasswordView, name="forgot_password")
app.router.add_view("/reset_password/{token}", ResetPasswordView, name="reset_password")
app.router.add_view("/", SiteView, name="index")
app.router.add_view("/solutions", SiteView, name="solutions")
app.router.add_view("/pricing", SiteView, name="pricing")
app.router.add_view("/security", SiteView, name="security")
app.router.add_view("/support", SiteView, name="support")
app.router.add_view("/use_cases", SiteView, name="use_cases")
app.router.add_view("/dashboard", SiteView, name="dashboard")
app.router.add_view("/order", OrderView, name="order")
app.router.add_view("/terms", SiteView, name="terms")
app.router.add_view("/privacy", SiteView, name="privacy")
app.router.add_view("/shared", SiteView, name="shared")
app.router.add_view("/recent", SiteView, name="recent")
app.router.add_view("/favorites", SiteView, name="favorites")
app.router.add_view("/trash", SiteView, name="trash")
app.router.add_view("/users", SiteView, name="users")
app.router.add_view("/users/add", UserManagementView, name="add_user")
app.router.add_view("/users/{email}/edit", UserManagementView, name="edit_user")
app.router.add_view("/users/{email}/details", UserManagementView, name="user_details")
app.router.add_post("/users/{email}/delete", UserManagementView, name="delete_user_page")
app.router.add_view("/files", FileBrowserView, name="file_browser")
app.router.add_post("/files/new_folder", FileBrowserView, name="new_folder")
app.router.add_post("/files/upload", UploadView, name="upload_file")
app.router.add_get("/files/download/{file_path:.*}", FileBrowserView.get_download_file, name="download_file")
app.router.add_post("/files/share/{file_path:.*}", FileBrowserView, name="share_file")
app.router.add_post("/files/delete/{file_path:.*}", FileBrowserView, name="delete_item")
app.router.add_post("/files/delete_multiple", FileBrowserView, name="delete_multiple_items")
app.router.add_post("/files/share_multiple", FileBrowserView, name="share_multiple_items")
app.router.add_get("/shared_file/{share_id}", FileBrowserView.shared_file_handler, name="shared_file")
app.router.add_get("/shared_file/{share_id}/download", FileBrowserView.download_shared_file_handler, name="download_shared_file")
# Admin API routes for user and team management
app.router.add_get("/api/users", get_users, name="api_get_users")
app.router.add_post("/api/users", add_user, name="api_add_user")
app.router.add_put("/api/users/{email}/quota", update_user_quota, name="api_update_user_quota")
app.router.add_delete("/api/users/{email}", delete_user, name="api_delete_user")
app.router.add_get("/api/users/{email}", get_user_details, name="api_get_user_details")
app.router.add_delete("/api/teams/{parent_email}", delete_team, name="api_delete_team")