resource "octopusdeploy_lifecycle" "dev_crm" {
  description = "CRM development lifecycle"
  name        = "crm-development"

  release_retention_policy {
    quantity_to_keep    = 10
    should_keep_forever = false
    unit                = "Items"
  }

  tentacle_retention_policy {
    quantity_to_keep    = 5
    should_keep_forever = false
    unit                = "Items"
  }

  phase {
    optional_deployment_targets = [octopusdeploy_environment.dev_crm.id]
    name                        = "deploy dev"
  }
}

resource "octopusdeploy_lifecycle" "release_crm" {
  description = "CRM release lifecycle"
  name        = "crm-release"

  release_retention_policy {
    quantity_to_keep    = 0
    should_keep_forever = true
    unit                = "Items"
  }

  tentacle_retention_policy {
    quantity_to_keep    = 5
    should_keep_forever = false
    unit                = "Items"
  }

  phase {
    is_optional_phase           = true
    optional_deployment_targets = [octopusdeploy_environment.dev_crm.id]
    name                        = "deploy dev"
  }

  phase {
    optional_deployment_targets = [octopusdeploy_environment.prod_crm.id]
    name                        = "deploy prod"
  }
}

resource "octopusdeploy_lifecycle" "release_crm_microservice" {
  description = "CRM microservice release lifecycle"
  name        = "crm-release-microservice"

  release_retention_policy {
    quantity_to_keep    = 0
    should_keep_forever = true
    unit                = "Items"
  }

  tentacle_retention_policy {
    quantity_to_keep    = 5
    should_keep_forever = false
    unit                = "Items"
  }

  phase {
    is_optional_phase           = false
    optional_deployment_targets = [octopusdeploy_environment.dev_crm.id]
    name                        = "deploy dev"
  }

  phase {
    is_optional_phase           = false
    optional_deployment_targets = [octopusdeploy_environment.prod_crm.id]
    name                        = "deploy prod"
  }
}
