package com.optage.model;

import java.util.List;

/**
 * システム名 : Optage Test System
 * モジュール名 : FileHeader
 * <機能概要> Represents a file header.
 * v1.0.0 2023/01/01 X.Nguyen Initial creation
 */
public class FileHeader {
    private String systemName;
    private String moduleName;
    private String author;
    private String createdDate;
    private String purposeJa;
    private int revisionCount;
    private List<RevisionEntry> revisionHistory;

    public FileHeader(String systemName, String moduleName, String author,
                     String createdDate, String purposeJa, int revisionCount,
                     List<RevisionEntry> revisionHistory) {
        this.systemName = systemName;
        this.moduleName = moduleName;
        this.author = author;
        this.createdDate = createdDate;
        this.purposeJa = purposeJa;
        this.revisionCount = revisionCount;
        this.revisionHistory = revisionHistory;
    }

    public String getSystemName() { return systemName; }
    public String getModuleName() { return moduleName; }
    public String getAuthor() { return author; }
    public String getCreatedDate() { return createdDate; }
    public String getPurposeJa() { return purposeJa; }
    public int getRevisionCount() { return revisionCount; }
    public List<RevisionEntry> getRevisionHistory() { return revisionHistory; }

    public static class RevisionEntry {
        private String version;
        private String date;
        private String author;
        private String ticket;
        private String descriptionJa;

        public RevisionEntry(String version, String date, String author,
                           String ticket, String descriptionJa) {
            this.version = version;
            this.date = date;
            this.author = author;
            this.ticket = ticket;
            this.descriptionJa = descriptionJa;
        }

        public String getVersion() { return version; }
        public String getDate() { return date; }
        public String getAuthor() { return author; }
        public String getTicket() { return ticket; }
        public String getDescriptionJa() { return descriptionJa; }
    }
}