import Foundation

/// Type-safe localization helper.
/// Usage: L10n.checkBalance  →  returns localized String automatically
/// Works in both UIKit (as String) and SwiftUI (via Text(L10n.xxx))
enum L10n {

    // MARK: - Home

    static var availableBalance: String  { s("availableBalance") }
    static var cardTapInstruction: String { s("cardTapInstruction") }
    static var cardTypeDefault: String   { s("cardTypeDefault") }
    static var tapCardHere: String       { s("tapCardHere") }
    static var tapCardHint: String       { s("tapCardHint") }
    static var checkBalance: String      { s("checkBalance") }
    static var lastTransaction: String   { s("lastTransaction") }
    static var viewFullHistory: String   { s("viewFullHistory") }
    static var copiedToClipboard: String { s("copiedToClipboard") }
    static var transactionDefault: String { s("transactionDefault") }
    static var transactionStatusSuccess: String { s("transactionStatusSuccess") }
    static var noCard: String            { s("noCard") }

    // MARK: - Card / NFC

    static var cardType: String          { s("cardType") }
    static var cardNumber: String        { s("cardNumber") }
    static var balance: String           { s("balance") }
    static var scanMessage: String       { s("scanMessage") }
    static var readFinish: String        { s("readFinish") }
    static var readFailed: String        { s("readFailed") }
    static var updateBalance: String     { s("updateBalance") }
    static var payment: String           { s("payment") }
    static var topup: String             { s("topup") }
    static var unknown: String           { s("unknown") }
    static var void: String              { s("void") }
    static var reactivation: String      { s("reactivation") }
    static var statementFee: String      { s("statementFee") }
    static var gracePeriod: String       { s("gracePeriod") }
    static var refund: String            { s("refund") }
    static var close: String             { s("close") }
    static var atu: String               { s("atu") }

    // MARK: - History

    static var historyTitle: String        { s("historyTitle") }
    static var recentActivity: String      { s("recentActivity") }
    static var filterAllTime: String       { s("filterAllTime") }
    static var filterToday: String         { s("filterToday") }
    static var filterThisMonth: String     { s("filterThisMonth") }
    static var filterThisWeek: String      { s("filterThisWeek") }
    static var noTransactionsFound: String { s("noTransactionsFound") }
    static var exportPDF: String           { s("exportPDF") }
    static var transactionHistory: String  { s("transactionHistory") }

    // MARK: - Settings

    static var settingsTitle: String         { s("settingsTitle") }
    static var premiumBadge: String          { s("premiumBadge") }
    static var premiumTitle: String          { s("premiumTitle") }
    static var premiumDesc: String           { s("premiumDesc") }
    static var upgradeNow: String            { s("upgradeNow") }
    static var sectionGeneral: String        { s("sectionGeneral") }
    static var languageTitle: String         { s("languageTitle") }
    static var languageValue: String         { s("languageValue") }
    static var showCardNumberTitle: String   { s("showCardNumberTitle") }
    static var showCardNumberDesc: String    { s("showCardNumberDesc") }
    static var sectionApp: String            { s("sectionApp") }
    static var notificationsTitle: String    { s("notificationsTitle") }
    static var notificationsDesc: String     { s("notificationsDesc") }
    static var helpCenterTitle: String       { s("helpCenterTitle") }
    static var helpCenterDesc: String        { s("helpCenterDesc") }
    static var aboutAppTitle: String         { s("aboutAppTitle") }
    static var aboutAppDesc: String          { s("aboutAppDesc") }
    // MARK: - Terms & Conditions
    static var termsLastUpdated: String     { s("termsLastUpdated") }
    static var termsTitleRegular: String    { s("termsTitleRegular") }
    static var termsTitleBold: String       { s("termsTitleBold") }
    static var termsSubtitle: String        { s("termsSubtitle") }
    static var termsSec1Title: String       { s("termsSec1Title") }
    static var termsSec1Body: String        { s("termsSec1Body") }
    static var termsSec2Title: String       { s("termsSec2Title") }
    static var termsSec2Body: String        { s("termsSec2Body") }
    static var termsSec2Bullet1: String     { s("termsSec2Bullet1") }
    static var termsSec2Bullet2: String     { s("termsSec2Bullet2") }
    static var termsSec2Bullet3: String     { s("termsSec2Bullet3") }
    static var termsSec3Title: String       { s("termsSec3Title") }
    static var termsSec3Body: String        { s("termsSec3Body") }
    static var termsSec3Bullet1: String     { s("termsSec3Bullet1") }
    static var termsSec3Bullet2: String     { s("termsSec3Bullet2") }
    static var termsContactTitle: String    { s("termsContactTitle") }
    static var termsContactDesc: String     { s("termsContactDesc") }
    static var termsContactButton: String   { s("termsContactButton") }

