Commit Graph

109 Commits

Author SHA1 Message Date
AutonetSellCar Deploy
15dc8e563c Sync docker-compose.staging.yml with server
- Share production uploads directory for staging
- Ensures image files are available in staging environment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:20:12 +09:00
AutonetSellCar Deploy
0a4cef27b4 Update docker-compose.production.yml for CI/CD
- Use mongolcar-network (external) for DB/Redis access
- Add NEXT_PUBLIC_API_URL as build arg
- Simplify configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 09:56:48 +09:00
AutonetSellCar Deploy
9dafe48473 Add CORS for staging domain and update docker-compose
- Add https://staging.autonetsellcar.com to CORS allowed origins
- Update docker-compose.staging.yml to use .env file and correct paths

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 09:49:01 +09:00
AutonetSellCar Deploy
b8cab29ed2 Add 'Seed Defaults' button to load all predefined translations
- Add /translations/seed-all-defaults API endpoint
- Loads all DEFAULT_TRANSLATIONS (makers, models, colors, fuels, transmissions)
- Includes 100+ predefined translations (Mohave, Sonata, colors, etc.)
- Add 'Seed Defaults' button to admin translations page

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 20:53:14 +09:00
AutonetSellCar Deploy
2d7e144a21 Fix duplicate key error in translations auto-extract
- Add tracking set to prevent duplicate entries within same batch
- Refactor to use helper function for consistent duplicate checking

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 20:30:06 +09:00
AutonetSellCar Deploy
77e707167f Fix Mixed Content issue on staging (HTTPS/HTTP mismatch)
- Add Next.js API rewrites to proxy /api and /uploads requests
- Update docker-compose.staging.yml to use relative API paths
- Set NEXT_PUBLIC_API_URL to empty for staging (use rewrites)
- Add BACKEND_URL env var for Next.js server-side proxying
- Update all files to use relative paths when API_URL is empty

