terraform {
  required_version = ">= 1.10"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }

  backend "s3" {}
}

provider "aws" {
  region = var.aws_region

  default_tags {
    tags = {
      Project     = "nexuscrm"
      ManagedBy   = "terraform"
      Environment = var.environment
    }
  }
}

# CloudFront custom domains require ACM certificates in us-east-1
# regardless of the workload region.
provider "aws" {
  alias  = "us_east_1"
  region = "us-east-1"

  default_tags {
    tags = {
      Project     = "nexuscrm"
      ManagedBy   = "terraform"
      Environment = var.environment
    }
  }
}

locals {
  name_prefix         = "nexuscrm-${var.environment}"
  file_storage_region = var.file_storage_region != "" ? var.file_storage_region : var.aws_region
  frontend_domain     = var.domain_name != "" ? var.domain_name : aws_cloudfront_distribution.frontend.domain_name
  frontend_base_url   = "https://${local.frontend_domain}"
}
