import { BaseOutput } from '~/core/entities/output/baseOutput';
import { UnitRegistrationMembersAgeOutput } from '~/pages/unit/entities/output/unitRegistrationMembersAgeOutput';
import { UnitRegistrationMembersCategoryOutput } from '~/pages/unit/entities/output/unitRegistrationMembersCategoryOutput';
import { UnitRegistrationMembersUnitsOutput } from '~/pages/unit/entities/output/unitRegistrationMembersUnitsOutput';

/**
 * Class define entity for unitRegistrationMembersOutput.
 * Because it has subentity It has define handler with creator of sub entity
 * which WebApiUnitMembersService use for creating sub entities
 */
export class UnitRegistrationMembersOutput extends BaseOutput {
    /* tslint:disable */
    Units: UnitRegistrationMembersUnitsOutput[];
    MembersAge: UnitRegistrationMembersAgeOutput[];
    MembersCategory: UnitRegistrationMembersCategoryOutput[];
    handler = {
        getNewUnitRegistrationMembersUnitsOutput: () => {
            return new UnitRegistrationMembersUnitsOutput();
        },
        getNewUnitRegistrationMembersAgeOutput: () => {
            return new UnitRegistrationMembersAgeOutput();
        },
        getNewUnitRegistrationMembersCategoryOutput: () => {
            return new UnitRegistrationMembersCategoryOutput();
        }
    };


    constructor(
        units: UnitRegistrationMembersUnitsOutput[] = [],
        membersAge: UnitRegistrationMembersAgeOutput[] = [],
        membersCategory: UnitRegistrationMembersCategoryOutput[] = []
    ) {
        super();
        this.Units = units;
        this.MembersAge = membersAge;
        this.MembersCategory = membersCategory;
    }

    /* tslint:enable  */
}
