프롬프트 추가

This commit is contained in:
R5600U_PC 2024-05-17 16:24:06 +09:00
parent 5d8c21038b
commit 0fad651c1e
1 changed files with 56 additions and 0 deletions

56
prompt.txt Normal file
View File

@ -0,0 +1,56 @@
안녕? 한글로 얘기해.
나는 온라인 셀링을 하는 사업가야. 필요한 프로그램이 있어서 직접 코딩하는 중이야. 내가 원하는 프로그램을 완성해 줄래?
차근차근 진행해 보자.
전체코드의 구조를 검토해 보고 , 효율적으로 수정해 나가보자.
프로그램 아웃라인
1. 이 프로그램의 목적은 'percenty.co.kr'이라는 웹사이트에 접속 후 로그인 하고,
'마켓 설정'에 존재하는 각 마켓들의 'API key'를 바꾸는 프로그램이야.
2. 마켓은 현재 '쿠팡,' 스스', 'ESM', '11번가-국내', '11번가-해외', , '롯데온'이야. 추후에 더 추가될 수도 있어.
마켓마다 요구하는 api키의 종류는 다양하고 해당부분은 추가되어 있어.
3. 이 프로그램을 사용하는 사람은 사업자가 여러개 있을 수 있고, 사업자마다 마켓별 api키를 가지고 있지.
4. 프로그램 설정으로 저장할 수 있는 총 사업자 숫자를 제한할 수 있어야 해.
5. 각각의 설정은 암호화되어 config.ini 파일에 저장되고, 프로그램이 실행되면 다시 불러오게 해야해.
6. 디버깅을 위해 로그는 로그파일과 콘솔출력 모두 되어야 하고, 디버깅레벨은 디버그, 디버깅이 끝난 후 배포단계에서는 Info로 변경해서 배포할꺼야.
UI 구성
1. pyqt5를 이용한 GUI프로그램이야. 웹과 상호작용하는 부분은 playwright의 비동기 기능을 이용해야해.
2. 프로그램이 실행되면 라이센스 동의 화면이 표시되. 이 화면에는 아랫쪽에 체크버튼이 있고, 체크버튼을 클릭하면 Acept버튼이 활성화 되. 취소 버튼은 항상 활성화 되어있고, 이걸 누르면 프로그램이 종료되.
3. Accept버튼을 클릭하면 라이센스 동의화면이 없어지고 본 기능을 하는 메인윈도우가 표시되.
4. 메인 윈도우에는 '도움말', '퍼센티설정', '사업자설정'이라는 메뉴 item이 있어.
5. '도움말'을 누르면 QTextBrowser 가 실행되고 그 내부에 도움말을 표시할꺼야.
6. '퍼센티설정'을 누르면 사용자 아이디와 비밀번호를 입력받는 작은 위젯이 실행되고, 저장버튼과 취소버튼으로 구성되어있고, 저장 버튼을 누르면 설정이 저장되.
7. '사업자 설정'을 누르면 별도의 사업자설정 위젯이 생겨. 여기는 사업자마다 탭으로 구성되어있고, 탭 내부의 상단레이아웃에는 사업자 정보, 하단레이아웃은 다시 마켓별 탭이 있고, 탭마다 마켓의 api키들을 저장할 수 있는 qlabel과 qtextedit가 쌍을 이루면서 존재해.
8. 메인 윈도우는 mainLayout으로 qvlayout을 사용해.
9. mainLayout의 내부 구성레이아웃으로 3개의 layout들이 있어. 각각 20%, 60% 20%의 면적을 차지해.
10. 1번 qhlayout은 SettingButtonLayout으로 '현재설정 가져오기' 버튼과 '현재설정 저장하기' 버튼이 있어.
10. 현재설정 가져오기 버튼을 누르면 playwright가 비동기로 실행되어 웹사이트에 접속 후 로그인하고, 현재의 마켓설정들을 가져와.
11. 현재설정 저장하기 버튼을 누르면 '사업자 저장' 위젯이 떠.
12. '사업자 저장 위젯'은 사업자 별칭, 사업자등록번호, 상호명, 등록날짜, 응대전화번호를 입력하는 칸이 있어. 해당 칸들을 채운 후 취소버튼과 확인버튼 중 확인버튼을 누르면 해당사업자로 저장되.
13. 이때 현재 등록된 사업자 숫자가 총 등록된 사업자 숫자보다 많은 경우 에러 메세지를 띄워줘.
13. '사업자 저장 위젯'의 필수 입력정보는 사업자등록번호, 상호명이며 사업자별칭이 비어있으면 상호명이 이곳에 들어가면 되.
14. 2번 qhlayout은 currentStatusLayout으로 실제 웹사이트에 접속 후 가져온 데이터를 표시해 주는곳이야.
15. 2번 qhlayout은 3개의 박스로 구성 되어있어.
16. 2번 qhlayout 의 첫번째 박스는 현재 사업자 현황을 보여주는 박스가 표시되. 30%를 차지하는데, 가져온 데이터가 저장된 사업자데이터와 일치하는 경우 그 사업자의 사업자별칭, 사업자등록번호, 상호명, 등록날짜, 응대전화번호가 표시되.
17. 2번 qhlayout 의 두번째 박스는 60%를 차지하는데 내부에는 다시 qhlayout으로 만들어진 marketqhlayout 레이아웃은 마켓별로 구성되고, 여기에는 마켓이름을 표시하는 qpushbutton과 사업자별칭을 표시하는 qplaintext가 있어.
18. 가져온 데이터의 마켓별 api키가 저장된 사업자들 중 일치하는 사업자가 있으면 해당 마켓 라벨의 배경을 연두색으로 하고, 사업자의 별칭을 보여줘.
19. 만약 일치하는 사업자가 없다면 배경을 진한회색으로 변경하고 "NoMatch"로 표시하면 되.
20. 2번 qhlayout 의 세번째 박스 10%를 차지하고 내용은 일단 비워줘.
21. 3번 qvlayout은 selectSettingLayout으로 '사업자 드롭박스', '마켓 체크박스'와 '사업자 바꾸기' 버튼, '진행상황' 프로그레스바가 있어.
22. selectSettingLayout은 '사업자 드롭박스' 위젯1개, '마켓 체크박스'를 표시할 레이아웃 1개, '사업자 바꾸기' 위젯1개, '진행상황' 위젯 1개로 구성되.
22 '사업자 드롭박스'에는 '사업자설정'에서 마켓별 api가 1개라도 설정된 사업자만 표시되.
23. 마켓 체크박스 레이아웃은 마켓이름으로 구성된 체크박스들이 3열로 구성되어 있어. 추후 지원하는 마켓이 늘어나면 이곳에도 추가로 늘어날 예정이야.
24. 마켓 체크박스 레이아웃' 내부에는 '전체선택' 이라는 체크박스와 함께 모든 마켓들이 표시되. 그런데 '사업자 드롭박스'에서 선택된 사업자의 마켓 중 api값이 없는 마켓은 체크할 수 없게 비활성화 되어야 해.
25. '사업자바꾸기' 버튼을 누르면 선택된 사업자와 선택된 마켓을 기준으로 실제 바꾸는 동작을 해야해. 이 동작은 playwright의 비동기작업으로 실행되.
26. 이때 작업 진행상황은 '진행상황'프로그레스 바에 업데이트 시켜줘.
26. 사업자 api가 모두 바꿔지면 '현재설정 가져오기' 의 연결된 메서드 동작 중 현재마켓 설정을 가져오는 메서드만 동작하여 currentStatusLayout의 내용을 업데이트 시켜야 해.
27. 작업이 완료되면 작업완료 창을 띄워줘.
28. 작업완료창은 현황 레이아웃 ('사용자에게 바뀌기전 사업자 현황'과 '바뀐 사업자 현황'으로 구성), '브라우저 실행' 버튼과 '확인'버튼으로 구성되어 있어.
29. 작업완료창의 확인 버튼을 누르면 창이 사라지고, 브라우저 실행 버튼을 누르면 playwright의 chrome이 headless=false 모드로 실행되면서 작업완료 창은 사라져.
30. 사용자가 브라우저 실행 버튼을 누르면서 실행된 playwright는 이제부터 사용자가 웹사이트 작업을 할꺼야. 그래서 기존에 사업자 정보를 불러왔던 객체와는 별도의 객체여야 해.