namespace AyaNova.Biz
{

    /// <summary>
    /// All AyaNova types and their attributes indicating what features that type will support (tagging, attachments etc)
    /// </summary>
    public enum AyaType : int
    {
        //COREBIZOBJECT attribute must be set on objects that are:
        //Attachable objects can have attachments, 
        //wikiable objects can have a wiki
        //reviewable objects can have a review which is basically the same as a Reminder but with an object attached (was follow up schedmarker in v7)
        //PIckList-able (has picklist template)
        //Pretty much everything that represents some kind of real world object is wikiable or attachable as long as it has an ID and a type
        //exceptions would be utility type objects like datalistview, formcustom etc that are not

        //NOTE: NEW CORE OBJECTS - All areas of server AND CLIENT code that require adding any new core objects have been tagged with the following comment:
        //CoreBizObject add here
        //Search for that IN SERVER AND CLIENT CODE and you will see all areas that need coding for the new object

        //***IMPORTANT: Also need to add translations for any new biz objects added that don't match exactly the name here in the key
        //because enumlist gets it that way, i.e. "Global" would be the expected key

        NoType = 0,
        Global = 1,
        [CoreBizObject]
        Widget = 2,
        [CoreBizObject]
        User = 3,
        ServerState = 4,
        License = 5,
        LogFile = 6,
        PickListTemplate = 7,
        [CoreBizObject]
        Customer = 8,
        ServerJob = 9,
        [CoreBizObject]
        Contract = 10,
        TrialSeeder = 11,
        ServerMetrics = 12,
        Translation = 13,
        UserOptions = 14,
        [CoreBizObject]
        HeadOffice = 15,
        [CoreBizObject]
        LoanUnit = 16,
        FileAttachment = 17,
        DataListView = 18,
        FormCustom = 19,
        [CoreBizObject]
        Part = 20,
        [CoreBizObject]
        PM = 21,
        [CoreBizObject]
        PMItem = 22,
        [CoreBizObject]
        PMTemplate = 23,
        [CoreBizObject]
        PMTemplateItem = 24,
        [CoreBizObject]
        Project = 25,
        [CoreBizObject]
        PurchaseOrder = 26,
        [CoreBizObject]
        Quote = 27,
        [CoreBizObject]
        QuoteItem = 28,
        [CoreBizObject]
        QuoteTemplate = 29,
        [CoreBizObject]
        QuoteTemplateItem = 30,
        [CoreBizObject]
        Unit = 31,
        [CoreBizObject]
        UnitModel = 32,
        [CoreBizObject]
        Vendor = 33,
        //--- WorkOrder
        [CoreBizObject]
        WorkOrder = 34,
        [CoreBizObject]
        WorkOrderItem = 35,
        [CoreBizObject]
        WorkOrderItemExpense = 36,
        [CoreBizObject]
        WorkOrderItemLabor = 37,
        [CoreBizObject]
        WorkOrderItemLoan = 38,
        [CoreBizObject]
        WorkOrderItemPart = 39,
        [CoreBizObject]
        WorkOrderItemPartRequest = 40,
        [CoreBizObject]
        WorkOrderItemScheduledUser = 41,
        [CoreBizObject]
        WorkOrderItemTask = 42,
        [CoreBizObject]
        WorkOrderItemTravel = 43,
        [CoreBizObject]
        WorkOrderItemUnit = 44,
        //---
        [CoreBizObject]
        WorkOrderTemplate = 45,
        [CoreBizObject]
        WorkOrderTemplateItem = 46,
        GlobalOps = 47,
        BizMetrics = 48,
        Backup = 49,
        Notification = 50,
        NotifySubscription = 51,
        Reminder = 52,
        UnitMeterReading = 53,
        CustomerServiceRequest = 54,
        ServiceBank = 55,
        OpsNotificationSettings = 56,
        Report = 57



        //NOTE: New objects added here need to also be added to the following classes:
        //AyaNova.Biz.BizObjectExistsInDatabase
        //AyaNova.Biz.BizObjectFactory
        //AyaNova.Biz.BizRoles
        //AyaNova.Biz.BizObjectNameFetcherDIRECT
        //and in the CLIENT in ayatype.js
        //and their model needs to have the ICoreBizObjectModel interface

        //and need TRANSLATION KEYS because any type could show in the event log at the client end

    }


}//eons 

