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

namespace Sockeye.Models
{
    public class CustomerNote : ICoreBizObjectModel
    {
        public long Id { get; set; }
        public uint Concurrency { get; set; }
        [Required]
        public long CustomerId { get; set; }
        [NotMapped]
        public string CustomerViz { get; set; }
        [Required]
        public long UserId { get; set; }
        [NotMapped]
        public string UserViz { get; set; }
        [Required]
        public DateTime NoteDate { get; set; }
        public string Notes { get; set; }
        public List<string> Tags { get; set; }


        //workaround for notification    
        [NotMapped, JsonIgnore]
        public string Name { get; set; }


        public CustomerNote()
        {
            NoteDate = DateTime.UtcNow;
            Tags = new List<string>();
        }

        [NotMapped, JsonIgnore]
        public SockType SType { get => SockType.CustomerNote; }

        [JsonIgnore]
        public Customer Customer { get; set; }

        [JsonIgnore]
        public User User { get; set; }

        string ICoreBizObjectModel.CustomFields { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
    }//eoc

}//eons
