'required|integer', 'user_id' => 'required|integer', 'note_text' => 'required|min_length[3]', ]; protected $validationMessages = [ 'lead_id' => [ 'required' => 'Lead ID is required', ], 'note_text' => [ 'required' => 'Note text is required', ], ]; protected $skipValidation = false; /** * Get notes by lead with user details */ public function getNotesByLead($leadId) { return $this->select('sales_lead_notes.*, user_profiles.first_name') ->join('user_profiles', 'user_profiles.id = sales_lead_notes.created_by', 'left') ->where('sales_lead_notes.lead_id', $leadId) ->orderBy('sales_lead_notes.created_at', 'DESC') ->findAll(); } /** * Get notes by user */ public function getNotesByUser($userId, $limit = 20, $offset = 0) { return $this->select('sales_lead_notes.*, actual_leads.company_name') ->join('actual_leads', 'actual_leads.lead_id = sales_lead_notes.lead_id', 'left') ->where('sales_lead_notes.created_by', $userId) ->orderBy('sales_lead_notes.created_at', 'DESC') ->limit($limit, $offset) ->findAll(); } }