output "ecr_repository_url" {
  description = "ECR repository URL for the backend image"
  value       = aws_ecr_repository.backend.repository_url
}

output "alb_dns_name" {
  description = "ALB DNS name (backend API endpoint)"
  value       = aws_lb.main.dns_name
}

output "cloudfront_domain" {
  description = "CloudFront distribution domain (frontend URL)"
  value       = aws_cloudfront_distribution.frontend.domain_name
}

output "cloudfront_distribution_id" {
  description = "CloudFront distribution ID (for cache invalidation)"
  value       = aws_cloudfront_distribution.frontend.id
}

output "cloudfront_aliases" {
  description = "Custom domains attached to the CloudFront distribution"
  value       = aws_cloudfront_distribution.frontend.aliases
}

output "cloudfront_certificate_validation_records" {
  description = "DNS validation records for the CloudFront ACM certificate; create these in the external DNS provider."
  value = var.domain_name != "" ? [
    for dvo in aws_acm_certificate.cloudfront[0].domain_validation_options : {
      domain_name = dvo.domain_name
      name        = dvo.resource_record_name
      type        = dvo.resource_record_type
      value       = dvo.resource_record_value
    }
  ] : []
}

output "frontend_bucket_name" {
  description = "S3 bucket name for frontend assets"
  value       = aws_s3_bucket.frontend.id
}

# ── SES DNS Records (for manual addition to external DNS) ──

output "ses_dkim_records" {
  description = "DKIM CNAME records to add to DNS for SES domain verification"
  value = var.smtp_ses_domain != "" ? [for token in aws_ses_domain_dkim.email[0].dkim_tokens : {
    name  = "${token}._domainkey.${var.smtp_ses_domain}"
    type  = "CNAME"
    value = "${token}.dkim.amazonses.com"
  }] : []
}

output "ses_verification_token" {
  description = "TXT record for SES domain identity verification"
  value = var.smtp_ses_domain != "" ? {
    name  = "_amazonses.${var.smtp_ses_domain}"
    type  = "TXT"
    value = aws_ses_domain_identity.email[0].verification_token
  } : null
}
