PowerShellUniversal.Apps.Cookbook.psm1

# Dot source all public and private functions (cross-platform paths)
$Public = @( Get-ChildItem -Path (Join-Path $PSScriptRoot 'public' '*.ps1') -ErrorAction SilentlyContinue )
$Private = @( Get-ChildItem -Path (Join-Path $PSScriptRoot 'private' '*.ps1') -ErrorAction SilentlyContinue )

# Dot source the functions so helper functions (like Invoke-UniversalSQLiteQuery) are available for initialization
foreach ($import in @($Public + $Private)) {
    try {
        . $import.FullName
    }
    catch {
        Write-Error -Message "Failed to import function $($import.FullName): $_"
    }
}

$DataHOME = Join-Path $PSScriptRoot -ChildPath 'Data'
$Schema = Join-Path $DataHOME -ChildPath 'Schema.sql'
$Script:RecipeDbPath = Join-Path $DataHOME -ChildPath 'recipes.db' 
$script:RecipeImageRoot = Join-Path $env:ProgramData 'Recipebook' 'Images'
$script:RecipeImageFolderName = 'recipe-images'

# Optional: store schema SQL in a here-string for easy maintenance
$Script:RecipeSchemaSql = Get-Content -Raw $Schema

Initialize-RecipeDbFile

# Auto-initialize on module import (you can remove this if you prefer explicit calls)
Initialize-RecipeDatabase -Schema $Schema -Database $Script:RecipeDbPath