import fs from "fs";
import path from "path";

const DIST_PUBLIC_DIR = path.join(process.cwd(), "dist/public");
const SHARED_PUBLIC_DIR = path.join(process.cwd(), "shared/public");

function resolveConfiguredDir(envValue: string | undefined, fallbackPath: string) {
    const trimmed = envValue?.trim();
    return trimmed ? path.resolve(trimmed) : fallbackPath;
}

export const STATIC_ASSETS_DIR = path.join(DIST_PUBLIC_DIR, "assets");
export const STATIC_UPLOADS_DIR = resolveConfiguredDir(
    process.env.STATIC_UPLOADS_DIR,
    path.join(SHARED_PUBLIC_DIR, "uploads"),
);
export const STATIC_APK_DIR = resolveConfiguredDir(
    process.env.STATIC_APK_DIR,
    path.join(SHARED_PUBLIC_DIR, "apk"),
);
export const STATIC_SOUNDS_DIR = resolveConfiguredDir(
    process.env.STATIC_SOUNDS_DIR,
    path.join(SHARED_PUBLIC_DIR, "sounds"),
);

export function ensurePersistentStaticDirectories() {
    fs.mkdirSync(STATIC_UPLOADS_DIR, { recursive: true });
    fs.mkdirSync(STATIC_APK_DIR, { recursive: true });
    fs.mkdirSync(STATIC_SOUNDS_DIR, { recursive: true });
}

