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

namespace AyaNova.Models
{
    //NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal, 
    //otherwise the server will call it an invalid record if the field isn't sent from client
   
    public class QuoteItem : ICoreBizObjectModel
    {
        public long Id { get; set; }
        public uint Concurrency { get; set; }

        [Required]
        public string Name { get; set; }      
        public bool Active { get; set; }       
        public string Notes { get; set; }       
        public string Wiki {get;set;}
        public string CustomFields { get; set; }
        public List<string> Tags { get; set; }
      
        //Principle
        [Required]//this required annotation should cause a cascade delete to happen automatically when wo is deleted, need to test that
        public long QuoteId { get; set; }//fk
        public Quote Quote { get; set; }

        //Dependents

        public QuoteItem()
        {
            Tags = new List<string>();
        }

        //Not persisted business properties
        //NOTE: this could be a common class applied to everything for common biz rule stuff
        //i.e. specific rights in situations based on rules, like candelete, canedit etc
        [NotMapped]
        public bool NonDataBaseExampleColumn { get; set; }//example of how to add a property that is not persisted but is used by both ends dynamically, should come up with a naming scheme so can see them at a glance


    }//eoc

}//eons
