# frozen_string_literal: true module Types module DesignManagement class DesignCollectionType < ::Types::BaseObject graphql_name 'DesignCollection' description 'A collection of designs' authorize :read_design field :project, Types::ProjectType, null: false, description: 'Project associated with the design collection' field :issue, Types::IssueType, null: false, description: 'Issue associated with the design collection' field :designs, Types::DesignManagement::DesignType.connection_type, null: false, resolver: Resolvers::DesignManagement::DesignsResolver, description: 'All designs for the design collection', complexity: 5 field :versions, Types::DesignManagement::VersionType.connection_type, resolver: Resolvers::DesignManagement::VersionsResolver, description: 'All versions related to all designs, ordered newest first' field :version, Types::DesignManagement::VersionType, resolver: Resolvers::DesignManagement::VersionsResolver.single, description: 'A specific version' field :design_at_version, ::Types::DesignManagement::DesignAtVersionType, null: true, resolver: ::Resolvers::DesignManagement::DesignAtVersionResolver, description: 'Find a design as of a version' field :design, ::Types::DesignManagement::DesignType, null: true, resolver: ::Resolvers::DesignManagement::DesignResolver, description: 'Find a specific design' field :copy_state, ::Types::DesignManagement::DesignCollectionCopyStateEnum, null: true, description: 'Copy state of the design collection' end end end