import SwiftUI

struct SettingsView: View {
    @ObservedObject var viewModel: LoginViewModel
    @AppStorage("isDarkMode") private var isDarkMode: Bool = true

    var body: some View {
        Form {
            // MARK: - Профиль
            Section(header: Text("Профиль")) {
                NavigationLink(destination: EditProfileView()) {
                    Label("Мой профиль", systemImage: "person.crop.circle")
                }
            }

            // MARK: - Безопасность
            Section(header: Text("Безопасность")) {
                NavigationLink(destination: Text("Заглушка: Сменить пароль")) {
                    Label("Сменить пароль", systemImage: "key")
                }
                NavigationLink(destination: Text("Заглушка: Двухфакторная аутентификация")) {
                    Label("Двухфакторная аутентификация", systemImage: "lock.shield")
                }
                NavigationLink(destination: Text("Заглушка: Активные сессии")) {
                    Label("Активные сессии", systemImage: "iphone")
                }
            }

            // MARK: - Приложение
            Section(header: Text("Приложение")) {
                Button(action: openLanguageSettings) {
                    Label("Язык", systemImage: "globe")
                }

                Toggle(isOn: $isDarkMode) {
                    Label("Тёмная тема", systemImage: "moon.fill")
                }

                NavigationLink(destination: Text("Заглушка: Хранилище данных")) {
                    Label("Данные", systemImage: "externaldrive")
                }

                NavigationLink(destination: Text("Заглушка: Другие настройки")) {
                    Label("Другое", systemImage: "ellipsis.circle")
                }
            }

            // MARK: - Уведомления
            Section(header: Text("Уведомления")) {
                NavigationLink(destination: Text("Заглушка: Push-уведомления")) {
                    Label("Push-уведомления", systemImage: "bell")
                }
            }

            // MARK: - Поддержка
            Section(header: Text("Поддержка")) {
                NavigationLink(destination: Text("Заглушка: Частые вопросы")) {
                    Label("Частые вопросы", systemImage: "questionmark.circle")
                }
                NavigationLink(destination: Text("Заглушка: Обратная связь")) {
                    Label("Обратная связь", systemImage: "paperplane")
                }
            }

            // MARK: - О приложении
            Section(header: Text("О приложении")) {
                VStack(alignment: .leading, spacing: 6) {
                    Text(AppInfo.text_1)
                    Text(AppInfo.text_2)
                    Text(AppInfo.text_3)
                }
                .font(.footnote)
                .foregroundColor(.gray)
                .padding(.vertical, 4)
            }

            // MARK: - Выход
            Section {
                Button(action: {
                    viewModel.logoutCurrentUser()
                }) {
                    HStack {
                        Image(systemName: "arrow.backward.square")
                        Text("Выйти из аккаунта")
                    }
                    .foregroundColor(.red)
                }
            }
        }
        .navigationTitle("Настройки")
    }
    
    private func openLanguageSettings() {
        guard let url = URL(string: UIApplication.openSettingsURLString) else { return }
        UIApplication.shared.open(url)
    }

}
