## ----setup, include=FALSE-----------------------------------------------------
library(mongolstats)
knitr::opts_chunk$set(eval = FALSE, collapse = TRUE, comment = "#>")

## ----curated-concepts---------------------------------------------------------
# old_options <- nso_options(mongolstats.lang = "en")
# nso_indicators("GDP")
# concept <- nso_indicator("gdp_current")
# concept[c("name", "definition", "unit", "unit_status", "verified_at", "caveats")]
# 
# query <- nso_indicator_query("gdp_current", periods = c("2023", "2024"))
# gdp <- nso_fetch(query, labels = "both")
# 
# # Both sexes and national total are the reviewed defaults.
# # Хянасан үндсэн сонголт: нийт хүйс, улсын дүн.
# population_query <- nso_indicator_query("resident_population", periods = "2024")
# options(old_options)

## ----inspect-provenance-------------------------------------------------------
# nso_table_info(gdp)
# manifest <- nso_provenance(gdp)
# manifest$records[[1]]$selections
# manifest$failures
# nso_citation(gdp)
# 
# # Metadata-only lookup: no observations are requested.
# # Зөвхөн хүснэгтийн мета өгөгдөл; ажиглалт татахгүй.
# nso_table_info("DT_NSO_0500_001V1")

## ----observation-integrity----------------------------------------------------
# status <- nso_value_status(gdp)
# status[status$value_status != "observed", , drop = FALSE]
# 
# nso_check_data(
#   gdp,
#   keys = "Year",
#   period = "Year",
#   expected_periods = c("2023", "2024")
# )

## ----save-sidecars------------------------------------------------------------
# export_dir <- tempfile("nso-export-")
# dir.create(export_dir)
# utils::write.csv(gdp, file.path(export_dir, "gdp.csv"), row.names = FALSE)
# saveRDS(nso_value_status(gdp), file.path(export_dir, "value-status.rds"))
# nso_write_manifest(gdp, file.path(export_dir, "provenance.json"))
# 
# saved_manifest <- nso_read_manifest(file.path(export_dir, "provenance.json"))
# nso_table_info(saved_manifest)
# nso_citation(saved_manifest)
# readRDS(file.path(export_dir, "value-status.rds"))

## ----metadata-discovery-------------------------------------------------------
# hits <- nso_metadata_search("хүн ам", type = "all")
# attr(hits, "coverage")
# attr(hits, "pagination")
# 
# organizations <- nso_metadata_search(type = "organization")
# databases <- nso_metadata_search(organization = 1, page = 1)
# attr(databases, "pagination")
# 
# database <- nso_metadata("database", 526, include_raw = TRUE)
# database$methodology
# database$access
# nso_related(database)
# 
# field <- nso_metadata("indicator", 12925, include_raw = TRUE)
# field$quality_flags
# field$context$unit
# field$context$value_type
# field$date_fields
# nso_related(field)

## ----forms-and-classifications------------------------------------------------
# forms <- nso_forms(database_id = 526, include_raw = TRUE)
# forms$records
# form <- nso_metadata("form", 1024, include_raw = TRUE)
# form$dates
# form$years
# form$date_fields
# form$context
# form$quality_flags
# 
# classification <- nso_classification(3446, include_raw = TRUE)
# attr(classification, "completeness")
# attr(classification, "quality_flags")
# attr(classification, "metadata")$version
# 
# nso_metadata_dictionary("frequency")
# nso_metadata_dictionary("collection-method")
# nso_metadata_dictionary("licence")

## ----catalogue-freshness------------------------------------------------------
# nso_catalogue_status()
# nso_search("population", fixed = TRUE)
# live_hits <- nso_search("population", live = TRUE)
# attr(live_hits, "catalogue")
# 
# config <- nso_api_config(refresh = TRUE)
# config[c("maxCells", "maxValues", "origin", "status")]

## ----portal-series------------------------------------------------------------
# portal_catalog <- nso_indicators(source = "portal", refresh = TRUE)
# portal_catalog[c("id", "name", "unit", "queryable", "quality_flags")]
# nso_indicator("portal:DT_NSO_0000_4_4")
# 
# portal_gdp <- nso_portal_data(
#   "DT_NSO_0000_4_4",
#   area = "1",
#   dimension = "code",
#   graph_type = "line",
#   periods = "2024",
#   labels = "both"
# )
# portal_gdp[c("source_id", "period", "code", "code_mn", "code_en", "value", "unit")]
# nso_check_data(portal_gdp, keys = c("period", "code", "code1"), unit = "unit")
# nso_table_info(portal_gdp)

## ----datamart-discovery-------------------------------------------------------
# datamarts <- nso_portal_datamarts()
# datamarts[c("id", "name", "years", "source", "query_supported")]

