# Note on *_DEFAULT_ORDER
# If set, it will append a direct ORDER BY <whatever you set> to the SQL query
# while listing objects. You can look at the structure of the SQLite database to
# see the schema and the column names. Some fields are compound and not visible
# directly from the schema (joins). You can check the query in the */list.sql and */base/*.sql files
# in the source to see all column names.
# The usual syntax for those variables is "<table>"."<column>" [ASC|DESC].
# For composite fields (CASE, SUM, COUNT) the syntax is <field>, there is no <table> name.
# For instance:
# - "table"."name" (by "table"."name", default order)
# - "table"."name" ASC (by "table"."name", ascending)
# - "table"."name" DESC (by "table"."name", descending)
# - "field" (by "field", default order)
# - ...
# You can combine the ordering options.
# You can use the special column name 'rowid' to order by insertion order.

# Optional: A unique password to protect sensitive areas of the app
# Useful if you want to share the page with other in read-only
# Security: Currently not fully protecting the socket action, would be better
# to have server-side sessions, with flask-session for instance
# BK_AUTHENTICATION_PASSWORD=my-secret-password

# Optional/Mandatory: A unique key used to sign the secrets when using authentication
# Do not share it with anyone, and you MUST make it random.
# You can use the following command in your terminal to generate such random secret:
#       python3 -c 'import secrets; print(secrets.token_hex())'
# BK_AUTHENTICATION_KEY=change-this-to-something-random

# Optional: Pattern of the link to Bricklink for a part. Will be passed to Python .format()
# Default: https://www.bricklink.com/v2/catalog/catalogitem.page?P={part}
# BK_BRICKLINK_LINK_PART_PATTERN=

# Optional: Display Bricklink links wherever applicable
# Default: false
# BK_BRICKLINK_LINKS=true

# Optional: Path to the database.
# Useful if you need it mounted in a Docker volume. Keep in mind that it will not
# do any check on the existence of the path, or if it is dangerous.
# Default: ./app.db
# BK_DATABASE_PATH=/var/lib/bricktracker/app.db

# Optional: Format of the timestamp added to the database file when downloading it
# Check https://docs.python.org/3/library/time.html#time.strftime for format details
# Default: %Y-%m-%d-%H-%M-%S
# BK_DATABASE_TIMESTAMP_FORMAT=%Y%m%d-%H%M%S

# Optional: Enable debugging.
# Default: false
# BK_DEBUG=true

# Optional: Default number of items per page displayed for big tables
# You can put whatever value but the exist steps are: 10, 25, 50, 100, 500, 1000
# Default: 25
# BK_DEFAULT_TABLE_PER_PAGE=50

# Optional: if set up, will add a CORS allow origin restriction to the socket.
# Default:
# Legacy name: DOMAIN_NAME
# BK_DOMAIN_NAME=http://localhost:3333

# Optional: IP address the server will listen on.
# Default: 0.0.0.0
# BK_HOST=0.0.0.0

# Optional: By default, accordion items are linked together and only one can be in
# a collapsed state. This makes all the items indepedent.
# Default: false
# BK_INDEPENDENT_ACCORDIONS=true

# Optional: A comma separated list of extensions allowed for uploading and displaying
# instruction files. You need to keep the dot (.) in the extension.
# Security: not really
# Default: .pdf
# BK_INSTRUCTIONS_ALLOWED_EXTENSIONS=.pdf, .docx, .png

# Optional: Folder where to store the instructions, relative to the '/app/static/' folder
# Default: instructions
# BK_INSTRUCTIONS_FOLDER=/var/lib/bricktracker/instructions/

# Optional: Hide the 'Add' entry from the menu. Does not disable the route.
# Default: false
# BK_HIDE_ADD_SET=true

# Optional: Hide the 'Bulk add' entry from the add page. Does not disable the route.
# Default: false
# BK_HIDE_ADD_BULK_SET=true

# Optional: Hide the 'Admin' entry from the menu. Does not disable the route.
# Default: false
# BK_HIDE_ADMIN=true

