VendorBusinessAreaModel.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace App\Models;
  3. use CodeIgniter\Model;
  4. class VendorBusinessAreaModel extends Model
  5. {
  6. protected $table = 'vendor_business_areas';
  7. protected $primaryKey = 'id';
  8. protected $useAutoIncrement = true;
  9. protected $returnType = 'array';
  10. protected $useSoftDeletes = false;
  11. protected $allowedFields = [
  12. 'vendor_seq', 'business_area'
  13. ];
  14. protected $useTimestamps = true;
  15. protected $createdField = 'created_at';
  16. protected $updatedField = null;
  17. protected $validationRules = [
  18. 'vendor_seq' => 'required|integer|is_not_unique[vendors.id]',
  19. 'business_area' => 'required|max_length[100]'
  20. ];
  21. protected $validationMessages = [
  22. 'vendor_seq' => [
  23. 'required' => '벤더사 id는 필수입니다.',
  24. 'is_not_unique' => '존재하지 않는 벤더사입니다.'
  25. ],
  26. 'business_area' => [
  27. 'required' => '사업 분야는 필수입니다.'
  28. ]
  29. ];
  30. // 벤더사의 사업 분야 일괄 업데이트
  31. public function updateBusinessAreas($vendorId, $businessAreas)
  32. {
  33. $this->db->transStart();
  34. // 기존 사업 분야 삭제
  35. $this->where('vendor_seq', $vendorId)->delete();
  36. // 새로운 사업 분야 추가
  37. if (!empty($businessAreas)) {
  38. $insertData = [];
  39. foreach ($businessAreas as $area) {
  40. $insertData[] = [
  41. 'vendor_seq' => $vendorId,
  42. 'business_area' => $area
  43. ];
  44. }
  45. $this->insertBatch($insertData);
  46. }
  47. $this->db->transComplete();
  48. return $this->db->transStatus();
  49. }
  50. }