<%= render DS::Dialog.new(frame: "drawer", responsive: true) do |dialog| %>
  <% dialog.with_header(custom_header: true) do %>
    <div class="relative">
      <div class="absolute right-0 top-0 z-10">
        <%= dialog.close_button %>
      </div>
      <%= render "trades/header", entry: @entry %>
    </div>
  <% end %>
  <% trade = @entry.trade %>
  <% dialog.with_body do %>
    <%= render "entries/protection_indicator", entry: @entry, unlock_path: unlock_trade_path(trade) %>
    <% if trade.security&.provider_status == :provider_unavailable %>
      <div class="px-3 py-2">
        <%= render DS::Alert.new(
          message: t(".provider_disabled_warning", provider: trade.security.price_provider&.humanize || "Unknown"),
          variant: :warning
        ) %>
      </div>
    <% end %>
    <% dialog.with_section(title: t(".details"), open: true) do %>
      <div class="pb-4">
        <%= styled_form_with model: @entry,
              url: trade_path(@entry),
              class: "space-y-2",
              data: { controller: "auto-submit-form" } do |f| %>
          <%= f.date_field :date,
                label: t(".date_label"),
                max: Date.current,
                disabled: @entry.linked?,
                "data-auto-submit-form-target": "auto" %>
          <% if trade.qty.zero? %>
            <%= f.money_field :amount,
                  label: t(".amount_label"),
                  value: @entry.amount_money.abs,
                  auto_submit: true,
                  min: 0,
                  step: "any",
                  disabled: @entry.linked? %>
          <% end %>
          <% unless trade.qty.zero? %>
            <div class="flex items-center gap-2">
              <%= f.select :nature,
                            [[t(".buy"), "outflow"], [t(".sell"), "inflow"]],
                            { container_class: "w-1/3", label: t(".type_label"), selected: @entry.amount.positive? ? "outflow" : "inflow" },
                            { data: { "auto-submit-form-target": "auto" }, disabled: @entry.linked? } %>
              <%= f.fields_for :entryable do |ef| %>
                <%= ef.number_field :qty,
                    label: t(".quantity_label"),
                    step: "any",
                    value: trade.qty.abs,
                    "data-auto-submit-form-target": "auto",
                    disabled: @entry.linked? %>
              <% end %>
            </div>
            <%= f.fields_for :entryable do |ef| %>
              <%= ef.money_field :price,
                    label: t(".cost_per_share_label"),
                    disable_currency: true,
                    auto_submit: true,
                    min: 0,
                    step: "any",
                    disabled: @entry.linked? %>
            <% end %>
            <%= f.fields_for :entryable do |ef| %>
              <%= ef.money_field :fee,
                    label: t(".fee_label"),
                    disable_currency: true,
                    auto_submit: true,
                    min: 0,
                    step: "any",
                    disabled: @entry.linked? %>
            <% end %>
          <% end %>
        <% end %>
      </div>
    <% end %>
    <% dialog.with_section(title: t(".additional")) do %>
      <div class="pb-4">
        <%= styled_form_with model: @entry,
              url: trade_path(@entry),
              class: "space-y-2",
              data: { controller: "auto-submit-form" } do |f| %>
          <%= f.text_area :notes,
                label: t(".note_label"),
                placeholder: t(".note_placeholder"),
                rows: 5,
                "data-auto-submit-form-target": "auto" %>
        <% end %>
      </div>
    <% end %>
    <% dialog.with_section(title: t(".settings")) do %>
      <div class="pb-4">
        <!-- Exclude Trade Form -->
        <%= styled_form_with model: @entry,
              url: trade_path(@entry),
              class: "p-3",
              data: { controller: "auto-submit-form" } do |f| %>
          <div class="flex cursor-pointer items-center gap-2 justify-between">
            <div class="text-sm space-y-1">
              <h4 class="text-primary"><%= t(".exclude_title") %></h4>
              <p class="text-secondary"><%= t(".exclude_subtitle") %></p>
            </div>
            <%= f.toggle :excluded, { data: { auto_submit_form_target: "auto" } } %>
          </div>
        <% end %>
        <!-- Delete Trade Form -->
        <div class="flex items-center justify-between gap-2 p-3">
          <div class="text-sm space-y-1">
            <h4 class="text-primary"><%= t(".delete_title") %></h4>
            <p class="text-secondary"><%= t(".delete_subtitle") %></p>
          </div>
          <%= button_to t(".delete"),
                entry_path(@entry),
                method: :delete,
                class:  "rounded-lg px-3 py-2 text-red-500 text-sm
                         font-medium border border-secondary",
                data:   { turbo_confirm: true } %>
        </div>
      </div>
    <% end %>
  <% end %>
<% end %>
