name: Feature Request
about: Propose a new feature for MotoVaultPro
title: "[Feature]: "
labels:
  - type/feature
  - status/backlog
body:
  - type: markdown
    attributes:
      value: |
        ## Feature Request
        Use this template to propose new features. Be specific about requirements and integration points.

  - type: textarea
    id: problem
    attributes:
      label: Problem / User Need
      description: What problem does this feature solve? Who needs it and why?
      placeholder: "As a [user type], I want to [goal] so that [benefit]..."
    validations:
      required: true

  - type: textarea
    id: solution
    attributes:
      label: Proposed Solution
      description: Describe the feature and how it should work
      placeholder: "When the user does X, the system should Y..."
    validations:
      required: true

  - type: textarea
    id: non-goals
    attributes:
      label: Non-goals / Out of Scope
      description: What is explicitly NOT part of this feature?
      placeholder: |
        - Advanced analytics (future enhancement)
        - Data export functionality
        - etc.
    validations:
      required: false

  - type: textarea
    id: acceptance-criteria
    attributes:
      label: Acceptance Criteria (Feature Behavior)
      description: What must be true for this feature to be complete?
      placeholder: |
        - [ ] User can see X
        - [ ] System displays Y when Z
        - [ ] Works on mobile viewport (320px) with touch-friendly targets
        - [ ] Works on desktop viewport (1920px) with keyboard navigation
    validations:
      required: true

  - type: textarea
    id: integration-criteria
    attributes:
      label: Integration Criteria (App Flow)
      description: How does this feature integrate into the app? This prevents missed navigation/routing.
      value: |
        ### Navigation
        - [ ] Desktop sidebar: [not needed / add as item #X / replace existing]
        - [ ] Mobile bottom nav: [not needed / add to left/right items]
        - [ ] Mobile hamburger menu: [not needed / add to menu items]

        ### Routing
        - [ ] Desktop route path: `/garage/[feature-name]`
        - [ ] Is this the default landing page after login? [yes / no]
        - [ ] Replaces existing placeholder/route: [none / specify what]

        ### State Management
        - [ ] Mobile screen type needed in navigation store? [yes / no]
        - [ ] New Zustand store needed? [yes / no]
    validations:
      required: true

  - type: textarea
    id: visual-integration
    attributes:
      label: Visual Integration (Design Consistency)
      description: Ensure the feature matches the app's visual language. Reference existing patterns.
      value: |
        ### Icons
        - [ ] Use MUI Rounded icons only (e.g., `HomeRoundedIcon`, `DirectionsCarRoundedIcon`)
        - [ ] Icon reference: Check `frontend/src/components/Layout.tsx` for existing icons
        - [ ] No emoji icons in UI (text content only)

        ### Colors
        - [ ] Use theme colors via MUI sx prop: `color: 'primary.main'`, `bgcolor: 'background.paper'`
        - [ ] No hardcoded hex colors (use Tailwind theme classes or MUI theme)
        - [ ] Dark mode support: Use `dark:` Tailwind variants or MUI `theme.applyStyles('dark', ...)`

        ### Components
        - [ ] Use existing shared components: `GlassCard`, `Button`, `Input` from `shared-minimal/`
        - [ ] Follow card patterns in: `frontend/src/features/vehicles/` or `frontend/src/features/fuel-logs/`
        - [ ] Loading states: Use skeleton patterns from existing features

        ### Typography & Spacing
        - [ ] Use MUI Typography variants: `h4`, `h5`, `body1`, `body2`, `caption`
        - [ ] Use consistent spacing: `gap-4`, `space-y-4`, `p-4` (multiples of 4)
        - [ ] Mobile padding: `px-5 pt-5 pb-3` pattern from Layout.tsx
    validations:
      required: true

  - type: textarea
    id: implementation-notes
    attributes:
      label: Implementation Notes
      description: Technical hints, existing patterns to follow, files to modify
      placeholder: |
        - Current placeholder: frontend/src/App.tsx lines X-Y
        - Create new feature directory: frontend/src/features/[name]/
        - Backend APIs already exist for X, Y, Z
        - Follow pattern in: frontend/src/features/vehicles/
    validations:
      required: false

  - type: textarea
    id: test-plan
    attributes:
      label: Test Plan
      description: How will this feature be tested?
      placeholder: |
        **Unit tests:**
        - Component tests for X, Y, Z

        **Integration tests:**
        - Test data fetching with mocked API responses

        **Manual testing:**
        - Verify mobile layout at 320px, 768px viewports
        - Verify desktop layout at 1920px viewport
        - Test with 0 items, 1 item, 10+ items
    validations:
      required: false
