namespace SwPackagePromote; /// Mirrors SwBLL.OfflineRollout.OfflinePackageBundleDTO's JSON shape exactly — same /// duplicated wire-contract copy as SwOfflineApply.OfflinePackageBundle, not a live reference to /// that assembly. This tool needs no changes to the export side at all: PackageCode/DbModelId/ /// ObjectName/Checksum were already present in this bundle before this tool existed. public class OfflinePackageBundle { public int PackageId { get; set; } public string? PackageCode { get; set; } public int DbModelId { get; set; } public byte PackageContentType { get; set; } public string? ReleaseVersion { get; set; } public List Scripts { get; set; } = new(); } public class OfflinePackageScript { public string? ObjectName { get; set; } // Reuses SwDAL.Enums.PackageContentType's own Schema=0/MetadataOrStandardData=1 numbering — // GovernanceImporter keys its version-history check on (ObjectName, ObjectType), not // ObjectName alone, since two legitimately distinct scripts (a CREATE TABLE + a separate // reference-data seed) can share one ObjectName — confirmed live: without this, re-promoting // an unchanged package flip-flopped both into fresh spurious versions on every run. public byte ObjectType { get; set; } public string SqlScript { get; set; } = string.Empty; public string? Checksum { get; set; } public short Sequence { get; set; } }