using System.Text;
using SheetMe.Core.Models;
using SheetMe.Core.Serialization;
namespace SheetMe.Data.Stores;
///
/// 파일 기반 서식 저장소 — 레거시 XML(.xml) 파일 열기/저장.
/// 레거시 디자이너의 XML 내보내기(TK_ExportXML) 산출물과 호환되며, DB 없는 개발 모드의 기본 저장소.
///
public sealed class XmlFileFormStore
{
#region Member Fields
private readonly LegacyXmlSerializer serializer = new();
#endregion
#region Methods
/// XML 파일 열기 — FormId 는 파일명에서 유래
public FormDocument LoadFile(string path)
{
var content = File.ReadAllText(path);
var document = serializer.Read(content);
document.FormId = Path.GetFileNameWithoutExtension(path);
document.Title = document.FormId;
return document;
}
/// XML 파일 저장 — UTF-8(BOM 없음)
public void SaveFile(FormDocument document, string path)
{
var xml = serializer.Write(document);
File.WriteAllText(path, xml, new UTF8Encoding(encoderShouldEmitUTF8Identifier: false));
}
#endregion
}