terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "prod/prs-toolkit/fivetran/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

data "fivetran_group" "prod_warehouse" {
    id = "gentry_invitro"
}

data "aws_rds_cluster" "rds_cluster" {
  cluster_identifier = "${var.environment}-prs-toolkit"
}

resource "fivetran_connector" "rds_cluster_connector" {
  group_id = data.fivetran_group.prod_warehouse.id
  service  = "aurora"

  destination_schema {
    prefix = "ppb_collections"
  }

  config {
    host             = "prod-prs-toolkit-db.theorchard.io"
    port             = "3306"
    user             = "fivetran"
    database         = "ppb_collections"
    tunnel_host      = "fivetran.theorchard.io"
    tunnel_port      = "2222"
    tunnel_user      = "fivetran"
  }
}

resource "fivetran_connector_schedule" "rds_cluster_schedule" {
  connector_id      = fivetran_connector.rds_cluster_connector.id
  sync_frequency    = 15
  pause_after_trial = false
}

resource "fivetran_connector_schema_config" "rds_cluster_schema_config" {
  connector_id           = fivetran_connector.rds_cluster_connector.id
  schema_change_handling = "BLOCK_ALL"
  schemas = {
    ppb_collections = {
      enabled = true
      tables = { for table in var.tables_to_sync_to_snowflake : table => {
        enabled = true
      } }
    }
  }
}
