namespace MyOffice.Web;

public partial class Program
{
	/// <summary>
	/// Legacy imperative MapRoute table removed — API controllers use attribute routing.
	/// Kept as a no-op so call sites stay stable while Routes constants remain for SPA/docs.
	/// </summary>
	private static void MapRoutes(WebApplication app)
	{
	}
}

/// <summary>
/// Canonical API path constants (also used by SPA clients / docs).
/// </summary>
public static class Routes
{
	public static readonly string GlobalCurrencies = "api/general/currencies";
	public static readonly string SettingsCurrencies = "api/settings/currencies";
	public static readonly string SettingsCurrency = "api/settings/currencies/{id}";
	public static readonly string SettingsCurrencyRate = "api/settings/currencies/{id}/rate";

	public static readonly string SettingsAccountCategories = "api/settings/account-categories";
	public static readonly string SettingsAccountCategory = "api/settings/account-categories/{id}";

	public static readonly string SettingsAccounts = "api/settings/accounts";
	public static readonly string SettingsAccount = "api/settings/accounts/{id}";
	public static readonly string SettingsAccountAccountCategory = "api/settings/accounts/{id}/category/{categoryId}";

	public static readonly string SettingsAccountAccesses = "api/settings/accounts/{id}/access";
	public static readonly string SettingsAccountAccess = "api/settings/accounts/{id}/access/{userId}";
	public static readonly string SettingsAccountInvites = "api/settings/accounts/invites";
	public static readonly string SettingsAccountInviteAccept = "api/settings/accounts/invites/{id}/accept";
	public static readonly string SettingsAccountInviteReject = "api/settings/accounts/invites/{id}/reject";

	public static readonly string SettingsItemCategories = "api/settings/item-categories";
	public static readonly string SettingsItemCategory = "api/settings/item-categories/{id}";
	public static readonly string SettingsItems = "api/settings/items";
	public static readonly string SettingsItem = "api/settings/items/{id}";

	public static readonly string Accounts = "api/accounts";
	public static readonly string Account = "api/accounts/{id}";
	public static readonly string AccountMotions = "api/accounts/{id}/motions";
	public static readonly string AccountMotion = "api/accounts/{id}/motions/{motionId}";
	public static readonly string Items = "api/items";

	public static readonly string Dashboard = "api/dashboard";
	public static readonly string DashboardIncome = "api/dashboard/income";
	public static readonly string DashboardOutcome = "api/dashboard/outcome";

	public static readonly string UserRegister = "api/user/register";
	public static readonly string UserProfile = "api/user/profile";
	public static readonly string UserAttach = "api/user/attach";
	public static readonly string UserDeattach = "api/user/deattach";
}
