packages feed

hix-0.7.0: lib/Hix/Managed/Data/ProjectContextProto.hs

module Hix.Managed.Data.ProjectContextProto where

import Data.Aeson (FromJSON)

import Hix.Managed.Data.EnvConfig (EnvConfig)
import Hix.Managed.Data.Envs (Envs)
import Hix.Managed.Data.ManagedPackageProto (ManagedPackageProto)
import Hix.Managed.Data.Packages (Packages)
import Hix.Managed.Data.ProjectStateProto (ProjectStateProto)
import Hix.Managed.Handlers.Build (BuildOutputsPrefix)

data ProjectContextProto =
  ProjectContextProto {
    packages :: Packages ManagedPackageProto,
    state :: ProjectStateProto,
    envs :: Envs EnvConfig,
    buildOutputsPrefix :: Maybe BuildOutputsPrefix
  }
  deriving stock (Eq, Show, Generic)
  deriving anyclass (FromJSON)

instance Default ProjectContextProto where
  def =
    ProjectContextProto {
      packages = mempty,
      state = def,
      envs = mempty,
      buildOutputsPrefix = Nothing
    }