/*

///////////////////////////////////////////////////////////
//  RootObjectTypes.cs
//  Implementation of Class RootObjectTypes
//  CSLA type: enumeration 
//  Created on: 07-Jun-2004 8:41:36 AM
//  Object design: Class Incomplete
///////////////////////////////////////////////////////////

using System.ComponentModel;


namespace GZTW.AyaNova.BLL
{

    /// <summary>
	/// RootObject types.  
	/// Note that some items here are not strictly root
	/// objects, but are included because they need to be identified
	/// for other purposes such as indexed keywords etc.
	/// </summary>
	public enum RootObjectTypes : int {

		[Description("LT:O.Nothing")] Nothing = 0,
		[Description("LT:O.Global")] Global = 1,
		[Description("LT:O.Region")] Region = 2,
		[Description("LT:O.Client")] Client = 3,
		[Description("LT:O.Vendor")] Vendor = 4,
		[Description("LT:O.HeadOffice")] HeadOffice = 5,
		[Description("LT:O.RentalUnit")] RentalUnit = 6,
		[Description("LT:O.Unit")] Unit = 7,
		[Description("LT:O.UnitModel")] UnitModel = 8,
		[Description("LT:O.Workorder")] Workorder = 9,
		[Description("LT:O.WorkorderItem")] WorkorderItem = 10,
		[Description("LT:O.UserSkillAssigned")] UserSkillAssigned = 11,
		[Description("LT:O.UserCertificationAssigned")] UserCertificationAssigned = 12,
		[Description("LT:O.User")] User = 13,
		[Description("LT:O.Part")] Part = 14,
		[Description("LT:O.LoanItem")] LoanItem = 15,
		[Description("LT:O.DispatchZone")] DispatchZone = 16,
		[Description("LT:O.Rate")] Rate = 17,
		[Description("LT:O.Contract")] Contract = 18,
		[Description("LT:O.Project")] Project = 19,
		[Description("LT:O.PurchaseOrder")] PurchaseOrder = 20,
		[Description("LT:O.ClientGroup")] ClientGroup = 21,
		[Description("LT:O.WorkorderCategory")] WorkorderCategory = 22,
		[Description("LT:O.WorkorderItemScheduledUser")] WorkorderItemScheduledUser = 23,
		[Description("LT:O.WorkorderItemOutsideService")] WorkorderItemOutsideService = 24,
		[Description("LT:O.WorkorderItemPart")] WorkorderItemPart = 25,
		[Description("LT:O.WorkorderItemLabor")] WorkorderItemLabor = 26,
		[Description("LT:O.WorkorderItemTravel")] WorkorderItemTravel = 27,
		[Description("LT:O.WorkorderItemMiscExpense")] WorkorderItemMiscExpense = 28,
		[Description("LT:O.WorkorderItemPartRequest")] WorkorderItemPartRequest = 29,
		[Description("LT:O.WorkorderItemLoan")] WorkorderItemLoan = 30,
		[Description("LT:O.ClientNote")] ClientNote = 31,
		[Description("LT:O.ServiceBank")] ServiceBank = 32,
		[Description("LT:O.WorkorderQuote")] WorkorderQuote = 33,
		[Description("LT:O.WorkorderService")] WorkorderService = 34,
		[Description("LT:O.AssignedDoc")] AssignedDocument = 35,
		[Description("LT:O.PartWarehouse")] PartWarehouse = 36,		
		[Description("LT:O.UnitMeterReading")] UnitMeterReading = 37,
		[Description("LT:O.UnitModelCategory")] UnitModelCategory = 38,
		[Description("LT:O.Locale")] Locale = 39,
		[Description("LT:O.SearchResult")] SearchResult = 40,
		[Description("LT:O.WorkorderItemType")] WorkorderItemType = 41,
		[Description("LT:O.UnitServiceType")] UnitServiceType = 42,
		[Description("LT:O.PartAssembly")] PartAssembly = 43,
		[Description("LT:O.AyaFile")] AyaFile = 44,//case 73
		[Description("LT:O.Contact")] Contact = 45,
		[Description("LT:O.ContactPhone")] ContactPhone = 46,
		[Description("LT:O.WorkorderPreventiveMaintenance")] WorkorderPreventiveMaintenance = 47,
		[Description("LT:O.TaskGroup")] TaskGroup = 48,
		[Description("LT:O.ScheduleMarker")] ScheduleMarker = 49,
		[Description("LT:O.ClientServiceRequest")] ClientServiceRequest = 50,
		[Description("LT:O.ScheduleableUserGroup")] ScheduleableUserGroup = 51,
		[Description("LT:O.Task")] Task = 52,
		[Description("LT:O.Memo")] Memo = 53,
		[Description("LT:O.PartCategory")] PartCategory=54,
		[Description("LT:O.UnitOfMeasure")] UnitOfMeasure=55,
		[Description("LT:O.TaxCode")] TaxCode=56,
		[Description("LT:O.PartSerial")] PartSerial = 57,
		[Description("LT:O.PartInventoryAdjustment")] PartInventoryAdjustment = 58,
		[Description("LT:O.PartInventoryAdjustmentItem")] PartInventoryAdjustmentItem = 59,
		[Description("LT:O.Priority")] Priority=60,
		[Description("LT:O.UserSkill")] UserSkill=61,
		[Description("LT:O.WorkorderStatus")] WorkorderStatus=62,
		[Description("LT:O.UserCertification")] UserCertification=63,
		[Description("LT:O.ClientNoteType")] ClientNoteType=64,
		[Description("LT:O.SecurityGroup")] SecurityGroup=65, 
		[Description("LT:O.PurchaseOrderReceiptItem")] PurchaseOrderReceiptItem=66,
		[Description("LT:O.PartByWarehouseInventory")] PartByWarehouseInventory=67,
		[Description("LT:O.Report")] Report=68,
        [Description("LT:O.WorkorderQuoteTemplate")]
        WorkorderQuoteTemplate = 69,
        [Description("LT:O.WorkorderServiceTemplate")]
        WorkorderServiceTemplate = 70,
        [Description("LT:O.WorkorderPreventiveMaintenanceTemplate")]
        WorkorderPreventiveMaintenanceTemplate = 71,
        [Description("LT:O.WikiPage")]//case 73
        WikiPage = 72,
        [Description("LT:O.GridFilter")]//case 941
        GridFilter = 73,
        [Description("LT:O.NotifySubscription")]//case 941
        NotifySubscription = 74,
        [Description("LT:O.PurchaseOrderReceipt")]//case 941
        PurchaseOrderReceipt = 75,
        [Description("LT:O.Notification")]//case 1172
        Notification = 76,
        [Description("LT:UI.Go.Schedule")]//case 812
        Schedule = 77,
        [Description("LT:O.WorkorderItemTask")]//case 1317
        WorkorderItemTask = 78,
        [Description("LT:O.WorkorderItemUnit")]//case 1317
        WorkorderItemUnit = 79,
        [Description("LT:ScheduleMarker.Label.FollowUp")]//case 1975
        FollowUp = 80
        
	}//end RootObjectTypes

}//end namespace GZTW.AyaNova.BLL
 */
