A comprehensive numerical model for simulating two-phase flow in shale gas reservoirs with complex hydraulic and natural fractures