import CartUploadDocumentsContainer from '../containers/cart/CartUploadDocumentsContainer.jsx';
import CartCustomerDetailsContainer from '../containers/cart/CartCustomerDetailsContainer.jsx';
import CartReviewOrderContainer from '../containers/cart/CartReviewOrderContainer.jsx';

const MODULE = 'CART_';
export const REQUEST_SHOP_CART_COUNT = MODULE + 'REQUEST_SHOP_CART_COUNT';
export const RECEIVE_SHOP_CART_COUNT = MODULE + 'RECEIVE_SHOP_CART_COUNT';
export const REQUEST_SHOP_CART_ITEMS = MODULE + 'REQUEST_SHOP_CART_ITEMS';
export const RECEIVE_SHOP_CART_ITEMS = MODULE + 'RECEIVE_SHOP_CART_ITEMS';
export const REQUEST_CUSTOMER_DETAILS = MODULE + 'REQUEST_CUSTOMER_DETAILS';
export const RECEIVE_CUSTOMER_DETAILS = MODULE + 'RECEIVE_CUSTOMER_DETAILS';
export const SET_CURRENT_STEP = MODULE + 'SET_CURRENT_STEP';
export const RESET_STEPS = MODULE + 'RESET_STEPS';
export const GO_TO_NEXT_STEP = MODULE + 'GO_TO_NEXT_STEP';
export const GO_TO_PREVIOUS_STEP = MODULE + 'GO_TO_PREVIOUS_STEP';
export const LOAD_CART_STEPS = MODULE + 'LOAD_CART_STEPS';
export const UPLOAD_DOCUMENT = MODULE + 'UPLOAD_DOCUMENT';
export const REQUEST_CART_DOCUMENTS = MODULE + 'REQUEST_CART_DOCUMENTS';
export const RECEIVE_CART_DOCUMENTS = MODULE + 'RECEIVE_CART_DOCUMENTS';
export const SELECT_COUNTRY_DELIVERY = MODULE + 'SELECT_COUNTRY_DELIVERY';
export const SELECT_COUNTRY_BILLING = MODULE + 'SELECT_COUNTRY_BILLING';
export const REVIEW_ORDER = MODULE + 'REVIEW_ORDER';
export const SET_ORDER_INFO = MODULE + 'SET_ORDER_INFO';
export const IS_CART_ITEMS_DISABLED = MODULE + 'IS_CART_ITEMS_DISABLED';
export const RECEIVE_ORDER_TOTAL_PRICE = MODULE + 'RECEIVE_ORDER_TOTAL_PRICE';
export const UPDATE_CART_ITEMS = MODULE + 'UPDATE_CART_ITEMS';
export const SET_NEXT_STEP = MODULE + 'SET_NEXT_STEP';
export const SET_PREV_STEP = MODULE + 'SET_PREV_STEP';
export const SET_ORDER_PLACED = MODULE + 'SET_ORDER_PLACED';
export const SET_ORDER_PLACED_REDIRECT = MODULE + 'SET_ORDER_PLACED_REDIRECT';

export const cartSteps = () => ({
    cartUploadDocuments: {
        container: CartUploadDocumentsContainer,
        name: 'Upload documents',
        next: 'cartCustomerDetails',
        previous: '',
        status: 'active'
    },
    cartCustomerDetails: {
        container: CartCustomerDetailsContainer,
        name: 'Delivery and billing details',
        next: 'cartReviewOrder',
        previous: 'cartUploadDocuments',
        status: 'inactive'
    },
    cartReviewOrder: {
        container: CartReviewOrderContainer,
        name: 'Review and confirm',
        next: '',
        previous: 'cartCustomerDetails',
        status: 'inactive'
    }
});

