<?php

namespace App\Classes\ValueObjects\Constants;

class PerfexCRMTasks
{
    //IMPORTANT NOTE: TASK NAME MUST BE UNIQUE ACCORDING TO REL_TYPE
    //e.g. rel_type: lead, project

    public const TASK_1 = [
        'name' => 'Customer Paid',
        'description' => '',
        'milestone' => 'MILESTONE 1 - Customer Paid',
        'reference' => '',
        'on_task_completion' => '',
        'department' => '',
        'status' => PerfexCRMTaskStatus::COMPLETED,
        'priority' => PerfexCRMTaskPriority::DEFAULT,
        'duedate' => 0,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];

    public const TASK_POST_PAYMENT_1 = [
        'name' => 'Map Bank Transaction Record',
        'description' => '○ Purpose: To map a transaction to bank transaction in the bank statement<br>
        ○ Initial Status: In Progress<br>
        ○ Deadline: Same day<br>
        ○ Responsible department: Accounts<br>
        ○ Next step: Change the status of the Approve payment status to "In Progress" upon successful completion of the operation.<br>
        ○ Additional details: ** Any specific requirements or notes for the operation.**<br>
        ○ Dependencies: None<br>
        ○ Outcomes: Bank transaction is mapped successfully, allowing the next steps in the process to be initiated.<br>',
        'milestone' => '',
        'reference' => 'TASK_POST_PAYMENT_1',
        'on_task_completion' => 'TASK_POST_PAYMENT_2',
        'department' => 'Accounts',
        'status' => PerfexCRMTaskStatus::IN_PROGRESS,
        'priority' => PerfexCRMTaskPriority::HIGH,
        'duedate' => 0,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];
    public const TASK_POST_PAYMENT_2 = [
        'name' => 'Approve Payment',
        'description' => '○ Purpose: To verify and approve the customer\'s payment on IZYIM<br>
        ○ Amount To be Approve: RM {amount}<br>',
        'milestone' => '',
        'reference' => 'TASK_POST_PAYMENT_2',
        'on_task_completion' => 'TASK_POST_PAYMENT_3',
        'department' => 'Accounts',
        'status' => '',
        'priority' => PerfexCRMTaskPriority::HIGH,
        'duedate' => 0,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];
    public const TASK_POST_PAYMENT_3 = [
        'name' => 'Issue Shipping Autocount Invoince',
        'description' => '○ Purpose: To issue an invoice for the customer\'s payment in accounting software.<br>
        ○ Initial Status: Not Started<br>
        ○ Deadline: Next day<br>
        ○ Responsible department: Accounts<br>
        ○ Next step: Change the status of the Knockoff Invoice operation to "In Progress" upon successful completion.<br>
        ○ Additional details: ** Any specific requirements or notes for the operation.**<br>
        ○ Dependencies: Approve Payment operation must be completed before this operation can begin.<br>
        ○ Outcomes: An invoice will be issued in accounting software for the customer\'s payment.<br>',
        'milestone' => '',
        'reference' => 'TASK_POST_PAYMENT_3',
        'on_task_completion' => 'TASK_POST_PAYMENT_4',
        'department' => 'Accounts',
        'status' => '',
        'priority' => PerfexCRMTaskPriority::MEDIUM,
        'duedate' => 1,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];
    public const TASK_POST_PAYMENT_3_1 = [
        'name' => 'Issue Shipping Autocount OR',
        'description' => '○ Purpose: To issue an invoice for the customer\'s payment in accounting software.<br>
        ○ Note: Customer Actually Upload Bank Slip or Not, If not, Invoice Will Not be Exported<br>
        ○ {link_autocount_or}<br>',
        'milestone' => '',
        'reference' => 'TASK_POST_PAYMENT_3_1',
        'on_task_completion' => 'TASK_POST_PAYMENT_4',
        'department' => 'Accounts',
        'status' => '',
        'priority' => PerfexCRMTaskPriority::DEFAULT,
        'duedate' => 0,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];
    public const TASK_POST_PAYMENT_4 = [
        'name' => 'Knockoff Invoice',
        'description' => '○ Purpose: The purpose of this operation is to issue the official receipt and knockoff with invoice for the customer\'s payment.<br>
        ○ Initial Status: Not Started<br>
        ○ Deadline: Next day.<br>
        ○ Responsible Department: Accounts<br>
        ○ Next Step: None<br>
        ○ Additional Details: ** Any specific requirements or notes for the operation.**<br>
        ○ Dependencies: Issue Shipping Autocount Invoice operation must be completed before this operation can begin.<br>
        ○ Outcomes: The customer’s payment is applied to the accounting software invoice and invoice is marked as paid.<br>',
        'milestone' => '',
        'reference' => 'TASK_POST_PAYMENT_4',
        'on_task_completion' => '',
        'department' => 'Accounts',
        'status' => '',
        'priority' => PerfexCRMTaskPriority::MEDIUM,
        'duedate' => 1,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];



