Commit Graph

31 Commits

Author SHA1 Message Date
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
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
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
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
2a3d633e58 Fix cost page: unify background colors and width 2026-01-01 21:05:02 +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
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
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
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
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
e661d91c72 fix: banner translations and deployment improvements
- Add translateCarName import from i18n.ts for proper multilingual support
- Change default API language from 'ko' to 'en' for hero banners
- Add checkbox column for Local Cars banner registration
- Update Dockerfile with Playwright dependencies
- Add PostgreSQL migration script
- Add banner translation fix script

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-31 10:41:42 +09:00
AutonetSellCar Deploy
898ab3a0eb Fix: Mongolian date format fallback to en-US
mn-MN locale is not supported in most browsers, causing dates to
display in Korean format. Changed to use en-US for Mongolian users.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 19:41:48 +09:00
AutonetSellCar Deploy
1d8e4435b3 Feature: Russian language support & Vehicle Requests improvements
- Add Russian language support (title_ru, subtitle_ru) for hero banners
- Add fuel/transmission translations for Mongolian (경유→Дизель, 오토→Автомат)
- Improve Vehicle Requests admin page:
  - Display real request ID and user email
  - Show detailed request info (maker, grade, year, fuel, mileage)
  - Replace modal search with Cars page integration
- Add "Add to Request" flow in Cars page for vehicle recommendations
- Fix image URL handling in FilmStripSlider and car detail page

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 18:56:28 +09:00
AutonetSellCar Deploy
0ccc2f75c5 Fix: Use NEXT_PUBLIC_API_URL for all image URLs 2025-12-30 16:09:06 +09:00
AutonetSellCar Deploy
1f0dcb1ddb Initial commit: AutonetSellCar platform with deployment system
- Frontend: Next.js 14 with TypeScript
- Backend: FastAPI with SQLAlchemy
- Agent: Carmodoo sync agent
- Deployment: Docker Compose based staging/production setup
- Scripts: Automated deployment with rollback support

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 13:24:39 +09:00