- gmail_tokens → gmail_token (33 files) - companies → company (17 files) - conversation_logs → conversation_log (27 files) - workspace_members → workspace_member (28 files) All table names now match the actual PostgreSQL schema
4.4 KiB
4.4 KiB
ID 체계 표준화 및 사용자 설정 시스템
작성일: 2025-08-26 22:00
작성자: 51124 서버 담당
상태: ✅ 모든 DB 작업 완료 / ✅ 코드 수정 완료
영향: ID 일관성, 사용자 맞춤화
최종 업데이트: 2025-08-27 00:10
1. Slack ID 컬럼명 불일치 ✅ (완료)
현재 상태 해결됨
| 테이블 | 이전 컬럼명 | 현재 컬럼명 | 타입 |
|---|---|---|---|
| slack_user_mapping | slack_user_id | slack_user_id | VARCHAR(100) |
| gmail_token | slack_user_id ✅ | VARCHAR(100) | |
| conversation_log | slack_user_id | slack_user_id | VARCHAR(100) |
✅ 적용 완료
✅ DB 스키마 변경 완료
-- gmail_token 컬럼명 변경 (완료)
ALTER TABLE gmail_token ADD COLUMN slack_user_id VARCHAR(100); -- ✅
UPDATE gmail_token SET slack_user_id = slack_id; -- ✅
ALTER TABLE gmail_token DROP COLUMN slack_id; -- ✅
-- 인덱스도 생성됨
CREATE INDEX idx_gmail_token_slack_user_id ON gmail_token(slack_user_id); -- ✅
✅ 코드 수정 완료 (Git pull 확인)
| 파일 경로 | 변경 내용 | 상태 |
|---|---|---|
| auth-server/models.py | slack_id 사용 안함 | ✅ 해당없음 |
| robeing-monitor/app/api/items.py | slack_user_id 사용 중 | ✅ 이미 적용 |
| skill-email/services/db_credentials_provider.py | slack_user_id 사용 중 | ✅ 이미 적용 |
| rb8001/app/skills/dm_skill.py | 내부 변수는 slack_id 사용, DB는 slack_user_id | ✅ 정상 |
2. 뉴스 키워드 하드코딩 문제 ✅ (완료)
현재 상태 해결됨
rb8001이["AI", "기술", "IT"]만 사용 (dm_skill.py:309)매일 같은 뉴스 반복
✅ 구현 완료: user_preferences 테이블 (생성 확인됨)
CREATE TABLE user_preferences ( -- ✅ 테이블 생성 완료
id SERIAL PRIMARY KEY,
user_id UUID REFERENCES users(id),
slack_user_id VARCHAR(100),
news_keywords VARCHAR(128)[], -- ✅ 배열 타입 적용됨
email_filter VARCHAR(128)[], -- ✅ 배열 타입 적용됨
briefing_enabled BOOLEAN DEFAULT true,
briefing_time TIME DEFAULT '09:00',
updated_at TIMESTAMP DEFAULT NOW()
);
✅ rb8001 코드 수정 완료 (커밋: aed931e, 7103599)
- dm_skill.py의 get_news_content() 메서드에서 사용자별 키워드 조회 구현
- _get_user_news_keywords() 메서드 추가
- user_preferences 테이블에서 조회, 없으면 기본값 사용
- send_daily_summary_dm()에서 사용자별 뉴스 제공
⏳ 슬랙 명령어 설계 (추후 구현 예정)
일반 메시지 명령어
- 설정: "@로빙 뉴스 키워드 설정: 삼성, 반도체, AI"
- 확인: "@로빙 내 뉴스 키워드"
- 초기화: "@로빙 뉴스 키워드 초기화"
슬래시 명령어 (대안)
- /news-keywords set 삼성, 반도체, AI
- /news-keywords list
- /news-keywords reset
구현 방법
- rb8001이 메시지에서 "뉴스 키워드 설정:" 패턴 감지
- user_preferences 테이블에 키워드 저장 (INSERT ON CONFLICT UPDATE)
- 다음 브리핑부터 해당 키워드로 뉴스 검색
프론트엔드 연동
- ActivityPanel 설정 UI에서도 동일하게 user_preferences 수정
- Gateway API 엔드포인트로 CRUD 구현
- ⚠️ 구조 불일치 문제 발견(일부 환경 DB 미반영으로 오류 가능): 상세 문서 참조
3. 작업 완료 요약
✅ 완료된 작업
-
Slack ID 컬럼명 통일 (2025-08-27 DB 확인)
- gmail_token.slack_id → slack_user_id 변경 완료
- 인덱스 idx_gmail_token_slack_user_id 생성됨
-
user_preferences 테이블 생성 (2025-08-27 DB 확인)
- 테이블 존재 확인됨
- news_keywords, email_filter 배열 타입 적용됨
-
뉴스 키워드 하드코딩 제거 (2025-08-26 21:00)
- rb8001/app/skills/dm_skill.py 수정 완료
- 사용자별 맞춤 키워드 설정 가능
- Git 커밋: aed931e (기능), 7103599 (프롬프트)
- Gitea Actions 자동 배포 완료
⏳ 보류/예정 작업
- 슬랙 명령어 구현 - 사용자가 직접 키워드 설정 가능하도록
- 프론트엔드 UI - ActivityPanel에서 키워드 관리
작성: 2025-08-26 22:00 최종 업데이트: 2025-08-27 00:15 코드 확인: Git pull로 모든 서비스 확인 완료