using System;
using AyaNova.Biz;
using System.ComponentModel.DataAnnotations;

namespace AyaNova.Models
{

    /// <summary>
    /// Event log entry
    /// </summary>
    public partial class Event
    {
        public long Id { get; set; }
        public uint ConcurrencyToken { get; set; }
        public DateTime Created { get; set; }
        [Required]
        public long OwnerId { get; set; }
        //-----------------------------------------
        [Required]
        public long AyId { get; set; }
        [Required]
        public AyaType AyType { get; set; }
        [Required]
        public AyaEvent AyEvent { get; set; }

        [MaxLength(255)]
        public string Textra { get; set; }


        public Event()
        {
            Created = System.DateTime.UtcNow;
        }

        public Event(long ownerId, long ayId, AyaType ayType, AyaEvent ayEvent, string textra = null)
        {
            Created = System.DateTime.UtcNow;
            OwnerId = ownerId;
            AyId = ayId;
            AyType = ayType;
            AyEvent = ayEvent;
            if (textra != null)
            {
                if (textra.Length > 255)
                    textra = textra.Substring(0, 255);
                Textra = textra;
            }
        }

        public Event(long ownerId, long ayId, AyaType ayType, AyaEvent ayEvent, DateTime created, string textra = null)
        {
            Created = created;
            OwnerId = ownerId;
            AyId = ayId;
            AyType = ayType;
            AyEvent = ayEvent;
            if (textra != null)
            {
                if (textra.Length > 255)
                    textra = textra.Substring(0, 255);
                Textra = textra;
            }
        }

    }//eoc

}//eons
