namespace AyaNova.Biz
{


    /// <summary>
    /// All AyaNova notification event types
    /// 
    /// </summary>
    public enum NotifyEventType : int
    {
        //see core-notifications.txt spec doc for a bit more info on each type (they are named a little bit differently)
        //#### NOTE: once event is NOTED IN COMMENT (not necessarily coded yet as some can't be yet) in NotifyEventProcessor I'll mark it with a * in the comment so I know if I miss any
        ObjectDeleted = 1,//* Deletion of any object of conditional specific AyaType and optionally conditional tags
        ObjectCreated = 2,//* creation of any object of conditional specific AyaType and optionally conditional tags
        ObjectModified = 3,//* Modification / update of any kind of any object of conditional specific AyaType and optionally conditional tags
        WorkorderStatusChange = 4,//* Workorder object, any *change* of status including from no status (new) to a specific conditional status ID value
        ContractExpiring = 5,//* Contract object, aged notification with optional advance notice for expiration date of contract. Customer version and User version deliveries possible.
        CSRAccepted = 6,//*CustomerServiceRequest object, saved with ACCEPTED status, delivered to Customer only
        CSRRejected = 7,//*CustomerServiceRequest object, saved with REJECTED status, delivered to Customer only
        CopyOfCustomerNotification = 8,//*User notification of what was sent to a Customer as a notification.  In other words can subscribe to any customer notifications and be sent a copy of them. Tag filter is based on Customer's tags for this one so user can choose which customer group to subscribe to this or all.
        QuoteStatusChange = 9,//* Quote object, any *change* of status including from no status (new) to a specific conditional status ID value
        ObjectAge = 10,//* Any object, Age (conditional on AgeValue) after creation event of any object of conditional specific AyaType and optionally conditional tags
        ServiceBankDepleted = 11,//*ServiceBank object, any change to balance triggers this check, conditional on decvalue as remaining balance left to trigger this notification
        ReminderImminent = 12,//*Reminder object, Advance notice setting tag conditional
        ScheduledOnWorkorder = 13,//*Workorder / WorkorderItemScheduledUser object, instant notification when current user is scheduled on a service workorder
        ScheduledOnWorkorderImminent = 14,//*Workorder / WorkorderItemScheduledUser object, advanced (settable) notification when current user's scheduled date/time is imminent
        WorkorderFinishStatusOverdue = 15,//* Workorder object not set to a "Finished" flagged workorder status type in selected time span from creation of workorderWorkorderSetToFinishedStatus
        OutsideServiceOverdue = 16,//* Workorder object , WorkorderItemOutsideService created / updated, sets advance notice on due date tag filterable
        OutsideServiceReceived = 17,//* Workorder object , WorkorderItemOutsideService updated, instant notification when item received, tag filterable
        PartRequestReceived = 18,//* Workorder object / workorderitempartrequest updated, sent to person who requested when parts received back
        NotifyHealthCheck = 19,//* NO OBJECT, direct subscription to receive recurring daily notify system "ping" sent out between 8am and 10am once every 24 hours minimum every day server local time
        BackupStatus = 20,//* NO OBJECT, direct subscription to receive results of last backup operation
        CustomerServiceImminent = 21,//* Workorder / WorkorderItemScheduledUser object, notice that scheduled service is due, can set advance notice, CUSTOMER gets delivery
        PartRequested = 22,//* Workorder object / workorderitempartrequest created tag filterable
        WorkorderTotalExceedsThreshold = 23,//* "the Andy" Workorder updated / created, based on balance total so conditional on DecValue
        WorkorderStatusAge = 24,//* Workorder object  Created / Updated, conditional on exact status selected IdValue, Tags conditional, advance notice can be set
        UnitWarrantyExpiry = 25,//* Unit object created, advance notice can be used, tag conditional
        UnitMeterReadingMultipleExceeded = 26,//* UnitMeterReading object, Created, conditional on DecValue as the Multiple threshold, if passed then notifies
        GeneralNotification = 27,//* NO OBJECT old quick notification, refers now to any direct text notification internal or user to user used for system notifications (default delivers in app but user can opt to also get email)
        ServerOperationsProblem = 28,//* NO OBJECT and serious issue with server operations requiring intervention,
        QuoteStatusAge = 29,//* Quote object  Created / Updated, conditional on exact status selected IdValue, Tags conditional, advance notice can be set
        WorkorderFinished = 30, //*Service work order is set to any status that is flagged as a "Finished" type of status. Customer & User
        WorkorderCreatedForCustomer = 31, //*Service work order is created for Customer, only applies to that customer user notify sub for that customer, customer id is in conditional ID value for subscription
        WorkorderFinishedFollowUp = 32 //* Service workorder closed status follow up again after this many TIMESPAN

        //NEW ITEMS REQUIRE translation KEYS 

    }


}//eons 
