@@ -160,6 +160,8 @@ def __init__(
160160        extra_sqlalchemy_type_to_strawberry_type_map : Optional [
161161            Mapping [Type [TypeEngine ], Type [Any ]]
162162        ] =  None ,
163+         edge_type : Optional [Type ] =  None ,
164+         connection_type : Optional [Type ] =  None ,
163165    ) ->  None :
164166        if  model_to_type_name  is  None :
165167            model_to_type_name  =  self ._default_model_to_type_name 
@@ -181,6 +183,9 @@ def __init__(
181183        self ._related_type_models  =  set ()
182184        self ._related_interface_models  =  set ()
183185
186+         self .edge_type  =  edge_type 
187+         self .connection_type  =  connection_type 
188+ 
184189    @staticmethod  
185190    def  _default_model_to_type_name (model : Type [BaseModelType ]) ->  str :
186191        return  model .__name__ 
@@ -220,6 +225,8 @@ def _edge_type_for(self, type_name: str) -> Type[Any]:
220225        Get or create a corresponding Edge model for the given type 
221226        (to support future pagination) 
222227        """ 
228+         if  self .edge_type  is  not   None :
229+             return  self .edge_type 
223230        edge_name  =  f"{ type_name }  Edge" 
224231        if  edge_name  not  in   self .edge_types :
225232            self .edge_types [edge_name ] =  edge_type  =  strawberry .type (
@@ -238,6 +245,8 @@ def _connection_type_for(self, type_name: str) -> Type[Any]:
238245        Get or create a corresponding Connection model for the given type 
239246        (to support future pagination) 
240247        """ 
248+         if  self .connection_type  is  not   None :
249+             return  self .connection_type [ForwardRef (type_name )]
241250        connection_name  =  f"{ type_name }  Connection" 
242251        if  connection_name  not  in   self .connection_types :
243252            self .connection_types [connection_name ] =  connection_type  =  strawberry .type (
@@ -269,6 +278,8 @@ def _convert_column_to_strawberry_type(
269278        """ 
270279        if  isinstance (column .type , Enum ):
271280            type_annotation  =  column .type .python_type 
281+             if  not  hasattr (column .type , "_enum_definition" ):
282+                 type_annotation  =  strawberry .enum (type_annotation )
272283        elif  isinstance (column .type , ARRAY ):
273284            item_type  =  self ._convert_column_to_strawberry_type (
274285                Column (column .type .item_type , nullable = False )
0 commit comments