//
//  ScenicPromotionSettingsQueueBindingCard.swift
//  suixinkan
//
//  Created by Codex on 2026/7/2.
//

import SwiftUI

/// 设置页排队打卡点绑定卡片，支持多选。
struct ScenicPromotionSettingsQueueBindingCard: View {
    @ObservedObject var viewModel: ScenicPromotionSettingsViewModel

    var body: some View {
        ScenicPromotionSettingsCard(
            title: "排队打卡点绑定",
            subtitle: "可多选，用于宣传页展示排队动态",
            icon: "checklist.checked",
            tint: AppDesign.primary
        ) {
            Menu {
                ForEach(viewModel.queuePoints) { point in
                    Button {
                        viewModel.toggleQueuePoint(point)
                    } label: {
                        Label(
                            "\(point.name) · \(point.areaName)",
                            systemImage: viewModel.selectedQueuePointIDs.contains(point.id) ? "checkmark.circle.fill" : "circle"
                        )
                    }
                }
            } label: {
                ScenicPromotionSettingsSelectionField(
                    title: viewModel.selectedQueuePointNames,
                    subtitle: "\(viewModel.selectedQueuePointIDs.count) 个已选择",
                    icon: "chevron.down"
                )
            }
            .buttonStyle(.plain)

            if viewModel.selectedQueuePointIDs.isEmpty {
                ScenicPromotionSettingsInlineNotice(
                    text: "提交前至少选择一个排队打卡点",
                    tint: AppDesign.warning
                )
            }
        }
    }
}

#if DEBUG
#Preview("排队绑定卡片") {
    ScenicPromotionSettingsQueueBindingCard(
        viewModel: ScenicPromotionPreviewSupport.settingsViewModel()
    )
    .padding()
    .background(AppDesign.background)
}
#endif
