using System;
using API.Entities.Enums.Device;
using API.Entities.Interfaces;
namespace API.Entities;
/// 
/// A Device is an entity that can receive data from Kavita (kindle)
/// 
public class Device : IEntityDate
{
    public int Id { get; set; }
    /// 
    /// Last Seen IP Address of the device
    /// 
    public string? IpAddress { get; set; }
    /// 
    /// A name given to this device
    /// 
    /// If this device is web, this will be the browser name
    /// Pixel 3a, John's Kindle
    public string? Name { get; set; }
    /// 
    /// An email address associated with the device (ie Kindle). Will be used with Send to functionality
    /// 
    public string? EmailAddress { get; set; }
    /// 
    /// Platform (ie) Windows 10
    /// 
    public DevicePlatform Platform { get; set; }
    public int AppUserId { get; set; }
    public AppUser AppUser { get; set; } = null!;
    /// 
    /// Last time this device was used to send a file
    /// 
    public DateTime LastUsed { get; set; }
    public DateTime LastUsedUtc { get; set; }
    public DateTime Created { get; set; }
    public DateTime LastModified { get; set; }
    public DateTime CreatedUtc { get; set; }
    public DateTime LastModifiedUtc { get; set; }
    public void UpdateLastUsed()
    {
        LastUsed = DateTime.Now;
        LastUsedUtc = DateTime.UtcNow;
    }
}