diff options
Diffstat (limited to 'app/graphql/types/customer_relations')
-rw-r--r-- | app/graphql/types/customer_relations/contact_type.rb | 55 | ||||
-rw-r--r-- | app/graphql/types/customer_relations/organization_type.rb | 41 |
2 files changed, 96 insertions, 0 deletions
diff --git a/app/graphql/types/customer_relations/contact_type.rb b/app/graphql/types/customer_relations/contact_type.rb new file mode 100644 index 00000000000..35b5bf45698 --- /dev/null +++ b/app/graphql/types/customer_relations/contact_type.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +module Types + module CustomerRelations + class ContactType < BaseObject + graphql_name 'CustomerRelationsContact' + + authorize :read_contact + + field :id, + GraphQL::Types::ID, + null: false, + description: 'Internal ID of the contact.' + + field :organization, Types::CustomerRelations::OrganizationType, + null: true, + description: "Organization of the contact." + + field :first_name, + GraphQL::Types::String, + null: false, + description: 'First name of the contact.' + + field :last_name, + GraphQL::Types::String, + null: false, + description: 'Last name of the contact.' + + field :phone, + GraphQL::Types::String, + null: true, + description: 'Phone number of the contact.' + + field :email, + GraphQL::Types::String, + null: true, + description: 'Email address of the contact.' + + field :description, + GraphQL::Types::String, + null: true, + description: 'Description or notes for the contact.' + + field :created_at, + Types::TimeType, + null: false, + description: 'Timestamp the contact was created.' + + field :updated_at, + Types::TimeType, + null: false, + description: 'Timestamp the contact was last updated.' + end + end +end diff --git a/app/graphql/types/customer_relations/organization_type.rb b/app/graphql/types/customer_relations/organization_type.rb new file mode 100644 index 00000000000..0e091d4a9a3 --- /dev/null +++ b/app/graphql/types/customer_relations/organization_type.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +module Types + module CustomerRelations + class OrganizationType < BaseObject + graphql_name 'CustomerRelationsOrganization' + + authorize :read_organization + + field :id, + GraphQL::Types::ID, + null: false, + description: 'Internal ID of the organization.' + + field :name, + GraphQL::Types::String, + null: false, + description: 'Name of the organization.' + + field :default_rate, + GraphQL::Types::Float, + null: true, + description: 'Standard billing rate for the organization.' + + field :description, + GraphQL::Types::String, + null: true, + description: 'Description or notes for the organization.' + + field :created_at, + Types::TimeType, + null: false, + description: 'Timestamp the organization was created.' + + field :updated_at, + Types::TimeType, + null: false, + description: 'Timestamp the organization was last updated.' + end + end +end |