# Optional: Hide the 'Instructions' entry from the menu. Does not disable the route.
# Default: false
# BK_HIDE_ALL_INSTRUCTIONS=true

# Optional: Hide the 'Minifigures' entry from the menu. Does not disable the route.
# Default: false
# BK_HIDE_ALL_MINIFIGURES=true

# Optional: Hide the 'Parts' entry from the menu. Does not disable the route.
# Default: false
# BK_HIDE_ALL_PARTS=true

# Optional: Hide the 'Sets' entry from the menu. Does not disable the route.
# Default: false
# BK_HIDE_ALL_SETS=true

# Optional: Hide the 'Problems' entry from the menu. Does not disable the route.
# Default: false
# Legacy name: BK_HIDE_MISSING_PARTS
# BK_HIDE_ALL_PROBLEMS_PARTS=true

# Optional: Hide the 'Instructions' entry in a Set card
# Default: false
# BK_HIDE_SET_INSTRUCTIONS=true

# Optional: Hide the 'Damaged' column from the parts table.
# Default: false
# BK_HIDE_TABLE_DAMAGED_PARTS=true

# Optional: Hide the 'Missing' column from the parts table.
# Default: false
# BK_HIDE_TABLE_MISSING_PARTS=true

# Optional: Hide the 'Wishlist' entry from the menu. Does not disable the route.
# Default: false
# BK_HIDE_WISHES=true

# Optional: Change the default order of minifigures. By default ordered by insertion order.
# Useful column names for this option are:
# - "rebrickable_minifigures"."figure": minifigure ID (fig-xxxxx)
# - "rebrickable_minifigures"."number": minifigure ID as an integer (xxxxx)
# - "rebrickable_minifigures"."name": minifigure name
# Default: "rebrickable_minifigures"."name" ASC
# BK_MINIFIGURES_DEFAULT_ORDER="rebrickable_minifigures"."name" ASC

# Optional: Folder where to store the minifigures images, relative to the '/app/static/' folder
# Default: minifigs
# BK_MINIFIGURES_FOLDER=minifigures

# Optional: Disable threading on the task executed by the socket.
# You should not need to change this parameter unless you are debugging something with the
# socket itself.
# Default: false
# BK_NO_THREADED_SOCKET=true

# Optional: Change the default order of parts. By default ordered by insertion order.
# Useful column names for this option are:
# - "bricktracker_parts"."part": part number
# - "bricktracker_parts"."spare": part is a spare part
# - "rebrickable_parts"."name": part name
# - "rebrickable_parts"."color_name": part color name
# - "total_missing": number of missing parts
# Default: "rebrickable_parts"."name" ASC, "rebrickable_parts"."color_name" ASC, "bricktracker_parts"."spare" ASC
# BK_PARTS_DEFAULT_ORDER="total_missing" DESC, "rebrickable_parts"."name"."name" ASC

# Optional: Folder where to store the parts images, relative to the '/app/static/' folder
# Default: parts
# BK_PARTS_FOLDER=parts

# Optional: Port the server will listen on.
# Default: 3333
# BK_PORT=3333

# Optional: Shuffle the lists on the front page.
# Default: false
# Legacy name: RANDOM
# BK_RANDOM=true

# Optional/Mandatory: The API key used to retrieve sets from the Rebrickable API.
# It is not necessary to set it to display the site, but it will limit its capabilities
# as you will not be able to add new sets
# Default:
# Legacy name: REBRICKABLE_API_KEY
# BK_REBRICKABLE_API_KEY=xxxx

# Optional: URL of the image representing a missing image in Rebrickable
# Default: https://rebrickable.com/static/img/nil.png
# BK_REBRICKABLE_IMAGE_NIL=

# Optional: URL of the image representing a missing minifigure image in Rebrickable
# Default: https://rebrickable.com/static/img/nil_mf.jpg
# BK_REBRICKABLE_IMAGE_NIL_MINIFIGURE=

# Optional: Pattern of the link to Rebrickable for a minifigure. Will be passed to Python .format()
# Default: https://rebrickable.com/minifigs/{figure}
# BK_REBRICKABLE_LINK_MINIFIGURE_PATTERN=

