namespace GsaEditor.Core.Models;

/// <summary>
/// Represents a loaded GSA archive with its global header information and file entries.
/// </summary>
public class GsaArchive
{
    /// <summary>
    /// The format variant of this archive (NARC or NARD).
    /// </summary>
    public GsaFormat Format { get; set; } = GsaFormat.NARC;

    /// <summary>
    /// (NARD only) Byte alignment for data offsets. Zero or unused for NARC.
    /// </summary>
    public int OffsetPadding { get; set; }

    /// <summary>
    /// (NARD only) Byte alignment for data sizes. Zero or unused for NARC.
    /// </summary>
    public int SizePadding { get; set; }

    /// <summary>
    /// The ordered list of file entries in the archive.
    /// </summary>
    public List<GsaEntry> Entries { get; set; } = new();
}