    // MARK: - Privacy Policy
    static var privacyLastUpdated: String         { s("privacyLastUpdated") }
    static var privacySectionNfcTitle: String     { s("privacySectionNfcTitle") }
    static var privacySectionNfcBody: String      { s("privacySectionNfcBody") }
    static var privacySectionNoStorageTitle: String { s("privacySectionNoStorageTitle") }
    static var privacySectionNoStorageBody: String  { s("privacySectionNoStorageBody") }
    static var privacySectionReadOnlyTitle: String  { s("privacySectionReadOnlyTitle") }
    static var privacySectionReadOnlyBody: String   { s("privacySectionReadOnlyBody") }
    static var privacyContactTitle: String        { s("privacyContactTitle") }
    static var privacyContactDesc: String         { s("privacyContactDesc") }
    static var privacyContactButton: String       { s("privacyContactButton") }

    // MARK: - About
    static var aboutAppDescription: String   { s("aboutAppDescription") }
    static var aboutChipNfc: String          { s("aboutChipNfc") }
    static var aboutChipRealtime: String     { s("aboutChipRealtime") }
    static var aboutChipMulti: String        { s("aboutChipMulti") }
    static var aboutTerms: String            { s("aboutTerms") }
    static var aboutPrivacy: String          { s("aboutPrivacy") }
    static var aboutConnectTitle: String     { s("aboutConnectTitle") }
    static var aboutConnectDesc: String      { s("aboutConnectDesc") }

    static var maskTitle: String             { s("maskTitle") }
    static var maskDesc: String              { s("maskDesc") }
    static var supportCardTitle: String      { s("supportCardTitle") }
    static var supportCardDesc: String       { s("supportCardDesc") }
    static var aboutTitle: String            { s("aboutTitle") }
    static var version: String               { s("versi") }
    static var footerCopyright: String       { s("footerCopyright") }
    static var reportIssue: String           { s("reportIssue") }

    // MARK: - FAQ

    static var faqHeaderTitle: String        { s("faqHeaderTitle") }
    static var faqSearchPlaceholder: String  { s("faqSearchPlaceholder") }
    static var faqFilterAll: String          { s("faqFilterAll") }
    static var faqNoResults: String          { s("faqNoResults") }
    static var faqHelpCardTitle: String      { s("faqHelpCardTitle") }
    static var faqHelpCardDesc: String       { s("faqHelpCardDesc") }
    static var faqEmailSupport: String       { s("faqEmailSupport") }

    // FAQ Categories
    static var faqCategoryCard: String        { s("faqCategoryCard") }
    static var faqCategoryTransaction: String { s("faqCategoryTransaction") }
    static var faqCategoryBalance: String     { s("faqCategoryBalance") }
    static var faqCategoryApp: String         { s("faqCategoryApp") }

    // FAQ Questions & Answers — Card
    static var faqQ_cardCompatible: String   { s("faqQ_cardCompatible") }
    static var faqA_cardCompatible: String   { s("faqA_cardCompatible") }
    static var faqQ_cardNotDetected: String  { s("faqQ_cardNotDetected") }
    static var faqA_cardNotDetected: String  { s("faqA_cardNotDetected") }
    static var faqQ_cardReadFailed: String   { s("faqQ_cardReadFailed") }
    static var faqA_cardReadFailed: String   { s("faqA_cardReadFailed") }

    // FAQ Questions & Answers — Transaction
    static var faqQ_txNotShown: String       { s("faqQ_txNotShown") }
    static var faqA_txNotShown: String       { s("faqA_txNotShown") }
    static var faqQ_txExportPDF: String      { s("faqQ_txExportPDF") }
    static var faqA_txExportPDF: String      { s("faqA_txExportPDF") }

    // FAQ Questions & Answers — Balance
    static var faqQ_balanceWrong: String     { s("faqQ_balanceWrong") }
    static var faqA_balanceWrong: String     { s("faqA_balanceWrong") }
    static var faqQ_balanceTopup: String     { s("faqQ_balanceTopup") }
    static var faqA_balanceTopup: String     { s("faqA_balanceTopup") }

    // FAQ Questions & Answers — App
    static var faqQ_appLanguage: String      { s("faqQ_appLanguage") }
    static var faqA_appLanguage: String      { s("faqA_appLanguage") }
    static var faqQ_appMaskNumber: String    { s("faqQ_appMaskNumber") }
    static var faqA_appMaskNumber: String    { s("faqA_appMaskNumber") }

    // MARK: - Tab Bar

    static var tabEmoney: String    { s("tabEmoney") }
    static var tabSettings: String  { s("tabSettings") }

    // MARK: - Private

    private static func s(_ key: String) -> String {
        NSLocalizedString(key, comment: "")
    }
}
