VINLAB Laravel Project Guide
============================

Non-technical overview
----------------------
VINLAB is a catalog and lead-generation website for laboratory equipment, medical and nursing training models, educational products, maps, and GIS solutions. Visitors can browse domains, view products and services, read blog content, and submit inquiry or quote forms. The admin panel lets the VINLAB team manage catalog data, service pages, blog posts, and incoming inquiries without editing code.

Main public pages
-----------------
- / : Current primary homepage.
- /home-2 : New alternate homepage design with unique sections for hero, domains, process, products, services, and insights.
- /home-2 now uses reusable Blade components from resources/views/components/home2 for hero, trust strip, about, services, products, CTA, why choose us, and blogs.
- /products and /products/{slug} : Product listing and detail pages.
- /category/{slug} : Domain/category landing pages.
- /services and /services/{slug} : Service listing and detail pages.
- /blog and /blog/{slug} : Articles and article details.
- /contact and /request-quote : Lead capture forms.

Admin overview
--------------
- /admin/login : Secure login screen.
- /admin : Dashboard with counts and domain overview.
- /admin/categories : Category and domain management.
- /admin/products : Product management, featured toggle, images, descriptions, specifications, use cases, and SEO fields.
- /admin/services : Service content management.
- /admin/blog : Blog management.
- /admin/inquiries : Inquiry status management.

Technical structure
-------------------
- Routes live in routes/web.php.
- Public page logic lives in app/Http/Controllers/FrontendController.php.
- Admin logic lives in app/Http/Controllers/AdminController.php.
- Database models live in app/Models.
- Public Blade views live in resources/views/public.
- Home 2 component sections live in resources/views/components/home2.
- Admin Blade views live in resources/views/admin.
- Shared layouts live in resources/views/layouts.
- Shared CSS lives in public/assets/css/styles.css.
- Shared browser behavior lives in public/assets/js/app.js.

Theme and design notes
----------------------
The active theme colors are defined as CSS variables in public/assets/css/styles.css:
- --ink: #231f20
- --brand: #496e6d
- --cyan: #78a9a7
- --purple: #647b99
- --gold: #c2a467
- --soft: #f6f8fa

Most page sections are full width with responsive inner padding. The new home page uses alternate layouts section-by-section so it does not feel like a repeated card grid.

Feature integration guide
-------------------------
Recommended next integrations:
- Search: extend FrontendController product filtering or add a dedicated search endpoint.
- CRM: send Inquiry model data to a CRM after Inquiry::create in FrontendController::inquiry.
- Email notifications: configure MAIL_* settings in .env and expand the Mail::raw call into a Mailable class.
- Payments or deposits: add an order/quote table, then connect a payment provider from the quote workflow.
- Analytics: add tracking scripts to resources/views/layouts/public.blade.php.
- File uploads: replace image URL textareas with Laravel file upload fields and store assets through Laravel storage.
- Role-based admin users: replace the session flag login with Laravel's standard authentication and policies.

Multi-type product system
-------------------------
Products now support three frontend experiences through product_type:
- type1: E-commerce style products for medical models, nursing manikins, and equipment. Supports price, stock, quantity, cart toggle, sticky buy panel, features, and specifications.
- type2: Inquiry-based products for maps, charts, and education products. Supports request quote CTA, specification table, features, and FAQ.
- type3: Catalog grid products for anatomy charts, poster collections, and bulk visual products. Supports visual grids and grouped catalog item lists.

Blade component structure:
- resources/views/components/product/type1.blade.php
- resources/views/components/product/type2.blade.php
- resources/views/components/product/type3.blade.php

Database schema additions:
- product_type: type1, type2, or type3
- price: nullable decimal
- stock: nullable integer
- features: JSON-style array
- specification_pairs: JSON-style key-value rows
- faq: JSON-style question/answer rows
- gallery_type: grid or list
- catalog_items: JSON-style grouped catalog rows
- enable_cart: boolean
- status: active or draft

Admin product workflow:
- Step 1: choose product type.
- Step 2: fill common title, category, description, images, and status.
- Step 3: fill ontry ly the fields relevant to the selected type.
- Listing supports type and category filters and paginates large catalogs.

Maintenance checklist
---------------------
- Keep product slugs unique and readable.
- Mark important products as featured to populate both homepages.
- Add meta titles and descriptions for SEO-sensitive pages.
- Review inquiries regularly and update their status.
- Test responsive layouts after adding long product names or large images.
