export interface IFinancialPeriod {
    id: number;
    name: string;
    isActive: boolean;
}

export class FinancialPeriod {
    constructor(
        public id: number,
        public name: string,
        public isActive: boolean,
    ) { }


    static deserialize = (json: IFinancialPeriod[]): FinancialPeriod[] => {
        if (json && json.length) {
            let isAnyActive = false;
            return json.map((financialPeriod, index) => {
                const newData = new FinancialPeriod(financialPeriod.id, financialPeriod.name, financialPeriod.isActive);

                if (newData.isActive) {
                    isAnyActive = true;
                }

                if (!isAnyActive && index === json.length - 1) {
                    newData.isActive = true;
                }

                return newData;
            });
        }
        return [];
    }
}
