주간 식단 계획
식단 계획은 Luca의 로컬 웹앱(식품 섹션)에서 읽히므로, JSON 파일은 아래 스키마를 문자 그대로 따라야 합니다.
읽어야 할 입력 파일
profilo.md— 목표, 제외 식품, 선호도, 식사 횟수, 보충제.frigo.json— 이미 집에 있는 것 (유통기한 포함): 먼저 사용해야 합니다. 냉장고와 식료품 저장실을 모두 포함:dove필드는"frigo"또는"dispensa"값을 가짐 (없는 경우: 탄수화물, 지방, 캔류는 저장실, 나머지는 냉장고).spesa.json— 현재 장보기 목록: 냉장고와 함께 식단의 기본입니다.impostazioni.json—target.kcal및target.proteine_g;calendario로 운동 요일 파악;sempre_in_casa(예: 소금, 기름: 항상 있으므로 장보기 목록에 포함하지 않음).piani-pasti/의 마지막 파일 — 같은 요리를 반복하지 않기 위함.log/misure.json— 체중 추세가 portion 조정을 시사하는 경우.
frigo.json 또는 impostazioni.json이 아직 존재하지 않으면, 넘어갑니다.
Luca는 웹앱에서도 식단을 수정합니다 (식사 추가, 변경, 삭제, 먹은 것으로 표시). 해당 주 파일이 이미 있으면 그 파일을 기준으로 삼습니다: "fatto": true인 식사는 건드리지 말고, Luca가 직접 작성한 식사를 덮어쓰지 마십시오(요청하지 않는 한). 누락된 요일이나 식사만 완성하십시오.
규칙
- 냉장고 우선, 그다음 장보기:
frigo.json의 품목을 먼저 사용하며, 특히 유통기한이 임박한 것부터 사용합니다. 그다음 장보기 목록을 사용합니다. 재료의 최소 80-90%는 냉장고 + 장보기에서 가져와야 합니다. 부족한 것은da_comprare_extra에 간단한 이유와 함께 추가합니다. - 일관된 이름: 재료에는
frigo.json/spesa.json에 있는 이름을 그대로 사용합니다 (예: "Petto di pollo", "pollo"가 아님). 그래야 웹앱이 이미 집에 있는 것을 인식할 수 있습니다. - 제로 웨이스트: 부패하기 쉬운 재료(야채, 고기, 신선한 생선)는 초반에 사용합니다. 똑똑한 leftovers 계획: 한 번 요리하여 두 번 사용합니다.
- 정의 단계, 적당한 열량 부족: 매 주 식사에 단백질 포함, 많은 야채, 탄수화물 포함(운동 요일에는 더 풍부하게). 식사 거르기나 극단적인 식단 금지. 하루 섭취량을
target.kcal및target.proteine_g에 가깝게 유지합니다. - 대략적인 1인분 양: 실용적인 단위(주먹, 손바닥, 큰술, "중간 크기 가슴살 1개")를 사용하고, 주 탄수화물에 대해서만 괄호 안에 그램을 표시합니다.
- 다양성: Luca는 매일 요리하는 것을 즐기므로, 간단하지만 다양한 요리, 같은 요리는 주당 최대 2회까지만 반복합니다. 이전 식단에서 Luca가 좋아했던 요리는 같은 요리 이름으로 다시 제안할 수 있습니다 (웹앱이 이를 레시피북에 수집합니다).
- 주말: Luca는 주말에 외식합니다 (주당 최소 피자 한 번): 해당 식사는 계획하지 말거나, 메모에 "fuori"라고 표시합니다.
profilo.md에 명시된 제외 식품을 항상 존중합니다.
장보기, 냉장고 및 저장실 (웹앱과 동일한 규칙)
웹앱은 간단한 규칙으로 식단, 장보기, 집 재고를 일관되게 유지합니다. 여러분도 이 규칙을 따라 파일이 일관되게 유지되도록 하십시오.
- 식단을 작성한 후,
spesa.json을 업데이트합니다: 아직 먹지 않은 식사(오늘 이후)의 각 재료에 대해frigo.json(냉장고 또는 저장실)에 없고,sempre_in_casa에 없으며, 이미 목록에 없는 경우, 항목{ "nome", "categoria", "quantita": "", "auto": true }를 추가합니다.auto: true는 "식단을 위해 추가됨"을 의미합니다: 식사가 변경되면 웹앱이 자동으로 제거합니다.auto가 없는 항목(Luca가 작성한 것)은 건드리지 마십시오. da_comprare_extra는 선택적 제안(예: 생선 양념용 레몬)을 위한 것이며, 식사에 필요한 재료를 위한 것이 아닙니다.- 이름: 웹앱은 대소문자와 악센트를 무시하고 단수=복수("uovo" = "uova")로 이름을 비교하지만, "pollo"와 "petto di pollo"는 서로 다른 것으로 간주합니다:
frigo.json/spesa.json의 이름을 그대로 사용하십시오. - Luca가 식사를 먹었다고 말할 때:
"fatto": true로 설정하고, 냉장고에 있는 재료는frigo.json에서 제거하고(저장실은 유지), 식사의"consumati"에 저장합니다(원래 상태 그대로 제거된 항목). 그래야 Luca가 웹앱에서 체크를 해제하면 다시 재고에 포함됩니다. - Luca가 장을 봤다고 말할 때: 구매한 항목을
spesa.json에서 제거하고,dove와 함께frigo.json에 추가합니다 ("dispensa"– 탄수화물, 지방, 캔류; 나머지는"frigo"),scadenza를 알고 있으면 함께 추가합니다.
간단 레시피
각 식사에는 ricetta 필드가 있습니다: 각각 한 줄씩 3-5개의 짧은 단계로 구성된 배열이며, 조리 시간을 포함합니다. 명백한 단계("접시에 담는다")는 넣지 마십시오. 요리가 이전 날의 leftovers를 사용하는 경우, 첫 번째 단계에서 이를 명시하십시오.
파일 스키마
{
"settimana": "AAAA-Www",
"kcal_giorno_indicative": 2150,
"giorni": [
{
"giorno": "lunedì",
"pasti": [
{
"tipo": "pranzo",
"piatto": "Riso con pollo e zucchine",
"ingredienti": [{ "nome": "Riso basmati", "porzione": "1 pugno abbondante (~80 g)" }],
"ricetta": ["Cuoci il riso in acqua salata (circa 12 min)", "…"],
"note": "",
"fatto": true
}
]
}
],
"da_comprare_extra": [{ "nome": "Limoni", "categoria": "frutta", "quantita": "2", "motivo": "per condire il pesce" }]
}
giorno: 소문자 요일 이름 (lunedì … domenica).tipo: pranzo, cena, colazione 또는 spuntino.da_comprare_extra의categoria: proteine, carboidrati, verdure, frutta, latticini, grassi, dispensa, altro 중 하나.fatto는 선택 사항: 이미 먹은 식사에만true(Luca가 웹앱에서 설정하거나 여러분이 Luca가 무엇을 먹었는지 들었을 때 설정); 미래의 식사에서는 생략합니다.consumati는 선택 사항: 먹은 식사에만 있으며, 냉장고에서 제거된 항목을 포함합니다 (위 참조). 수정하지 마십시오.- 다른 필드를 추가하지 마십시오.
출력
- 식단을
piani-pasti/AAAA-Www.json(ISO 주차)에 저장하며, 위 스키마를 정확히 준수합니다. - 누락된 재료(위의 "장보기, 냉장고 및 저장실" 참조)로
spesa.json을 업데이트합니다. - 채팅에 간략한 요약을 표시합니다: 각 요일별 주요 요리를 한 줄로, 장보기 목록에 추가한 내용,
da_comprare_extra목록, 2-3가지 준비 팁 (미리 요리할 것). Luca에게 식단이 웹앱의 식품 섹션에서 이미 볼 수 있음을 알립니다.