using System;
using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using MemoryPack;
using Unity.Mathematics;

namespace Net.Project.B.World
{
    [MemoryPackable]
    public partial record SpotterScopeData
    {
        public string FileName { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public DateTime CreateTime { get; set; }
        public float3 Position { get; set; }
        public quaternion Rotation { get; set; }
    }
    public interface ISpotterScopeService
    {
        public string Directory { get; }
        public UniTask<SpotterScopeData> Snapshot(float3 position, quaternion rotation, int fov);
        UniTask<IReadOnlyList<SpotterScopeData>> GetSnapshots();
        public event Action<SpotterScopeData> OnSnapshot;
    }

}
