cabal-version:      2.4
name:               openai
version:            1.0.0
synopsis:           Servant bindings to OpenAI
description:        This package provides comprehensive and type-safe bindings
                    to OpenAI using Servant
license:            BSD-3-Clause
license-file:       LICENSE
author:             Gabriella Gonzalez
maintainer:         GenuineGabriella@gmail.com
copyright:          2024 Gabriella Gonzalez
build-type:         Simple
extra-source-files: CHANGELOG.md

library
    default-language:   Haskell2010
    hs-source-dirs:     src
    build-depends:      base >=4.15.0.0 && < 5
                      , aeson
                      , bytestring
                      , containers
                      , filepath
                      , http-api-data
                      , http-client-tls
                      , servant
                      , servant-multipart-api
                      , servant-client
                      , servant-multipart-client
                      , text
                      , time
                      , vector
    exposed-modules:    OpenAI.V1
                        OpenAI.V1.Assistants
                        OpenAI.V1.Audio
                        OpenAI.V1.Audio.Speech
                        OpenAI.V1.Audio.Transcriptions
                        OpenAI.V1.Audio.Translations
                        OpenAI.V1.AutoOr
                        OpenAI.V1.Batches
                        OpenAI.V1.Chat.Completions
                        OpenAI.V1.ChunkingStrategy
                        OpenAI.V1.DeletionStatus
                        OpenAI.V1.Embeddings
                        OpenAI.V1.Error
                        OpenAI.V1.Files
                        OpenAI.V1.FineTuning.Jobs
                        OpenAI.V1.Images
                        OpenAI.V1.Images.Edits
                        OpenAI.V1.Images.Generations
                        OpenAI.V1.Images.Image
                        OpenAI.V1.Images.ResponseFormat
                        OpenAI.V1.Images.Variations
                        OpenAI.V1.ListOf
                        OpenAI.V1.Message
                        OpenAI.V1.Models
                        OpenAI.V1.Moderations
                        OpenAI.V1.Order
                        OpenAI.V1.ResponseFormat
                        OpenAI.V1.Threads
                        OpenAI.V1.Threads.Messages
                        OpenAI.V1.Threads.Runs
                        OpenAI.V1.Threads.Runs.Steps
                        OpenAI.V1.Tool
                        OpenAI.V1.ToolCall
                        OpenAI.V1.ToolResources
                        OpenAI.V1.Uploads
                        OpenAI.V1.Usage
                        OpenAI.V1.VectorStores
                        OpenAI.V1.VectorStores.FileCounts
                        OpenAI.V1.VectorStores.Files
                        OpenAI.V1.VectorStores.FileBatches
                        OpenAI.V1.VectorStores.Status
    other-modules:      OpenAI.Prelude
    default-extensions: DataKinds
                      , DeriveAnyClass
                      , DeriveGeneric
                      , DerivingStrategies
                      , DuplicateRecordFields
                      , FlexibleInstances
                      , GeneralizedNewtypeDeriving
                      , OverloadedLists
                      , OverloadedStrings
                      , RecordWildCards
                      , MultiParamTypeClasses
                      , NamedFieldPuns
                      , TypeApplications
                      , TypeOperators
                      , ViewPatterns
    ghc-options:        -Wall -Wno-missing-fields

test-suite tasty
    default-language: Haskell2010
    type:             exitcode-stdio-1.0
    hs-source-dirs:   tasty
    main-is:          Main.hs
    build-depends:    base
                    , aeson
                    , http-client
                    , http-client-tls
                    , openai
                    , servant-client
                    , tasty
                    , tasty-hunit
                    , text
    ghc-options:      -Wall

executable openai-example
    default-language: Haskell2010
    hs-source-dirs:   openai-example
    main-is:          Main.hs
    build-depends:    base
                    , openai
                    , text
    ghc-options:      -Wall