App(
    appid="nfc",
    name="NFC",
    apptype=FlipperAppType.MENUEXTERNAL,
    targets=["f7"],
    entry_point="nfc_app",
    icon="A_NFC_14",
    stack_size=5 * 1024,
    order=30,
    resources="resources",
    sources=[
        "*.c*",
        "!plugins",
        "!nfc_cli.c",
    ],
    fap_libs=["assets", "mbedtls"],
    fap_icon="icon.png",
    fap_category="NFC",
)

# Parser plugins

App(
    appid="all_in_one_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="all_in_one_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/all_in_one.c"],
)

App(
    appid="microel_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="microel_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/microel.c"],
)

App(
    appid="mizip_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="mizip_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/mizip.c"],
)

App(
    appid="hi_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="hi_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/hi.c"],
)

App(
    appid="opal_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="opal_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/opal.c"],
)

App(
    appid="mykey_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="mykey_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/mykey.c"],
)

App(
    appid="myki_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="myki_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/myki.c"],
)

App(
    appid="troika_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="troika_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/troika.c"],
)

App(
    appid="washcity_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="washcity_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/washcity.c"],
)

App(
    appid="plantain_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="plantain_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/plantain.c"],
)

App(
    appid="two_cities_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="two_cities_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/two_cities.c"],
)

App(
    appid="aime_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="aime_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/aime.c"],
)

App(
    appid="bip_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="bip_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/bip.c"],
)

App(
    appid="umarsh_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="umarsh_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/umarsh.c"],
)

App(
    appid="gallagher_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="gallagher_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/gallagher.c"],
)

App(
    appid="clipper_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="clipper_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/clipper.c"],
)

App(
    appid="hid_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="hid_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/hid.c"],
)

App(
    appid="itso_parser",
    apptype=FlipperAppType.PLUGIN,
    entry_point="itso_plugin_ep",
    targets=["f7"],
    requires=["nfc"],
    sources=["plugins/supported_cards/itso.c"],
)

App(
    appid="nfc_start",
    targets=["f7"],
    apptype=FlipperAppType.STARTUP,
    entry_point="nfc_on_system_start",
    sources=["nfc_cli.c"],
    order=30,
)
