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

namespace AyaNova.Models
{

    /// <summary>
    /// Operations job
    /// </summary>
    public partial class OpsJob
    {
        [Key]
        public Guid GId { get; set; }

        [Required]
        public DateTime Created { get; set; }
        public uint ConcurrencyToken { get; set; }

        // [Required]
        // public long O wnerId { get; set; }
        [Required]
        public string Name { get; set; }

        //------------------------
        [Required]
        public bool Exclusive { get; set; }//true lock api and don't run other jobs until completed / false=run any time with other jobs async 
        public DateTime StartAfter { get; set; }
        [Required]
        public JobType JobType { get; set; }
        public long ObjectId { get; set; }
        public AyaType ObjectType { get; set; }
        [Required]
        public JobStatus JobStatus { get; set; }
        /// <summary>
        /// Json string of any required extra info for job
        /// </summary>     
        public string JobInfo { get; set; }//json as string of any required extra info for job


        public OpsJob(){
            GId=new Guid();
            Created=DateTime.UtcNow;
          //  O wnerId=1;
            Name="new job";
            Exclusive=false;
            StartAfter=Created;
            JobType=JobType.NotSet;
            ObjectId=0;
            ObjectType=AyaType.NoType;
            JobStatus=JobStatus.Sleeping;
            JobInfo=null;

        }

    }

}
