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

namespace Sockeye.Models
{
    //This model holds the deliveries that have been attempted in the past 90 days (cleaned out by corenotifysweeper)
    //it is used for verification / troubleshooting purposes from the OPS log
    //and also used as a circuit breaker by the corejobnotify to ensure users are not spammed with identical messages



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

//public SockType NotifyType { get; set; }
//public long CustomerNotifySubscriptionId {get;set;}

        [Required]
        public DateTime Processed { get; set; }
        
        public long ObjectId { get; set; }
       
        [Required]
        public long NotifySubscriptionId { get; set; }
      
        [Required]
        public bool Fail { get; set; }
        public string Error { get; set; }


        public NotifyDeliveryLog()
        {
            Processed = DateTime.UtcNow;
            Fail = false;
            ObjectId = 0;
        }

        //linked entity
        public NotifySubscription NotifySubscription { get; set; }

    }//eoc

}//eons
