cleanarch.psm1

# cleanarch.psm1

$ScriptRoot = $PSScriptRoot

# UTF-8 encoding (Türkçe karakter desteği)
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding            = [System.Text.Encoding]::UTF8

function New-CleanProject {
    [CmdletBinding()]
    param(
        [string]$ProjectName = "",
        [ValidateSet("Dapper","EFCore","Hybrid","")]
        [string]$OrmMode = "",
        [ValidateSet("ReactTS","ReactJS","NextJS","")]
        [string]$FrontendMode = "",
        [string[]]$Entities = @("User", "Product"),
        [ValidateSet("MSSQL","Postgres","SQLite")]
        [string]$DbProvider = "",
        [string]$OutputRootPath = "",
        [switch]$SkipFrontend,
        [switch]$SkipAiGuide,
        [switch]$SkipTests,
        [switch]$SkipCi,
        [switch]$DryRun,
        [string]$IdeConfig = "VSCode",
        [switch]$Observability,
        [switch]$NonInteractive,
        [switch]$I18n,
        [ValidateSet("GitHub","GitLab","None")]
        [string]$CiProvider = "GitHub",
        [ValidateSet("tr","en")]
        [string]$Language = "tr",
        [switch]$Version,
        [Alias("h")]
        [switch]$Help
    )

    & "$ScriptRoot\New-CleanProject.ps1" @PSBoundParameters
}


function Update-Generator {
    [CmdletBinding()]
    param(
        [Alias("h")]
        [switch]$Help
    )
    & "$ScriptRoot\modules\core\Update-Generator.ps1" @PSBoundParameters
}

function Get-GeneratorVersion {
    [CmdletBinding()]
    param(
        [switch]$Full,
        [switch]$OnlyVersion,
        [Alias("h")]
        [switch]$Help
    )
    & "$ScriptRoot\modules\core\Get-GeneratorVersion.ps1" @PSBoundParameters
}



Export-ModuleMember -Function New-CleanProject, Update-Generator, Get-GeneratorVersion