internal/functions/generation/Get-SldgGeneratorMap.ps1
|
function Get-SldgGeneratorMap { <# .SYNOPSIS Maps semantic types to generator functions and parameters. .DESCRIPTION Returns a hashtable mapping each semantic type to the appropriate generator function and its default parameters. Uses the configured locale for data generation. #> [CmdletBinding()] param ( [string]$Locale ) if (-not $Locale) { $Locale = Get-PSFConfigValue -FullName 'SqlLabDataGenerator.Generation.Locale' } @{ # Person 'FirstName' = @{ Function = 'New-SldgPersonName'; Params = @{ Type = 'First'; Locale = $Locale } } 'LastName' = @{ Function = 'New-SldgPersonName'; Params = @{ Type = 'Last'; Locale = $Locale } } 'MiddleName' = @{ Function = 'New-SldgPersonName'; Params = @{ Type = 'Middle'; Locale = $Locale } } 'FullName' = @{ Function = 'New-SldgPersonName'; Params = @{ Type = 'Full'; Locale = $Locale } } # Contact 'Email' = @{ Function = 'New-SldgEmail'; Params = @{ Locale = $Locale } } 'Phone' = @{ Function = 'New-SldgPhone'; Params = @{ Format = 'Standard'; Locale = $Locale } } # Address 'Street' = @{ Function = 'New-SldgAddress'; Params = @{ Type = 'Street'; Locale = $Locale } } 'City' = @{ Function = 'New-SldgAddress'; Params = @{ Type = 'City'; Locale = $Locale } } 'State' = @{ Function = 'New-SldgAddress'; Params = @{ Type = 'State'; Locale = $Locale } } 'ZipCode' = @{ Function = 'New-SldgAddress'; Params = @{ Type = 'ZipCode'; Locale = $Locale } } 'Country' = @{ Function = 'New-SldgAddress'; Params = @{ Type = 'Country'; Locale = $Locale } } # Identity 'SSN' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'SSN'; Locale = $Locale } } 'NationalId' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'NationalId'; Locale = $Locale } } 'PassportNumber' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'PassportNumber'; Locale = $Locale } } 'LicenseNumber' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'LicenseNumber'; Locale = $Locale } } 'TaxId' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'TaxId'; Locale = $Locale } } 'Username' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'Username'; Locale = $Locale } } 'Password' = @{ Function = 'New-SldgText'; Params = @{ Type = 'Password'; Locale = $Locale } } # Financial 'IBAN' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'IBAN'; Locale = $Locale } } 'CreditCard' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'CreditCard'; Locale = $Locale } } 'BankAccount' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'BankAccount'; Locale = $Locale } } 'Money' = @{ Function = 'New-SldgNumber'; Params = @{ Type = 'Money' } } 'Currency' = @{ Function = 'New-SldgFinancial'; Params = @{ Type = 'Currency'; Locale = $Locale } } 'BusinessNumber' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'BusinessNumber'; Locale = $Locale } } # Dates 'BirthDate' = @{ Function = 'New-SldgDate'; Params = @{ Type = 'BirthDate' } } 'PastDate' = @{ Function = 'New-SldgDate'; Params = @{ Type = 'PastDate' } } 'FutureDate' = @{ Function = 'New-SldgDate'; Params = @{ Type = 'FutureDate' } } 'Timestamp' = @{ Function = 'New-SldgDate'; Params = @{ Type = 'Timestamp'; IncludeTime = $true } } 'Date' = @{ Function = 'New-SldgDate'; Params = @{ Type = 'Date' } } 'DateTime' = @{ Function = 'New-SldgDate'; Params = @{ Type = 'DateTime'; IncludeTime = $true } } 'Time' = @{ Function = 'New-SldgDate'; Params = @{ Type = 'Time' } } # Business 'CompanyName' = @{ Function = 'New-SldgCompany'; Params = @{ Type = 'Company'; Locale = $Locale } } 'Department' = @{ Function = 'New-SldgCompany'; Params = @{ Type = 'Department'; Locale = $Locale } } 'JobTitle' = @{ Function = 'New-SldgCompany'; Params = @{ Type = 'JobTitle'; Locale = $Locale } } # Web/Tech 'Url' = @{ Function = 'New-SldgText'; Params = @{ Type = 'Url'; Locale = $Locale } } 'IpAddress' = @{ Function = 'New-SldgText'; Params = @{ Type = 'IpAddress'; Locale = $Locale } } # Descriptive 'Text' = @{ Function = 'New-SldgText'; Params = @{ Type = 'Text'; Locale = $Locale } } 'Status' = @{ Function = 'New-SldgText'; Params = @{ Type = 'Status'; Locale = $Locale } } 'Category' = @{ Function = 'New-SldgText'; Params = @{ Type = 'Category'; Locale = $Locale } } 'Gender' = @{ Function = 'New-SldgText'; Params = @{ Type = 'Gender'; Locale = $Locale } } 'Age' = @{ Function = 'New-SldgNumber'; Params = @{ Type = 'Age' } } # Numeric 'Integer' = @{ Function = 'New-SldgNumber'; Params = @{ Type = 'Integer' } } 'Decimal' = @{ Function = 'New-SldgNumber'; Params = @{ Type = 'Decimal' } } 'Boolean' = @{ Function = 'New-SldgNumber'; Params = @{ Type = 'Boolean' } } 'Quantity' = @{ Function = 'New-SldgNumber'; Params = @{ Type = 'Quantity' } } 'Percentage' = @{ Function = 'New-SldgNumber'; Params = @{ Type = 'Percentage' } } # Identifiers 'Guid' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'Guid' } } 'Code' = @{ Function = 'New-SldgIdentifier'; Params = @{ Type = 'Code' } } # Structured data (JSON / XML) 'Json' = @{ Function = 'New-SldgStructuredData'; Params = @{ Type = 'Json' } } 'Xml' = @{ Function = 'New-SldgStructuredData'; Params = @{ Type = 'Xml' } } # Generic strings 'ShortString' = @{ Function = 'New-SldgText'; Params = @{ Type = 'ShortString'; Locale = $Locale } } 'MediumString' = @{ Function = 'New-SldgText'; Params = @{ Type = 'MediumString'; Locale = $Locale } } 'LongString' = @{ Function = 'New-SldgText'; Params = @{ Type = 'LongString'; Locale = $Locale } } 'FixedString' = @{ Function = 'New-SldgText'; Params = @{ Type = 'ShortString'; Locale = $Locale } } } } |