import { AXPStatusProvider, AXPSystemStatusType, systemStatusToDefinition } from '@acorex/platform/common';
import * as i0 from '@angular/core';
import { Injectable } from '@angular/core';

//#region ----   Imports   ----
//#endregion
//#region ----   Bulk Buy Order Status Provider   ----
/**
 * Bulk Buy Order status provider defining lifecycle states: Open, Closed, Cancelled.
 * Used by the status plugin to manage bulk buy order status transitions and metadata.
 */
class AXMBulkBuyOrderStatusProvider extends AXPStatusProvider {
    constructor() {
        super(...arguments);
        this.key = 'OrderManagement:Status:bulk-buy-order';
        this.defaultStatus = AXPSystemStatusType.Open;
        this.statuses = [
            systemStatusToDefinition(AXPSystemStatusType.Open, {
                title: '@order-management:bulk-buy-orders.states.open',
                generateView: true,
            }),
            systemStatusToDefinition(AXPSystemStatusType.Closed, {
                title: '@order-management:bulk-buy-orders.states.closed',
                generateView: true,
            }),
            systemStatusToDefinition(AXPSystemStatusType.Cancelled, {
                title: '@order-management:bulk-buy-orders.states.cancelled',
                generateView: true,
            }),
        ];
        this.transitions = [
            {
                from: AXPSystemStatusType.Open,
                to: AXPSystemStatusType.Closed,
                title: '@order-management:bulk-buy-orders.transitions.close',
            },
            {
                from: AXPSystemStatusType.Open,
                to: AXPSystemStatusType.Cancelled,
                title: '@order-management:bulk-buy-orders.transitions.cancel',
            },
            {
                from: AXPSystemStatusType.Closed,
                to: AXPSystemStatusType.Cancelled,
                title: '@order-management:bulk-buy-orders.transitions.cancel',
            },
        ];
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMBulkBuyOrderStatusProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMBulkBuyOrderStatusProvider }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMBulkBuyOrderStatusProvider, decorators: [{
            type: Injectable
        }] });

export { AXMBulkBuyOrderStatusProvider };
//# sourceMappingURL=acorex-modules-order-management-bulk-buy-order-status.provider-CT7kaIof.mjs.map
