content: {-
     FinFeedAPI SEC REST API
  
     No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  
     OpenAPI Version: 3.0.4
     FinFeedAPI SEC REST API API version: v1
     Contact: support@apibricks.io
     Generated by OpenAPI Generator (https://openapi-generator.tech)
  -}
  
  {-|
  Module : FinFeedAPISECREST.API.FullTextSearch
  -}
  
  {-# LANGUAGE FlexibleContexts #-}
  {-# LANGUAGE FlexibleInstances #-}
  {-# LANGUAGE MonoLocalBinds #-}
  {-# LANGUAGE MultiParamTypeClasses #-}
  {-# LANGUAGE OverloadedStrings #-}
  {-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}
  
  module FinFeedAPISECREST.API.FullTextSearch where
  
  import FinFeedAPISECREST.Core
  import FinFeedAPISECREST.MimeTypes
  import FinFeedAPISECREST.Model as M
  
  import qualified Data.Aeson as A
  import qualified Data.ByteString as B
  import qualified Data.ByteString.Lazy as BL
  import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)
  import qualified Data.Foldable as P
  import qualified Data.Map as Map
  import qualified Data.Maybe as P
  import qualified Data.Proxy as P (Proxy(..))
  import qualified Data.Set as Set
  import qualified Data.String as P
  import qualified Data.Text as T
  import qualified Data.Text.Encoding as T
  import qualified Data.Text.Lazy as TL
  import qualified Data.Text.Lazy.Encoding as TL
  import qualified Data.Time as TI
  import qualified Network.HTTP.Client.MultipartFormData as NH
  import qualified Network.HTTP.Media as ME
  import qualified Network.HTTP.Types as NH
  import qualified Web.FormUrlEncoded as WH
  import qualified Web.HttpApiData as WH
  
  import Data.Text (Text)
  import GHC.Base ((<|>))
  
  import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)
  import qualified Prelude as P
  
  -- * Operations
  
  
  -- ** FullTextSearch
  
  -- *** v1FullTextGet
  
  -- | @GET \/v1\/full-text@
  -- 
  -- Full-text search of SEC filing documents
  -- 
  -- Search across SEC filing documents with advanced filtering and sorting capabilities.  ### Available Sort Fields  Field Name | Description -----------|------------- AccessionNumber | SEC filing accession number FormType | Type of the filing document FilingDate | Date when filing was submitted CompanyName | Name of the company CIK | Central Index Key DocumentFilename | Name of the filing document DocumentDescription | Description of the document  ### Search Options  Option | Description --------|------------- text_contains | Keywords that must appear in the document text_not_contain | Keywords that must not appear in the document  ### Date Format All dates must be provided in YYYY-MM-DD format  :::tip Use text_contains and text_not_contain with multiple keywords separated by commas for more precise searches :::  :::note The search is case-insensitive and supports partial word matches :::
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1FullTextGet
    :: FinFeedAPISECRESTRequest V1FullTextGet MimeNoContent [DTOSecFilingResultDto] MimeJSON
  v1FullTextGet =
    _mkRequest "GET" ["/v1/full-text"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
  
  data V1FullTextGet  
  
  -- | /Optional Param/ "form_type" - Filter by form type (e.g., \"10-K\", \"8-K\"). Multiple values can be comma-separated
  instance HasOptionalParam V1FullTextGet FormType where
    applyOptionalParam req (FormType xs) =
      req `addQuery` toQuery ("form_type", Just xs)
  
  -- | /Optional Param/ "filling_date_start" - Filter by filling date start (inclusive), format YYYY-MM-DD
  instance HasOptionalParam V1FullTextGet FillingDateStart where
    applyOptionalParam req (FillingDateStart xs) =
      req `addQuery` toQuery ("filling_date_start", Just xs)
  
  -- | /Optional Param/ "filling_date_end" - Filter by filling date end (inclusive), format YYYY-MM-DD
  instance HasOptionalParam V1FullTextGet FillingDateEnd where
    applyOptionalParam req (FillingDateEnd xs) =
      req `addQuery` toQuery ("filling_date_end", Just xs)
  
  -- | /Optional Param/ "text_contains" - Keywords that the text must contain. Multiple values can be comma-separated
  instance HasOptionalParam V1FullTextGet TextContains where
    applyOptionalParam req (TextContains xs) =
      req `addQuery` toQuery ("text_contains", Just xs)
  
  -- | /Optional Param/ "text_not_contain" - Keywords that the text must not contain. Multiple values can be comma-separated
  instance HasOptionalParam V1FullTextGet TextNotContain where
    applyOptionalParam req (TextNotContain xs) =
      req `addQuery` toQuery ("text_not_contain", Just xs)
  
  -- | /Optional Param/ "page_size" - Number of results per page (default: 100)
  instance HasOptionalParam V1FullTextGet PageSize where
    applyOptionalParam req (PageSize xs) =
      req `addQuery` toQuery ("page_size", Just xs)
  
  -- | /Optional Param/ "page_number" - Page number to retrieve (default: 1)
  instance HasOptionalParam V1FullTextGet PageNumber where
    applyOptionalParam req (PageNumber xs) =
      req `addQuery` toQuery ("page_number", Just xs)
  
  -- | /Optional Param/ "sort_by" - Field to sort by (default: AccessionNumber)
  instance HasOptionalParam V1FullTextGet SortByText where
    applyOptionalParam req (SortByText xs) =
      req `addQuery` toQuery ("sort_by", Just xs)
  
  -- | /Optional Param/ "sort_order" - Sort order (asc or desc). Defaults to asc
  instance HasOptionalParam V1FullTextGet SortOrder where
    applyOptionalParam req (SortOrder xs) =
      req `addQuery` toQuery ("sort_order", Just xs)
  -- | @application/json@
  instance Produces V1FullTextGet MimeJSON
  
  