    public const TASK_IDENTIFICATION_1 = [
        'name' => 'Approve Identification Verification (Shipping)',
        'description' => '○ Purpose: To ensure the customer submit information matches the information in their identification document.<br>
        ○ Initial Status: In Progress<br>
        ○ Deadline: Same Day<br>
        ○ Responsible department: Operation<br>
        ○ Next step: None<br>
        ○ Additional details: ** Any specific requirements or notes for the operation.**<br>
        ○ Dependencies: None<br>
        ○ Outcomes: Customer account identification is verified<br>',
        'milestone' => '',
        'reference' => 'TASK_IDENTIFICATION_1',
        'on_task_completion' => '',
        'department' => 'Operations',
        'status' => PerfexCRMTaskStatus::IN_PROGRESS,
        'priority' => PerfexCRMTaskPriority::DEFAULT,
        'duedate' => 0,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];


    public const TASK_YD_LOADED_CONTAINER_1 = [
        'name' => 'Generate Shipping Invoices',
        'description' => '○ Purpose: -<br>
        ○ Link to order page: {link_order}<br>',
        'milestone' => '',
        'reference' => 'TASK_LOADED_CONTAINER_1',
        'on_task_completion' => 'TASK_LOADED_CONTAINER_2',
        'department' => 'Operations',
        'status' => PerfexCRMTaskStatus::IN_PROGRESS,
        'priority' => PerfexCRMTaskPriority::HIGH,
        'duedate' => 1,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];

    public const TASK_YD_LOADED_CONTAINER_2 = [
        'name' => 'Approve Shipping Invoices',
        'description' => '○ Purpose: -<br>
        ○ Link to refer Pay On Behalf or Any extra charge: : {link_perfex}<br>',
        'milestone' => '',
        'reference' => 'TASK_LOADED_CONTAINER_2',
        'on_task_completion' => '',
        'department' => 'Customer Services',
        'status' => '',
        'priority' => PerfexCRMTaskPriority::HIGH,
        'duedate' => 1,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];

    public const TASK_YD_LOADED_CONTAINER_3 = [
        'name' => 'Track 1 - Loaded Container',
        'description' => '',
        'milestone' => '',
        'reference' => 'TASK_YD_SHIPPING_3',
        'on_task_completion' => '',
        'department' => '',
        'status' => PerfexCRMTaskStatus::NOT_STARTED,
        'priority' => PerfexCRMTaskPriority::DEFAULT,
        'duedate' => 1,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];

    public const TASK_YD_SHIPPING_1 = [
        'name' => 'Track 2 - Shipping',
        'description' => '',
        'milestone' => '',
        'reference' => 'TASK_YD_SHIPPING_1',
        'on_task_completion' => '',
        'department' => '',
        'status' => PerfexCRMTaskStatus::NOT_STARTED,
        'priority' => PerfexCRMTaskPriority::DEFAULT,
        'duedate' => 1,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];

    public const TASK_YD_UNSTUFFING_1 = [
        'name' => 'Track 3 - Unstuffing',
        'description' => '',
        'milestone' => '',
        'reference' => 'TASK_YD_UNSTUFFING_1',
        'on_task_completion' => '',
        'department' => '',
        'status' => PerfexCRMTaskStatus::NOT_STARTED,
        'priority' => PerfexCRMTaskPriority::DEFAULT,
        'duedate' => 1,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];

    public const TASK_YD_DELIVERY_1 = [
        'name' => 'Track 4 - Delivery',
        'description' => '',
        'milestone' => '',
        'reference' => 'TASK_YD_DELIVERY_1',
        'on_task_completion' => '',
        'department' => '',
        'status' => PerfexCRMTaskStatus::NOT_STARTED,
        'priority' => PerfexCRMTaskPriority::DEFAULT,
        'duedate' => 1,
        'is_allow_multiple' => false,
        'is_on_task_completion_update' => false
    ];


}
