using System;
using Sockeye.Biz;
using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;

namespace Sockeye.Models
{

    public class InAppNotification
    {
        public long Id { get; set; }
        public uint Concurrency { get; set; }

        [Required]
        public long UserId { get; set; }
        [Required]
        public DateTime Created { get; set; }
        public SockType? SockType { get; set; }
        public long? ObjectId { get; set; }
        [Required]
        public string Name { get; set; }//object name or closest equivalent for display
        [Required]
        public NotifyEventType EventType { get; set; }
        [Required]
        public long NotifySubscriptionId { get; set; }
        public string Message { get; set; }
        public TimeSpan AgeValue { get; set; }
        public decimal DecValue { get; set; }
        [Required]
        public bool Fetched { get; set; }

        public InAppNotification()
        {
            Created = DateTime.UtcNow;
            Fetched = false;
            Name = string.Empty;
            AgeValue = TimeSpan.Zero;
            DecValue = 0m;
        }

        //linked entity
        [JsonIgnore]
        public NotifySubscription NotifySubscription { get; set; }

    }//eoc

}//eons
