# ===============================================
# MAIL
# ===============================================

extend type Query {
  mail: MailQuery
}

extend type Mutation {
  mail: MailMutation
}

# -----------------------------------------------
# QUERIES
# -----------------------------------------------

type MailQuery {
  config: MailConfig @auth(requires: ["manage:system"])
}

# -----------------------------------------------
# MUTATIONS
# -----------------------------------------------

type MailMutation {
  sendTest(
    recipientEmail: String!
  ): DefaultResponse @auth(requires: ["manage:system"])

  updateConfig(
    senderName: String!
    senderEmail: String!
    host: String!
    port: Int!
    secure: Boolean!
    verifySSL: Boolean!
    user: String!
    pass: String!
    useDKIM: Boolean!
    dkimDomainName: String!
    dkimKeySelector: String!
    dkimPrivateKey: String!
  ): DefaultResponse @auth(requires: ["manage:system"])
}

# -----------------------------------------------
# TYPES
# -----------------------------------------------

type MailConfig {
  senderName: String!
  senderEmail: String!
  host: String!
  port: Int!
  secure: Boolean!
  verifySSL: Boolean!
  user: String!
  pass: String!
  useDKIM: Boolean!
  dkimDomainName: String!
  dkimKeySelector: String!
  dkimPrivateKey: String!
}
