feat: 사용자 의견(피드백) 기능 — 화면 캡처+이미지 첨부, 관리자 검토
- 전 화면 우하단 '의견' 위젯(embed/portal/admin 레이아웃) — 로그인 사용자 - 의견 + html2canvas 화면 캡처 + 이미지 첨부(최대 5장) 저장 - 화면 URL/계정/지자체 자동 수집(계정·지자체는 서버 세션 기준) - 관리자 /admin/feedback 목록·상세·상태(접수/처리중/완료/보류)·메모, 테넌트 분리 - feedback/feedback_file 테이블, 첨부 이미지는 관리자 전용 라우트로 서빙 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
40
app/Models/FeedbackModel.php
Normal file
40
app/Models/FeedbackModel.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
/**
|
||||
* 사용자 의견(피드백) 모델.
|
||||
*/
|
||||
class FeedbackModel extends Model
|
||||
{
|
||||
protected $table = 'feedback';
|
||||
protected $primaryKey = 'fb_idx';
|
||||
protected $returnType = 'object';
|
||||
protected $useTimestamps = true;
|
||||
protected $createdField = 'fb_regdate';
|
||||
protected $updatedField = 'fb_updated';
|
||||
protected $dateFormat = 'datetime';
|
||||
|
||||
protected $allowedFields = [
|
||||
'fb_lg_idx', 'fb_mb_idx', 'fb_mb_name', 'fb_mb_level',
|
||||
'fb_content', 'fb_page_url', 'fb_page_title', 'fb_screenshot',
|
||||
'fb_user_agent', 'fb_status', 'fb_admin_memo',
|
||||
];
|
||||
|
||||
/** 허용 상태 값 */
|
||||
public const STATUSES = ['new', 'in_progress', 'done', 'hold'];
|
||||
|
||||
public static function statusLabel(string $s): string
|
||||
{
|
||||
return [
|
||||
'new' => '접수',
|
||||
'in_progress' => '처리중',
|
||||
'done' => '완료',
|
||||
'hold' => '보류',
|
||||
][$s] ?? $s;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user