---
- name: "Include role srv-proxy-6-6-domain for {{ application_id }}"
  include_role:
    name: srv-proxy-6-6-domain
  loop: "{{ wordpress_domains }}"
  loop_control:
    loop_var: domain
  vars:
    proxy_extra_configuration: "client_max_body_size {{ wordpress_max_upload_size }};"
    http_port: "{{ ports.localhost.http[application_id] }}"

- name: "load docker and db for {{ application_id }}"
  include_role: 
    name: cmp-db-docker
  vars:
    docker_compose_flush_handlers: false

- name: "Transfering upload.ini to {{ docker_compose.directories.instance }}"
  template:
    src: upload.ini.j2
    dest: "{{ docker_compose.directories.instance }}upload.ini"
  notify: docker compose up

- name: "Transfering msmtprc to {{ host_msmtp_conf }}"
  template:
    src: "{{ playbook_dir }}/roles/sys-svc-msmtp/templates/msmtprc.conf.j2"
    dest: "{{ host_msmtp_conf }}"
  notify: docker compose up

- name: Flush handlers to make {{ wordpress_config_file }} available before patch
  meta: flush_handlers

- name: Check if {{ wordpress_config_file }} exists in WordPress
  command: docker exec -u {{ wordpress_user }} {{ wordpress_container }} test -f {{ wordpress_config_path }}
  register: wp_config_file_exists
  changed_when: false
  failed_when: false

- name: Patch WordPress {{ wordpress_config_file }} with updated DB credentials
  include_tasks: 01_patch_config.yml
  when: wp_config_file_exists.rc == 0

- name: "Install wordpress"
  include_tasks: 02_install.yml

- name: "Install and activate WordPress plugins"
  block:
    - name: "Iterate through WordPress plugins"
      include_tasks: 03_enable_plugin.yml
      loop: "{{ wordpress_plugins }}"
      loop_control:
        label: "{{ item.key }}"
      vars:
        plugin_name: "{{ item.key }}"
        plugin_enabled: "{{ item.value.enabled | bool }}"
        plugin_task_path: "{{ role_path }}/tasks/plugins/{{ plugin_name }}/install.yml"
      when: plugin_enabled

- name: Detect if WordPress is Multisite
  command: >
    docker exec -u {{ wordpress_user }} {{ wordpress_container }}
    wp eval 'echo (int) is_multisite();' --path={{ wordpress_docker_html_path }}
  register: wp_is_multisite
  changed_when: false

- name: "Update Single Side Wordpress domain"
  include_tasks: 04_update_domain.yml
  when: (wp_is_multisite.stdout | trim) == '0'
  vars:
    # Target URL to switch to (uses your helper)
    wp_new_url: "{{ domains | get_url(application_id, WEB_PROTOCOL) }}"
  
