- Introduced eslint.config.mjs files for both admin and storefront to extend Next.js linting rules.
- Updated package.json files to replace the default Next.js lint command with a direct ESLint command for improved linting control.
- Add .gitea/workflows/ci.yml — runs lint, typecheck, and tests on every push
- Remove convex/_generated from .gitignore and commit the generated files so CI
has the type information it needs without requiring a live Convex backend
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Added .env.staging files for admin and storefront applications to .gitignore.
- Updated package.json and package-lock.json to include @convex-dev/resend and its dependencies.
- Introduced new Convex-related modules and updated peer dependencies for better compatibility.
This commit enhances the environment configuration and integrates the Resend service into the project.
- Added RequestReturnDialog component for initiating return requests.
- Enhanced OrderDetailPageView to handle return requests and display order timeline.
- Updated OrderActions to include return request button based on order status.
- Introduced OrderTimeline component to visualize order events.
- Modified order-related types and constants to support return functionality.
- Updated UI components for better styling and user experience.
This commit improves the order management system by allowing users to request returns and view the timeline of their orders.
- Introduced a comprehensive markdown document outlining implementation rules for Convex functions, including syntax, registration, HTTP endpoints, and TypeScript usage.
- Created a new configuration file for the Convex app, integrating the Resend service.
- Added a new HTTP route for handling Shippo webhooks to ensure proper response handling.
- Implemented integration tests for order timeline events, covering various scenarios including order fulfillment and status changes.
- Enhanced existing functions with type safety improvements and additional validation logic.
This commit establishes clear guidelines for backend development and improves the overall structure and reliability of the Convex application.
- Removed .env.example file as it is no longer needed.
- Updated next.config.js to include turbopack configuration.
- Added detailed implementation plans for order processing and UI design in new markdown files.
- Introduced API usage guide for background removal service.
This commit enhances the order processing backend and UI design documentation, ensuring clarity and improved configuration management.
- Extend addVariant with dimension fields and SKU uniqueness check; expand updateVariant to full field set; update getByIdForAdmin to return all variants (active + inactive)
- Add generateSku utility to @repo/utils; auto-generates SKU from brand, product name, attributes, and weight with manual-override support
- Move ProductSearchSection to components/shared and fix nav link /variants → /variant
- Variants page: product search, loading skeleton, variants table, toolbar with create button
- VariantsTable: 8 columns, activate/deactivate toggle, delete with AlertDialog confirmation
- VariantPreviewDialog: read-only full variant details with sections for pricing, inventory, shipping, attributes
- VariantForm: zod schema with superRefine for dimension and on-sale validation, auto-SKU generation
- CreateVariantDialog and EditVariantDialog wiring dollarsToCents on submit
- Install sonner and add Toaster to root layout; install ShadCN Switch component
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Next.js API route for server-side Cloudinary upload with structured
public_id (the-pet-loft/products/{id}/main|gallery-n) and asset_folder
for portal folder visibility in dynamic folder mode
- Add background removal flow via Image Processing API with side-by-side
original vs processed preview (Skeleton while loading)
- Dual upload buttons: processed (background removed) or original file
- Horizontal drag-and-drop image gallery using @dnd-kit/sortable with
horizontalListSortingStrategy; reorder persisted via reorderImages mutation
- Per-image delete with AlertDialog confirmation
- 180° rotation technique for card layout: drag handle top, image center,
delete bottom
- Debounced product search (300 ms) with inline results (max 3); clears
gallery state when search input is cleared
- Install: cloudinary, @dnd-kit/core/sortable/utilities, embla-carousel-react,
ShadCN carousel component
- Configure next.config.js with Cloudinary remote image pattern
- Mark checklist items 3.5 and 3.6 complete
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>