This fixes the issue where the staging site (HTTPS) was trying to
load resources from HTTP backend, causing Mixed Content errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 18:32:00 +09:00
AutonetSellCar Deploy
7c943d8553 Add SNS Marketing Campaign feature
- Add cash_cc_balance to User model (withdrawable CC)
- Create SnsShareSubmission model for SNS share verification
- Add marketing campaign settings to SystemSettings
- Add reward_type to ReferralReward model
- Create /api/sns-share endpoints for submission and verification
- Add referral signup reward logic (10CC on signup)
- Create /sns-share user page for SNS sharing
- Create /admin/sns-shares management page
- Add marketing settings UI to admin settings page
- Add SNS Shares menu to admin sidebar

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 18:21:17 +09:00
AutonetSellCar Deploy
718c5b0474 Add staging environment documentation and minor fixes
- Document staging vs production DB separation (autonet_staging)
- Add staging sync and deployment commands to CLAUDE.md
- Update changelog with 2025-01-03 changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 16:22:34 +09:00
AutonetSellCar Deploy
6ba254bfeb Export new schema classes from schemas package
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 13:12:55 +09:00
AutonetSellCar Deploy
b0a78abeb3 Add directly purchased cars to My Requests page
- Add new /my-vehicles API endpoint returning both recommended and direct purchases
- Add DirectPurchasedCarResponse and MyVehiclesResponse schemas
- Update frontend to display directly purchased cars (from banners with 1CC)
- Show separate collapsible section for direct purchases

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 13:10:00 +09:00
AutonetSellCar Deploy
ef729ee384 Add recommended vehicle check to car view access
Cars that were recommended to the user (via vehicle request with 1CC payment)
should be accessible without additional CC payment.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 12:42:30 +09:00
AutonetSellCar Deploy
80d2e82922 Add car_id column to RequestVehicle model
- Add car_id foreign key to link recommended vehicles to cars table
- Add car relationship for easier access

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 12:40:40 +09:00
AutonetSellCar Deploy
c0187d233b Add car_id field to RequestVehicleResponse schema
This field was missing, causing the API to not return car_id
for approved vehicles in My Vehicle Requests page.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 12:38:57 +09:00
AutonetSellCar Deploy
757241bb4e Add car_id field to RequestVehicle interface
- Add optional car_id field for linking to cars table
- Add regenerateSingle function to adminPdfApi

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 12:28:13 +09:00
AutonetSellCar Deploy
0e55ab201a Fix vehicle click issue in My Vehicle Requests page
- Use car_id or fallback to car_data.local_car_id or car_data.id
- Disable link if no valid car ID is available
- Show "Vehicle unavailable" message when car ID is missing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 12:26:47 +09:00
AutonetSellCar Deploy
51d36566d1 Fix SidebarLayout mobile responsiveness
- Move mobile tabs outside flex container to prevent layout conflict
- Add sticky positioning for mobile tabs
- Add min-w-0 to main content to prevent overflow
- Reduce padding on mobile screens

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 12:11:36 +09:00
AutonetSellCar Deploy
f452bbc03b Improve mobile responsiveness across the site
- Header: Hide notifications/auth on mobile, add to mobile menu, make hamburger more visible
- FilmStripSlider: Responsive image sizes (200-500px based on viewport)
- Home page: Smaller text, buttons, and spacing on mobile
- Car detail: Responsive image height, text sizes, and padding

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 10:35:04 +09:00
AutonetSellCar Deploy
f37f66a9d4 Add deployment workflow section to CLAUDE.md
- Add staging/production server URLs
- Add step-by-step deployment order (staging first!)
- Add Git repository info
- Add staging and production deployment commands

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-03 09:44:35 +09:00
AutonetSellCar Deploy
b1afea79d9 Add SOLD OUT badge and improve deployment docs
- Add SOLD OUT overlay on car detail page image
- Add SOLD OUT badge next to car name
- Add Sold Out status in Admin Cars detail view
- Add soldout field to Car TypeScript interface
- Create PRODUCTION_VALUES.md for deployment reference
- Update CLAUDE.md with CRITICAL deployment section
- Update TROUBLESHOOTING.md with recurring errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-03 09:05:16 +09:00
AutonetSellCar Deploy
2da464694b Change Mongolian Fee to Local Dealer Fee in cost calculator 2026-01-01 21:37:28 +09:00
AutonetSellCar Deploy
582ddf1e70 Update DEPLOYMENT.md with comprehensive deployment guide 2026-01-01 21:22:25 +09:00
AutonetSellCar Deploy
2a3d633e58 Fix cost page: unify background colors and width 2026-01-01 21:05:02 +09:00
AutonetSellCar Deploy
ca20a099a2 Fix: 삭제된 사용자 이메일 인증 허용
- verification.py의 send-preregister 엔드포인트에서 deleted_at 체크 추가
- 삭제된 사용자가 동일 이메일로 재가입 가능하도록 수정

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 19:33:24 +09:00
AutonetSellCar Deploy
c0ceade463 Docs: 변경 이력에 비밀번호 보안 강화 추가
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 19:22:47 +09:00
AutonetSellCar Deploy
9853f0b4d5 Feat: 강력한 비밀번호 정책 및 로그인 보안 강화
- 비밀번호 최소 10자 이상, 특수문자 1개 이상 필수
- 20회 로그인 실패 시 비밀번호 재설정 필요
- 로그인 페이지에 남은 시도 횟수 경고 표시
- 계정 잠금 시 비밀번호 재설정 링크 제공
- 회원가입 페이지에 비밀번호 요구사항 체크리스트 UI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 19:19:36 +09:00
AutonetSellCar Deploy
1e3ad2fa65 Docs: 변경 이력 테이블 정리
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 18:48:54 +09:00
AutonetSellCar Deploy
648c2be1b0 Docs: .env 파일 관리 섹션 추가 및 변경 이력 업데이트
- 운영서버 .env 파일 위치 및 관리 방법 문서화
- inquiries 테이블 누락 컬럼 추가 기록
- 삭제된 사용자 재가입 수정 기록

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 17:53:39 +09:00
AutonetSellCar Deploy
de06404d0f Fix: 삭제된 사용자 재가입 허용 및 로그인 차단
- 소프트 삭제된 사용자도 재가입 가능하도록 수정
- 재가입 시 기존 삭제된 사용자 데이터 완전 삭제
- 삭제된/비활성화된 사용자 로그인 차단

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 17:40:47 +09:00
AutonetSellCar Deploy
1818f0229c Add DEPLOYMENT.md guide for deployment and DB migration
- Document server structure and deployment flow
- Add DB schema change checklist (SQLite ALTER TABLE)
- Include common troubleshooting and rollback commands
- Reference in CLAUDE.md for new sessions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 10:03:46 +09:00
AutonetSellCar Deploy
9a3a6dc8eb Add translation for 마이스터 (Meister) grade
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 09:50:14 +09:00
AutonetSellCar Deploy
7f45de7a89 Add configurable CC cost for banner vehicle PDF/description view
- Add cc_per_banner_view setting to system_settings (default 0.1 CC)
- Update car detail page to use dynamic CC value from settings
- Add CC per Banner View field in admin settings page
- Replace hardcoded 0.1 CC with configurable value

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 09:41:18 +09:00
AutonetSellCar Deploy
0d807eccc6 Widen Cost Structure section to match Container Matching width
Changed max-w-4xl to max-w-5xl for consistent layout.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 20:31:34 +09:00
AutonetSellCar Deploy
612425a6c2 Add multi-language description for Korean Domestic + Export Customs
Added description text under the domestic cost field in both the cost
structure section and calculator results. Translated into Korean,
English, Mongolian, and Russian.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 20:27:59 +09:00
AutonetSellCar Deploy
2a8e32f427 feat: Add admin settings for dealer comment & domestic cost, enhance visitor country stats
- Add show_dealer_comment toggle to admin settings
- Add domestic_export_customs_krw setting for cost page
- Cost page now uses dynamic settings instead of hardcoded values
- Enhance Visitor Stats with dedicated Country Stats card with flags
- Fix hero_banners API route ordering (422 error fix)
- Fix banner toggle logic to check HeroBanner table instead of car.is_banner
- Add country flag emojis for 23+ countries

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-31 18:10:27 +09:00
AutonetSellCar Deploy
be7f12bbf3 Fix TypeScript Set iteration error 2025-12-31 17:14:47 +09:00
AutonetSellCar Deploy
bd6c05cc83 Add debug logs for banner update 2025-12-31 17:12:46 +09:00
AutonetSellCar Deploy
ce35017d4f Translate Korean car names in homepage banner
Apply translateCarName to banner titles and subtitles to show
translated text instead of Korean when hovering over banners.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 17:06:30 +09:00
AutonetSellCar Deploy
9265a823dc Fix Korean text in banner drag-and-drop section
- Translate car name to English using translateCarName
- Remove Korean year suffix (년)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 16:57:38 +09:00
AutonetSellCar Deploy
d902f920b3 Fix 422 error on /admin/banner-cars endpoint
Move /admin/banner-cars route before /admin/{banner_id} to fix route
matching order. FastAPI was matching "banner-cars" as a path parameter
and failing to convert it to an integer.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 16:45:47 +09:00
AutonetSellCar Deploy
3a4475ea28 Fix banner reorder API with proper request schema
- Create BannerReorderRequest Pydantic model for reorder endpoint
- Update frontend to send car_ids wrapped in object
- Fixes 422 Unprocessable Entity on reorder API

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 16:21:05 +09:00
AutonetSellCar Deploy
3cf6fd2121 Fix reorder API to properly accept list body parameter
- Add Body() to car_ids parameter in reorder_banners endpoint
- Fixes 422 Unprocessable Entity error when reordering banners

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 16:11:14 +09:00
AutonetSellCar Deploy
6cf2c69371 Fix loadLocalCars error handling for banner API failure
- Wrap banner API call in try-catch to prevent entire function failure
- Fall back to car.is_banner field if banner API returns error
- Local Cars tab now loads even if banner API fails

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 16:05:04 +09:00
AutonetSellCar Deploy
ea91e020b0 Implement batch banner update with drag-and-drop reordering
- Change banner checkbox from immediate toggle to local state management
- Add "Update Banner" button for batch saving changes
- Add draggable banner section at top using framer-motion Reorder
- Banner cars now sorted by display_order from server
- Checkboxes reflect current banner state from DB on page load

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 15:59:47 +09:00
AutonetSellCar Deploy
13bad3ab36 fix: Share production uploads folder with staging
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 15:44:29 +09:00
AutonetSellCar Deploy
17ec5f108b fix: Update staging docker-compose to share production DB
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 15:37:23 +09:00
AutonetSellCar Deploy
a406535815 fix: Add staging URLs to CORS origins
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 15:32:10 +09:00
AutonetSellCar Deploy
c9fd7611a7 feat: Add banner toggle and soldout tracking to Cars page
- Add is_banner, soldout fields to Car model
- Add banner toggle API (POST /hero-banners/admin/toggle/{car_id})
- Add soldout APIs (POST/DELETE /cars/{car_id}/soldout)
- Add nightly soldout checker in agent (runs at 3:00 AM)
- Update Local Cars UI with banner checkbox and status column
- Remove hero-banners admin page (functionality moved to Cars page)
- Banner cars sorted to top with purple background
- Soldout cars displayed with gray overlay

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 12:50:40 +09:00
AutonetSellCar Deploy
9969554deb fix: Dockerfile에 NEXT_PUBLIC_API_URL ARG 추가, ENV 형식 수정 2025-12-31 11:06:48 +09:00
AutonetSellCar Deploy
d48de13377 fix: NEXT_PUBLIC_API_URL을 HTTPS로 변경, agent .env 마운트 추가 2025-12-31 11:00:09 +09:00
AutonetSellCar Deploy
81b75f0e2c docs: Git 기반 배포 필요성 및 carmodoo-agent 환경변수 설명 추가 2025-12-31 10:55:36 +09:00