# Optional: Pattern of the link to Rebrickable for a part. Will be passed to Python .format()
# Default: https://rebrickable.com/parts/{part}/_/{color}
# BK_REBRICKABLE_LINK_PART_PATTERN=

# Optional: Pattern of the link to Rebrickable for instructions. Will be passed to Python .format()
# Default: https://rebrickable.com/instructions/{path}
# BK_REBRICKABLE_LINK_INSTRUCTIONS_PATTERN=

# Optional: User-Agent to use when querying Rebrickable outside of the Rebrick python library
# Default: 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
# BK_REBRICKABLE_USER_AGENT=

# Optional: Display Rebrickable links wherever applicable
# Default: false
# Legacy name: LINKS
# BK_REBRICKABLE_LINKS=true

# Optional: The amount of items to retrieve per Rebrickable API call when.
# Default: 100
# BK_REBRICKABLE_PAGE_SIZE=200

# Optional: URL to the unofficial retired sets list on Google Sheets
# Default: https://docs.google.com/spreadsheets/d/1rlYfEXtNKxUOZt2Mfv0H17DvK7bj6Pe0CuYwq6ay8WA/gviz/tq?tqx=out:csv&sheet=Sorted%20by%20Retirement%20Date
# BK_RETIRED_SETS_FILE_URL=

# Optional: Path to the unofficial retired sets lists
# You can name it whatever you want, but content has to be a CSV
# Default: ./retired_sets.csv
# BK_RETIRED_SETS_PATH=/var/lib/bricktracker/retired_sets.csv

# Optional: Change the default order of sets. By default ordered by insertion order.
# Useful column names for this option are:
# - "rebrickable_sets"."set": set number as a string
# - "rebrickable_sets"."number": the number part of set as an integer
# - "rebrickable_sets"."version": the version part of set as an integer
# - "rebrickable_sets"."name": set name
# - "rebrickable_sets"."year": set release year
# - "rebrickable_sets"."number_of_parts": set number of parts
# - "total_missing": number of missing parts
# - "total_minifigures": number of minifigures
# Default: "rebrickable_sets"."number" DESC, "rebrickable_sets"."version" ASC
# BK_SETS_DEFAULT_ORDER="rebrickable_sets"."year" ASC

# Optional: Folder where to store the sets images, relative to the '/app/static/' folder
# Default: sets
# BK_SETS_FOLDER=sets

# Optional: Make the grid filters displayed by default, rather than collapsed
# Default: false
# BK_SHOW_GRID_FILTERS=true

# Optional: Skip saving or displaying spare parts
# Default: false
# BK_SKIP_SPARE_PARTS=true

# Optional: Namespace of the Socket.IO socket
# Default: bricksocket
# BK_SOCKET_NAMESPACE=customsocket

# Optional: Namespace of the Socket.IO path
# Default: /bricksocket/
# BK_SOCKET_PATH=custompath

# Optional: URL to the themes.csv.gz on Rebrickable
# Default: https://cdn.rebrickable.com/media/downloads/themes.csv.gz
# BK_THEMES_FILE_URL=

# Optional: Path to the themes file
# You can name it whatever you want, but content has to be a CSV
# Default: ./themes.csv
# BK_THEMES_PATH=/var/lib/bricktracker/themes.csv

# Optional: Timezone to use to display datetimes
# Check your system for available timezone/TZ values
# Default: Etc/UTC
# BK_TIMEZONE=Europe/Copenhagen

# Optional: Use remote image rather than the locally stored ones
# Also prevents downloading any image when adding sets
# Default: false
# BK_USE_REMOTE_IMAGES=true

# Optional: Change the default order of sets. By default ordered by insertion order.
# Useful column names for this option are:
# - "bricktracker_wishes"."set": set number as a string
# - "bricktracker_wishes"."name": set name
# - "bricktracker_wishes"."year": set release year
# - "bricktracker_wishes"."number_of_parts": set number of parts
# Default: "bricktracker_wishes"."rowid" DESC
# BK_WISHES_DEFAULT_ORDER="bricktracker_wishes"."set" DESC
