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; }
}