title: sequelize not returning a graphql type
body: <p>I am following multiple tutorials on the internet and most of them use this implementation where the resolver query method returns a promise where its return type is a graphql typescript generated type. The sequelize returns a different type which is commented in the 2nd snippet.</p>
  <p>booking type</p>
  <pre><code>(alias) type Booking = {
      __typename?: &quot;Booking&quot; | undefined;
      addressId: Scalars['Int'];
      createdAt: Scalars['String'];
      eventId: Scalars['Int'];
      id: Scalars['ID'];
      totalPrice: Scalars['Float'];
      userId: Scalars['Int'];
  }
  </code></pre>
  <pre><code>import Booking
  
  export const BookingsResolvers: IResolvers = {
      Query: {
          async bookings(): Promise&lt;Booking[]&gt; {
              return await BookingModel.findAll(); // the return is not Promise&lt;Booking[]&gt;
          },
      }
  };
  
  // when I hover on BookingModel.findAll()
  // (method) findAll&lt;Model&lt;BookingAttributes, null&gt;&gt;(this: ModelStatic&lt;Model&lt;BookingAttributes, // null&gt;&gt;, options?: FindOptions&lt;BookingAttributes&gt; | undefined): Promise&lt;...&gt;
  </code></pre>
  <pre><code>Type 'Model&lt;BookingAttributes, null&gt;[]' is not assignable to type 'Booking[]'.
    Type 'Model&lt;BookingAttributes, null&gt;' is missing the following properties from type 'Booking': addressId, createdAt, eventId, id, and 2 more.
  </code></pre>
  <p>when</p>
  <pre><code>Query: {
          async bookings(): Promise&lt;Model&lt;BookingAttributes, null&gt;[]&gt; {
              return await BookingModel.findAll();
          },
      },
  </code></pre>
  <p>error having <code>null</code></p>
  <pre><code>Type 'null' does not satisfy the constraint '{}'.
  </code></pre>
  <p>Booking model definition</p>
  <pre><code>import { DataTypes, ModelDefined, Sequelize } from 'sequelize';
  
  // You can also define modules in a functional way
  export interface BookingAttributes {
      id: number;
      totalPrice: number;
      addressId: number;
      userId: number;
      eventId: number;
      createdAt: Date;
      updatedAt: Date;
  }
  
  export default (sequelize: any): ModelDefined&lt;BookingAttributes, null&gt; =&gt; {
      const Booking: ModelDefined&lt;BookingAttributes, null&gt; = sequelize.define(
          'booking',
          {
              id: {
                  type: DataTypes.INTEGER,
                  allowNull: false,
                  primaryKey: true,
                  autoIncrement: true,
              },
              totalPrice: {
                  type: DataTypes.DECIMAL(10, 2),
                  allowNull: false,
              },
              createdAt: {
                  type: DataTypes.DATE(6),
                  allowNull: false,
                  defaultValue: new Date(),
              },
              updatedAt: {
                  type: DataTypes.DATE(6),
                  allowNull: false,
                  defaultValue: new Date(),
              },
          },
          { tableName: 'bookings', timestamps: true },
      );
  
      return Booking;
  };
  
  </code></pre>