# 데이터 모델 ## 대화 상태 `ChatApp`은 세션 동안 다음 목록을 메모리에 유지한다. - `submitted_inputs`: `trim`된 유효 사용자 메시지 목록 - `selected_responses`: 각 사용자 메시지에 대응하는 선택 응답 목록 두 목록은 같은 인덱스를 사용하며, 유효한 제출 하나마다 항목 하나씩 추가된다. 공백 입력은 어느 목록도 변경하지 않는다. ## 고정 응답 목록 `src/chat_tui/app.py`의 `RESPONSE_MESSAGES` 상수는 다음 다섯 문자열을 순서대로 보유한다. 1. `안녕하세요! 무엇을 도와드릴까요?` 2. `그것은 제가 처리하기 불가능합니다.` 3. `맡겨만 주세요.` 4. `지금 처리 중입니다.` 5. `작업을 완료하였습니다.` 응답은 `random.choice(RESPONSE_MESSAGES)`로 선택한다. 난수 선택 자체는 테스트에서 `chat_tui.app.random.choice`를 대체할 수 있는 경계로 취급한다. ## 대화 항목 유효한 입력이 제출되면 대화 영역에 다음 두 `Label`을 순서대로 추가한다. 1. `user-message` 클래스의 사용자 메시지 2. `response-message` 클래스의 선택 응답 사용자 메시지는 입력값을 `strip()`한 결과이며, 선택 응답은 고정 응답 목록의 문자열이다. ## 불변 조건 - 공백 제거 결과가 빈 문자열이면 상태와 화면을 변경하지 않는다. - 유효한 입력마다 사용자 메시지가 응답보다 먼저 추가된다. - `submitted_inputs`와 `selected_responses`의 길이는 항상 같다. - 응답은 고정 목록에 포함된 값이어야 한다. - 대화 기록은 애플리케이션 세션 안에서만 유지한다.