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

namespace Sockeye.Models
{
    //This model holds the Customer notification 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 CustomerNotifyDeliveryLog
    {
        public long Id { get; set; }
        public uint Concurrency { get; set; }

        [Required]
        public DateTime Processed { get; set; }

        public long ObjectId { get; set; }

        [Required]
        public long CustomerNotifySubscriptionId { get; set; }

        [Required]
        public bool Fail { get; set; }
        public string Error { get; set; }


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

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

    }//eoc

}//eons
