/**
******************************************************************************
* Copyright © 2017-2018 PTA GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* 
*     http://www.eclipse.org/legal/epl-v10.html
* 
******************************************************************************
*/
import { Notification } from '../model/notification';
export const DUMMY_CREATED_REMINDER_NOTIFICATION: Notification = {
        id: 1,
        incidentId: 100,
        version: 1,
        fkRefBranch: 1,
        fkRefGridTerritory: 1,
        fkRefNotificationStatus: 2,
        fkRefNotificationPriority: null,
        beginDate: '2017-01-16T14:01:001',
        modDate: null,
        modUser: 'theo',
        selected: false,
        status: '',
        notificationText: 'Achtung: Diebstahlgefahr',
        freeText: '',
        freeTextExtended: '',
        responsibilityForwarding: '',
        responsibilityControlPoint: 'Abteilung 4',
        reminderDate: '2017-01-16T14:01:001',
        futureDate: null,
        createDate: '2017-01-15T11:11:00+01',
        expectedFinishDate: '2017-01-17T04:04:00+01',
        finishedDate: null,
        createUser: 'Abteilungsleitung',
        clerk: 'Mustermann',
        adminFlag: false,
        type: null,
        isTypePresenceCheck: Notification.prototype.isTypePresenceCheck
};
export const DUMMY_UPDATED_REMINDER_NOTIFICATION: Notification = {
        id: 100,
        incidentId: 100,
        version: 2,
        fkRefBranch: 1,
        fkRefGridTerritory: 1,
        fkRefNotificationStatus: 2,
        fkRefNotificationPriority: null,
        beginDate: '2017-01-16T14:01:001',
        modDate: null,
        modUser: 'theo',
        selected: false,
        status: '',
        notificationText: 'Achtung: Diebstahlgefahr',
        freeText: '',
        freeTextExtended: '',
        responsibilityForwarding: '',
        responsibilityControlPoint: 'Abteilung 4',
        reminderDate: '2017-01-16T14:01:001',
        futureDate: null,
        createDate: '2017-01-15T11:11:00+01',
        expectedFinishDate: '2017-01-17T04:04:00+01',
        finishedDate: null,
        createUser: 'Abteilungsleitung',
        clerk: 'Mustermann',
        adminFlag: false,
        type: null,
        isTypePresenceCheck: Notification.prototype.isTypePresenceCheck
};
export const DUMMY_REMINDER_NOTIFICATION: Notification = {
        id: null,
        incidentId: 100,
        version: 1,
        fkRefBranch: 1,
        fkRefGridTerritory: 2,
        fkRefNotificationStatus: 2,
        fkRefNotificationPriority: null,
        beginDate: '2017-01-16T14:01:001',
        modDate: null,
        modUser: 'theo',
        selected: false,
        status: '',
        notificationText: 'Achtung: Diebstahlgefahr',
        freeText: '',
        freeTextExtended: '',
        responsibilityForwarding: '',
        responsibilityControlPoint: 'Abteilung 4',
        reminderDate: '2017-01-16T14:01:001',
        futureDate: null,
        createDate: '2017-01-15T11:11:00+01',
        expectedFinishDate: '2017-01-17T04:04:00+01',
        finishedDate: null,
        createUser: 'Abteilungsleitung',
        clerk: 'Mustermann',
        adminFlag: false,
        type: null,
        isTypePresenceCheck: Notification.prototype.isTypePresenceCheck
};
export const REMINDER_NOTIFICATIONS: Notification[] = [
    {
        id: 100,
        incidentId: 100,
        version: 1,
        fkRefBranch: 1,
        fkRefGridTerritory: 1,
        fkRefNotificationStatus: 2,
        fkRefNotificationPriority: null,
        beginDate: '2017-01-16T14:01:001',
        modDate: null,
        modUser: 'theo',
        selected: false,
        status: '',
        notificationText: 'Achtung: Diebstahlgefahr',
        freeText: '',
        freeTextExtended: '',
        responsibilityForwarding: '',
        responsibilityControlPoint: 'Abteilung 4',
        reminderDate: '2017-01-16T14:01:001',
        futureDate: null,
        createDate: '2017-01-15T11:11:00+01',
        expectedFinishDate: '2017-01-17T04:04:00+01',
        finishedDate: null,
        createUser: 'Abteilungsleitung',
        clerk: 'Mustermann',
        adminFlag: false,
        type: null,
        isTypePresenceCheck: Notification.prototype.isTypePresenceCheck
    },
    {
        id: 101,
        incidentId: 101,
        version: 2,
        fkRefBranch: 1,
        fkRefGridTerritory: 1,
        fkRefNotificationStatus: 2,
        fkRefNotificationPriority: null,
        beginDate: '2017-01-16T14:01:001',
        modDate: null,
        modUser: 'theo',        
        selected: false,
        status: '',
        notificationText: 'Mitarbeiterversammlung am 31.07.2017',
        freeText: '',
        freeTextExtended: '',
        responsibilityForwarding: '',
        responsibilityControlPoint: 'Abteilung 4',
        reminderDate: '2017-01-16T14:01:001',
        futureDate: null,
        createDate: '2017-00-15T05:05:00+01',
        expectedFinishDate: '2017-01-16T05:05:00+01',
        finishedDate: null,
        createUser: 'Personalrat',
        clerk: 'Mustermann',
        adminFlag: false,
        type: null,
        isTypePresenceCheck: Notification.prototype.isTypePresenceCheck
    },
    {
        id: 102,
        incidentId: 55,
        version: 6,
        fkRefBranch: 1,
        fkRefGridTerritory: 2,
        fkRefNotificationStatus: 2,
        fkRefNotificationPriority: null,
        beginDate: '2017-01-16T14:01:001',
        modDate: null,
        modUser: 'theo-Bold',            
        selected: false,
        status: 'offen',
        notificationText: 'Störung: Durchflussgeschwindigkeit',
        freeText: '',
        freeTextExtended: '',
        responsibilityForwarding: '',
        responsibilityControlPoint: 'Firma OPQ',
        reminderDate: '2017-01-16T14:01:001',
        futureDate: null,
        createDate: '2017-01-16T22:42:17',
        expectedFinishDate: '2017-01-17T22:42:17',
        finishedDate: null,
        createUser: 'Bearbeiter 5',
        clerk: 'Imaginär',
        adminFlag: false,
        type: null,
        isTypePresenceCheck: Notification.prototype.isTypePresenceCheck
    }
];
