- Add marketing_channel_id to broadcasts table - Create Campaign views (index, create, edit, show) with modern UX - Implement test send functionality with provider abstraction - Create Conversations data model (conversations, participants, messages) - Create Messaging inbox UI with conversation threads - Link broadcast sends to conversation system - Add Marketing nav section (premium feature, gated by has_marketing flag) - Update BroadcastController with sendTest method - Create MessagingController with conversation management - Add SMS provider support (Twilio, Telnyx, Cannabrands) - Create comprehensive platform naming and style guide Phase 9 Complete: Full campaign management UX Phase 10 Complete: Messaging foundation ready for two-way communication
34 KiB
34 KiB
(2025-10-23)
Bug Fixes
- add background color to Choices.js dropdown items (fcf3689)
- add background to nested choices list container (36a66d6)
- add high-specificity selectors for dropdown background (c7de8d5)
- add libpq-dev for PostgreSQL extension and show build output (e800eab)
- add missing Action import in LatestNotifications widget (3b12568)
- add missing compliance document methods to Business model (0c3a935)
- add null user checks to OrderNotificationService (a81c9a0)
- add overflow-visible to parent containers for dropdown menus (dd5b7d2)
- add z-index and opacity to dropdown to prevent see-through (1991941)
- apply conditional dropdown-top to invoices table last row (8e41203)
- broken product images on order show page (7af3403)
- center empty state icon above 'No Locations Yet' text (5041fec)
- change notification actions to redirect instead of returning JSON (16621ce)
- change notification ID type from int to string for UUID support (a53ce10)
- connect Analytics navigation link to actual route (592a05d)
- convert business license type to dropdown in Filament admin (95764a1)
- correct anime.js import path for ES modules (67e1ed2)
- correct brand colors column name from brand_colors to colors (ba4bd33)
- correct Business model relationships and remove non-existent fields (911865e)
- correct business relationship reference in buyer invoice view (Bug #9) (0f3939c)
- correct Company-Location relationship foreign key (5b1969c)
- correct data format for ApexCharts treemaps and Cal-heatmap (080e1c5)
- correct database column names and currency handling in analytics (b0c7b2d)
- correct database references from MySQL to PostgreSQL in README (3a4fe0a)
- correct invoice-brand relationship path (Bug #9) (b1dcb36)
- correct picking ticket complete route name (Bug #8) (f0596b2)
- correct picking ticket route name in seller order view (a41cdf1), closes #7
- correct Section import for Filament 4 Schema API (26583b1)
- correct user_type default and invoice business_id bug (559d705)
- force Choices.js dropdown to stay closed on page load (9ddc883)
- handle null user in invoice show view for manual invoices (ad2d7f8)
- handle null user in picking ticket view (92cbc21)
- handle null user in seller invoices index view (7e1c6a0)
- handle null user in seller order show view for manual invoices (a772502)
- improve dark mode text readability with white text (9264b8b), closes #e3f1eb #ffffff
- improve UX when no contacts exist for invoice customer (5c7d9e6)
- install PHP intl extension and dependencies for Filament (0ef61eb)
- make Choices.js vendor dropdown compatible with DaisyUI theme (a032d98)
- make invoice creation page header theme-aware for dark mode (5940ed1)
- make locations page header theme-aware and add icon (91fcf1e)
- make vendor dropdown reactive to dark mode toggle (4b62fab)
- move postgres to services section and add Composer caching (bef77df)
- only show 'awaiting buyer approval' after invoice is sent (ea6d2ef)
- prevent Choices.js dropdown auto-opening and clean up single-select display (36b7e5e)
- prevent dropdown menu clipping in table rows (b831dd4)
- remove @apply directives causing invalid CSS variables (6409436)
- remove Alpine x-for from vendor select to fix scope error (5dc5379)
- remove Alpine.js code and restore working toggle implementation (2a8f072)
- remove Alpine.js code causing text rendering issues (4e1706d)
- remove Canna brand - now 12 brands total (d228dd1)
- remove Cannabrands as brand - it's a company only (59db949)
- remove HtmlString label causing text overflow on toggles (eed5e57)
- remove images column conflict with images() relationship (79dbb2b), closes #5
- remove inappropriate email availability checking from login form (56b9a32)
- remove invalid Tab::description() method call (fac1f45)
- remove non-existent locations relationship from change fulfillment modal (8174aad)
- replace $order->company with $order->business in buyer order view (7751604), closes #6
- resolve ambiguous column references in analytics queries (c960754)
- resolve double-encoding issue with vendor names containing apostrophes (6b37783)
- resolve JavaScript errors in analytics charts (608c14a)
- restructure BrandResource to correct namespace and add navigation (a6fe91a)
- simplify notification widget by removing table actions (059e220)
- target active state for Choices.js dropdown background (712ce5b)
- update app layout theme and simplify DaisyUI theme config (4c38493)
- update correct field when applying picked_qty changes (d6d4ef1)
- update notification view to use correct layout and styling (dc5627e)
- update tests for new user model structure and disable Vite in testing (c165bf9)
- update to anime.js v4 API syntax (cd80da1)
- update UserApprovalService and phpunit config for new schema (a617272)
- upgrade CI to PHP 8.3 to match composer.lock requirements (8bddf54)
- use @apply with DaisyUI utilities for Choices.js theming (7aeb56d)
- use company as location (multi-location not yet implemented) (6ddfab4)
- use computed primary color for chart gradient (dd46a92), closes #3b82f6
- use correct anime.js v4 two-argument API (edd488d)
- use DaisyUI CSS variables with !important for Choices.js (9a42e25)
- use dropdown-top for table action menus (DaisyUI pattern) (9a7ad53)
- use hardcoded theme colors instead of CSS variables (57328fa), closes #ffffff #dcdee0 #1e2328 #181c20 #2c3034 #f0f4f8
- use HtmlString for dotted underline tooltip on primary toggles (b85e0a2)
- use inline-flex for locations header to prevent icon floating (e0e4094)
- use line_total column instead of non-existent subtotal in analytics (0d5904c)
- use map syntax for environment variables in Woodpecker CI (53d6f44)
- use named export for anime.js v4 (d6cf85c)
- use server-side Blade conditionals for empty data handling (f31289b)
- use Storage::url() for product images in invoice show view (0a0dbd1)
- use Storage::url() for product images in picking ticket view (2a3e4f9)
- use theme-aware colors for page headers and icons (e68df40)
- use theme-aware colors in invoices stats cards and table (102a2ed)
Features
- Add AdminPanelProvider and dashboard_url helper function (8628e44)
- add ApexCharts and anime.js for dashboard enhancements (7fca649)
- add Arizona cannabis compliance info to invoice PDF (25cc2e7)
- add batch selection UI to marketplace and cart (1ccef51)
- add batch tracking and MSRP support to invoicing (f2cadb2)
- add BOM (Bill of Materials) management system (f1d9684)
- add buyer UI for pickup selection and management (57c9407)
- add configurable tax rates for Arizona B2B cannabis compliance (dd60485)
- add data migration commands for legacy system import (cf06bcb)
- add database migrations for batch tracking system (4f53fde)
- add Docker image building to CI pipeline + deployment docs (c658193)
- add drag-and-drop reordering to BOM components (83a9f71)
- add Filament admin interface for batch management (e002322)
- add finalize & send functionality for manual invoices (05a0e74)
- add gitlab ci starter (4c3185c)
- add license field validation and storage to location controller (d77a138)
- add license_type field and clean up Business model (3b4da67)
- add light/dark mode support to ApexCharts (c2dbf28)
- add light/dark theme toggle with sun/moon icons (5bf5b7c)
- add location and contact selection to invoice creation form (e5f2dda)
- add location license number to invoice PDF (f6dda38)
- add Makefiles (5d3c5d5)
- add marketplace controllers and documentation for buyer/seller structure (eb6db6d)
- Add multi-step signup onboarding process (65c6149)
- Add new blade component files for sidebar and layout components (2f88152)
- Add new blade components for Filament panels (d6ac894)
- Add new view files for authentication and dashboard pages (80f008c)
- add notification infrastructure and policy documentation (Day 15 - Part 1) (9e4d4de)
- Add onboarding confirmation page and file upload endpoint (b843788)
- add optimized BOM UI with advanced features (b0261b9)
- add PDF export for BOM (94bc897)
- add per-brand revenue visualization with color-coded legend (b00155c)
- add picking workflow for manual invoices (18685fa)
- add pickup integration - models and database layer (a231b4a)
- add pre-commit hook for automatic code formatting (8ec361f)
- add product pricing and business enhancements (0560d5a)
- add RelationManagers and actions to ProductResource (fd1c27e)
- Add RetailerResource functionality (831f758)
- add roles, seeders, and new packages (6c07ce9)
- Add RolesOverview and UserStats widgets (5ddb1c8)
- add seller notification widget to Filament admin dashboard (04fa99d)
- add status and version routes (6d72d88)
- add stock filter to products page (392a8ea)
- Add SuperAdminSeeder for initial super admin user (645d26e)
- add tax configuration UI and location license management (87d3572)
- Add user menu and theme switcher components (43426ed)
- Add UserResource and related classes and pages (cdae421)
- add utility commands for data cleanup and fixes (52ecf0b)
- add vendor management and component images (b04e2b6)
- complete shipping manifest system with buyer access and PDF improvements (031136d)
- comprehensive auth system improvements and user management enhancements (766d416)
- comprehensive test data setup and account type analysis (c8987b1)
- convert license type to dropdown with official Arizona types (246779b)
- create fully onboarded test businesses in DevSeeder (0d0334c)
- create separate authentication controllers and views for buyers and sellers (684e947)
- create unified registration landing page with user type selection (87b862c)
- dynamically pull seller business info on invoice PDF (be0ef68)
- enforce single primary contact/user with info icon tooltip (edb69ed)
- fix component images migration to use product_images table (c1cb84f)
- implement batch tracking models and relationships (8a753ad)
- implement Brand model with 14 actual brands (49d4f11)
- implement business management features (contacts, locations, users, profiles) (38ac09e)
- implement buyer order and invoice management portal (Day 13) (aaad277)
- implement buyer-specific Nexus dashboard with Marketplace Platform-style navigation (9b72a8f)
- implement buyer/seller routing structure with dual registration options (5393969)
- implement buyer/seller user type separation in database layer (4e15b3d)
- implement CalVer versioning system with sidebar display (197d102)
- implement Choices.js for vendor selection dropdown (3c25bb4)
- implement CompanyResource with approval workflow (08d3271)
- implement complete business/company migration from old CRM (2f163db)
- implement complete Docker containerization for development and production (7629500)
- implement complete email and notification system (Day 15 - Part 2) (3183c8b)
- implement complete Nexus dashboard layout with Iconify integration (9cb9fcc)
- implement complete order management system with picking workflow (f9fa249)
- implement complete user approval and dashboard workflow (7f51605)
- implement comprehensive analytics dashboard with 5 visualizations (fdfe204)
- implement comprehensive business setup form with all CRM sections (e39623d)
- implement comprehensive buyer dashboard with real-time stats (Day 14) (98284a6)
- implement comprehensive notification system and ZOD form validation (138abc1)
- implement comprehensive Profile and Settings pages (8eeee6a)
- implement core Business model and multi-tenancy architecture (3883719)
- implement CRM-inspired theme and remove logos from auth forms (6bc6e3e), closes #014342 #015b59 #e3f1eb #172B4D #344767
- implement DaisyUI 5.x custom theme syntax (433b712)
- implement fleet management system with delivery scheduling (7781de5)
- implement interactive dashboard with ApexCharts and anime.js (3cf5c63)
- implement Lab model and StrainSeeder for cannabis compliance (a26c0fc)
- implement manual admin approval workflow for user registration (ead8916)
- implement payment term surcharges at checkout (cf148a8)
- implement product migration command with dry-run support (ba2f434)
- implement Product, Strain, and Component models with BOM system (d4aebad)
- implement ProductResource in Filament with cannabis-specific features (5d7f7d6)
- implement seamless primary toggle switching with Livewire (fe790d2)
- implement seller notification system (Day 16) (c024cd8)
- implement unified single login for all user types (c00e869)
- implement UUID-based storage paths for multi-tenant isolation (2b6f2df)
- improve manual invoice workflow to skip picking stages (ca0bda4)
- integrate batch selection in marketplace and cart (af96aba)
- migrate business-level contact fields to Contact records (d97534d)
- migrate to first_name/last_name fields and fix authentication routing (42a6f13)
- models: Add retailer_id field to User model and migration (25d8e71)
- optimize form field widths and add Alpine.js formatters (e58c0ab)
- optimize theme colors for UX and accessibility (ee8c7b8), closes #015b59 #e3f1eb
- remove standard /register route, use only /b/register (f4de7da)
- rename businesses table and model to companies (cd02403)
- replace Spatie Laravel PDF with DomPDF for all PDF generation (e3cb8b2)
- successfully upgrade Filament from v3 to v4 (cd77339)
- update business registration form to match main register styling (b4b4324)
- update dashboard page title and breadcrumb for multi-tenant future (0f872b6)
- update invoice PDF to display contact and location information (79fc856)
- update manifest PDF template for pickup/delivery (c7e9f95)
- update seller/admin views for pickup display (9f98ab3)
- upgrade Pest testing framework to v4.0 (24c2eb2)
Performance Improvements
- optimize animations for 60fps performance (2180897)
- optimize primary toggle switching for instant response (ccbbd33)