Switching a relay on and off using "millis()" without interfering with the runtime of the other piece of code

It still gives a compilation error.

void relay( void ) 
{
    uint8_t
        **stateRelay = RLY_IDLE;**
    static uint32_t
        timeRelay;
    uint32_t
        timeNow = millis();
        
    switch( stateRelay )
    {
        case    RLY_IDLE:
            //waiting for flag to indicate relay sequence
            if( bRelay == true )
            {                
                timeRelay = timeNow;
                stateRelay = RLY_ON;
                
            }//if
            
        break;

        case    RLY_DELAY:
            //delay before turning the relay on
            if( millis() - timeRelay >= K_RELAY_DELAY_TIME )
            {
                digitalWrite( relay2, LOW );   //relay on 
                timeRelay = timeNow;
                stateRelay = RLY_HOLD;
                    
            }//if
            
        break;

        case    RLY_HOLD:
            //relay on-timing
            if( millis() - timeRelay >= K_RELAY_HOLD_TIME )
            {
                digitalWrite( relay2, HIGH );    
                bRelay = false;
                stateRelay = RLY_IDLE;
                    
            }//if
        
        break;
                
    }//switch

}//relay

"RLY_IDLE" was not declared in this scope