export const cartMessages = {
    NOT_AVAILABLE: "This package is no longer available!",
    NO_PACKAGES: "For the moment there are no packages available for your selection!",
    INVALID_SELECTION: "Invalid selection!",
    INVALID_USER: "This package is not available for this user!",
    ONLY_ONE_CL: "You already have products from another reseller in the cart! One order can contain packages from a single reseller!",
    PACKAGE_ALREADY_IN_CART: "This package is already in the cart!",
    PACKAGE_ADDED: "Package added to cart!",
    OPTIONS_ADDED: "Package options saved!",
    QUANTITY_UPDATED: "Quantity has been updated for the package!",
    INVALID_PACKAGE_FOR_REMOVE: "This package is not available in your cart! In case this error persists contact Co-Market!",
    PACKAGE_REMOVED_FROM_CART: "The package has been removed from the cart!",
    INVALID_QUANTITY: "The quantity can be a number between 1 and 100!",
    CART_EMPTY: "You must have at least one package in the cart!",
    NO_DELIVERY_ADDRESS: "No delivery address was added! Please fill the necessary info",
    INCOMPLETE_DELIVERY_ADDRESS: "Incomplete delivery address. Please review!",
    INCOMPLETE_BILLING_ADDRESS: "Incomplete billing address. Please review!",
    INVALID_LENGTH_DELIVERY_ADDRESS: "Delivery address must not exceed 500 characters",
    INVALID_LENGTH_BILLING_ADDRESS: "Billing detailed address must not exceed 500 characters",
    INVALID_LENGTH_COMPANY_NAME: "Company name is too long. Maximum 300 characters!",
    INVALID_LENGTH_FIRST_NAME: "First name is too long. Maximum 200 characters!",
    INVALID_LENGTH_LAST_NAME: "Last name is too long. Maximum 200 characters!",
    INVALID_LENGTH_CITY: "City name is too long. Maximum 100 characters",
    INVALID_LENGTH_ZIP: "Zip code is too long. Maximum 20 characters",
    LINK_CUSTOMER_CL: "There is no link between you and the reseller!",
    ORDER_PLACED: "Order was successfully placed!",
    ORDER_ERROR: "Something went wrong when placing the order!",
    NO_PACKAGES_IN_CART: "Go to Co-Market to add packages.",
    BROKER_MAIL_SENT: "A confirmation email was sent to Co-Market!",
    MAIL_SENT: "Confirmation mail was sent with the order details!",
    ERROR_MAIL_SENT: "Error when sending mail!",
    ERROR_ORDER_INSERT: "An error occured while placing the order!",
    ERROR_ORDER_PACK_RELATION: "An error occured while linking the packages to the order!",
    ERROR_ON_ADDING_DOCUMENTS: "An error occured while linking the required documents",
    ERROR_ORDER_DELIVERY_ADDRESS: "An error occured when adding the delivery address!",
    ERROR_ORDER_BILLING_ADDRESS: "An error occured when adding the billing address!",
    ADDRESS_INSERTED: "Delivery and billing addresses were saved!",
    PACKAGES_DELETED: "Your cart is now empty!",
    NOT_UPLOADED: "You need to upload all questionaires to go further!",
    NO_FILE: "File is not valid! Supported formats are .docx, .doc, .xlsx, .xls, .odt, .ods, .pdf, .png, .jpg, .jpeg",
    UPLOAD_ERROR: "There seems to be an error and the file is not uploaded",
    FILE_UPLOADED: "Questionaire has been uploaded!",
    NOT_LINKED_TO_CART: "Questionaire has not been linked and needs to be uploaded again!",
    NO_SUPPORT: "File Drag/Drop is not supported for this browser",
    NOT_ACCEPTED_TERMS: "You have to accept the terms and conditions for the order to be placed.",
    PACKAGE_UNAVIALABLE: "Package is no longer available!",
    CL_UNAVIALABLE: "This reseller is no longer available!",
    PRODUCT_NOT_AVAILABLE: "Please remove packages that are no longer available!",
    MAX_CHARACTERS: "Too many characters!",
    QUESIONNAIRE_NOT_REQUIRED: "This packages do not require a questionnaire to be filed!",
    AGREEMENT_NOT_REQUIRED: "This packages do not require an agreement to be filed!",
    EXTRA_NOT_AVAILABLE: "This selection is not available for the selected price type!",
    UNAVAILABLE_PACKAGES: "Unavailable packages:",
    OPTIONS_UNAVAILABLE: "Some options are no longer available!",
    ADDITIONAL_PACKAGES_UNAVAILABLE: "Some additional packages are no longer available",
    INSTALLATION_SAVED: "Installation company was saved.",
    INFO_INCOMPLETE: "Complete all the information for delivery and billing to continue!",
    DOCS_MISSING: "Upload all required documents before proceding!",
    NO_CHANGE: "No change has been found",
    INVALID_FILE : 'Invalid file format! Supported extensions: .pdf, .docx, .doc, .xlsx, .xls, .odt, .ods',
    UNAVAILABLE_PACKAGE_IN_CART: 'This package contains unavailable products. Remove from the cart to continue: ',
    PRICE_DIGITS_TOO_MANY: 'Price should have no more than 15 digits'
}

export const cartTexts = {
    labels: {
        ON_DELIVERY: 'On delivery',
        MONTHLY: 'Monthly',
        EMPTY_CART: 'Your cart is empty. You can add packages from Co-Market.',
        VAT: 'VAT code',
        REFERENCE: 'Location details',
        BID: 'Invoice reference',
        DELIVERY_ADDRESS: 'Delivery address',
        ADDRESS: 'Address',
        CITY: 'City',
        ZIP: 'Zip code',
        COUNTRY: 'Country name',
        BILLING_ADDRESS: 'Billing details',
        COMPANY: 'Company name',
        FIRST_NAME: 'First name',
        LAST_NAME: 'Last name',
        SAME_BILLING: 'Use same billing address as for delivery',
        TOTAL_PRICE: 'Total price',
        CONFIRM: 'Confirm order',
        CONFIRM_TEXT: 'Are you sure you want to place the order?',
        ITEMS_IN_CART_ICON: 'items in cart',
        EMPTY_CART_ICON: 'Cart is empty',
        REMOVE_ITEM_HEADER: 'Remove item confirmation',
        REMOVE_ITEM_TEXT: 'Are you sure you want to remove ',
        REMOVE_FROM_CART: 'Remove from cart',
        ADDITIOONAL_PACKAGE: 'Addons',
        DOC_NOT_REQUIRED: 'Document not required',
        FILE_UPLOADED_TEXT: 'File uploaded! Select or drop to replace ',
        FILE: 'file',
        NO_FILE_UPLOAD_TEXT_1: 'Drag and drop',
        NO_FILE_UPLOAD_TEXT_2: 'click to upload',
        TEMPLATE: 'Template',
        UPLOADED: 'Uploaded dcuments',
        PACKAGE_UNAVAILABLE: 'This package is no longer available. Remove it from the cart to place the order successfully',
        BID_AVAILABLE: 'Bids available!',
        AVAILABLE_BIDS: 'Available Bids',
        BID_NUMBER: 'Bid Number',
        START_DATE: 'Start Date',
        END_DATE: 'End Date',
        FIXED: 'Fixed',
        RECURRENT: 'Recurrent',
        SERVICES: 'Services',
        ACTIONS: 'Actions',
        PROJECT: 'Project',
        INVOICE_MAIL: 'Invoice mail'
    },
    buttons: {
        YES: 'Yes',
        CANCEL: 'Cancel',
        BACK: 'Back',
        NEXT: 'Next',
        ADD_ADDRESS: 'Add address',
        USE: 'Use',
        REMOVE: 'Remove'
    }
};
