namespace SabreTools.Data.Models.PKZIP
{
///
/// Represents a single ZIP/ZIP64 archive
///
/// PKZIP archives are meant to be read from the end
public class Archive
{
///
/// Local file entries
///
public LocalFile[]? LocalFiles { get; set; }
///
/// Optional archive decryption header, appears after all entries
///
/// TODO: Determine the model
public byte[] ArchiveDecryptionHeader { get; set; } = [];
///
/// Optional archive extra data record, appears after either
/// the archive decryption header or after all entries
///
public ArchiveExtraDataRecord? ArchiveExtraDataRecord { get; set; }
///
/// Central directory headers in sequential order
///
public CentralDirectoryFileHeader[]? CentralDirectoryHeaders { get; set; }
///
/// Optional ZIP64 end of central directory record
///
public EndOfCentralDirectoryRecord64? ZIP64EndOfCentralDirectoryRecord { get; set; }
///
/// Optional ZIP64 end of central directory locator
///
public EndOfCentralDirectoryLocator64? ZIP64EndOfCentralDirectoryLocator { get; set; }
///
/// Required end of central directory record, always must be last
///
public EndOfCentralDirectoryRecord? EndOfCentralDirectoryRecord { get; set; }
}
}