packages feed

hercules-ci-api-0.8.2.0: src/Hercules/API/Projects/JobHandlers/OnScheduleHandler.hs

{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingStrategies #-}

module Hercules.API.Projects.JobHandlers.OnScheduleHandler
  ( OnScheduleHandler (..),
    TimeConstraints (..),
  )
where

import Data.OpenApi qualified as O3
import Hercules.API.DayOfWeek (DayOfWeek)
import Hercules.API.Prelude

data OnScheduleHandler = OnScheduleHandler
  { name :: Text,
    isFlake :: Bool,
    when :: TimeConstraints,
    mainExists :: Bool
  }
  deriving (Generic, Show, Eq)
  deriving anyclass (NFData, ToJSON, FromJSON, ToSchema, O3.ToSchema)

data TimeConstraints = TimeConstraints
  { minute :: Int,
    hour :: [Int],
    dayOfWeek :: Maybe [DayOfWeek],
    dayOfMonth :: Maybe [Int]
  }
  deriving (Generic, Show, Eq)
  deriving anyclass (NFData, ToJSON, FromJSON, ToSchema, O3.ToSchema)