Private/New-BridgeStatusObject.ps1
function New-BridgeStatusObject { [CmdletBinding()] <# .SYNOPSIS Δημιουργεί αντικείμενο κατάστασης γέφυρας. .DESCRIPTION Η New-BridgeStatusObject δημιουργεί structured αντικείμενο που περιέχει όνομα γέφυρας, κατάσταση, χρονική σφραγίδα και URL εικόνας. .PARAMETER Location Το αναγνωριστικό της γέφυρας ('poseidonia' ή 'isthmia'). .PARAMETER Status Η κατάσταση της γέφυρας ('Ανοιχτή', 'Κλειστή', 'Άγνωστη'). .PARAMETER Timestamp Η χρονική στιγμή καταγραφής. .PARAMETER ImageSrc Το URL ή το σχετικό path της εικόνας. .PARAMETER BaseUrl Το base URL για συμπλήρωση εικόνων (προεπιλογή https://www.topvision.gr/dioriga/). .OUTPUTS [pscustomobject] - Αντικείμενο κατάστασης. .EXAMPLE New-BridgeStatusObject -Location 'poseidonia' -Status 'Closed' -Timestamp (Get-Date) -ImageSrc 'bridge1.jpg' .NOTES Επιστρέφει πάντα πλήρες αντικείμενο με σωστά πεδία. #> [OutputType([pscustomobject])] param ( [Parameter(Mandatory)][ValidateNotNullOrEmpty()][string]$Location, [Parameter(Mandatory)][ValidateNotNullOrEmpty()][string]$Status, [Parameter(Mandatory)][string]$Timestamp, [Parameter(Mandatory)][string]$ImageSrc, [Parameter()][string]$BaseUrl = 'https://www.topvision.gr/dioriga/' ) return [pscustomobject]@{ GefyraName = if ($Location -eq 'poseidonia') { 'Ποσειδωνία' } else { 'Ισθμία' } GefyraStatus = $Status Timestamp = $Timestamp ImageUrl = if ($ImageSrc -match '^https?://') { $ImageSrc } else { "$BaseUrl$ImageSrc" } } } |