using System;
using UnityEngine;

namespace Intrepid.Integration.Persistence.DTOs
{
    [Serializable]
    public class GameSlotDTO
    {
        [SerializeField] private string seed;
        public SentinelDTO SentinelData;
        public WorldDTO WorldData;

        private GameSlotDTO()
        {
        }

        public string Seed
        {
            get => seed;
            private set => seed = value;
        }

        public static GameSlotDTO WithInitialValues()
        {
            return new GameSlotDTO
            {
                Seed = Guid.NewGuid().ToString("N"),
                SentinelData = SentinelDTO.WithInitialValues(),
                WorldData = WorldDTO.WithInitialValues(),
            };
        }
    }
}