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

import SwiftUI

/// 宣传页顶部标题、说明文案和二维码入口。
struct ScenicPromotionHeaderView: View {
    let board: ScenicPromotionBoard
    let onQRCodeTap: () -> Void
    let onQRCodeLongPress: () -> Void

    var body: some View {
        ZStack(alignment: .topTrailing) {
            VStack(spacing: 7) {
                Text("\(board.scenicName) · 排队导览")
                    .font(.system(size: 26, weight: .heavy))
                    .foregroundStyle(Color(hex: 0x0E3F91))
                    .multilineTextAlignment(.center)
                    .minimumScaleFactor(0.72)
                    .lineLimit(1)
                    .shadow(color: .white.opacity(0.55), radius: 0, x: 0, y: 2)

                HStack(spacing: 12) {
                    Rectangle()
                        .fill(Color(hex: 0x2F80ED, alpha: 0.35))
                        .frame(width: 36, height: 1)
                    Text(board.subtitle)
                        .font(.system(size: 13, weight: .semibold))
                        .foregroundStyle(Color(hex: 0x1D5DA8))
                    Rectangle()
                        .fill(Color(hex: 0x2F80ED, alpha: 0.35))
                        .frame(width: 36, height: 1)
                }
            }
            .frame(maxWidth: .infinity)
            .padding(.top, 8)
            .padding(.horizontal, 62)

            Button(action: onQRCodeTap) {
                ScenicPromotionQRCodeView()
                    .frame(width: 56, height: 56)
                    .padding(5)
                    .background(.white, in: RoundedRectangle(cornerRadius: 9))
                    .shadow(color: Color(hex: 0x0D47A1, alpha: 0.16), radius: 10, y: 4)
            }
            .buttonStyle(.plain)
            .simultaneousGesture(
                LongPressGesture(minimumDuration: 0.7)
                    .onEnded { _ in onQRCodeLongPress() }
            )
            .accessibilityLabel("二维码设置入口")
        }
        .frame(height: 96)
    }
}

#if DEBUG
#Preview("顶部标题区") {
    ScenicPromotionHeaderView(
        board: ScenicPromotionPreviewSupport.sampleBoard,
        onQRCodeTap: {},
        onQRCodeLongPress: {}
    )
    .padding(.horizontal, 20)
    .background(ScenicPromotionSkyBackground())
}
#endif
