공개 release 발행 시 파일 본문 누출 검사(check-public-release-leakage)에 걸리던 내부 단서를 정리해 발행을 차단하지 않도록 함. - 코드/테스트 주석·문서 본문의 "" 규정 인용을 "코어 규정/규칙" 등 중립 표현으로 치환 (코어·이커머스·board·kginicis·gdpr·pay·템플릿 전 영역) - 내부 역할 호칭 ""/""를 문맥에 맞는 중립 표현으로 일반화 - config/app.php 의 보호경로 목록(G7_UPDATE_PROTECTED_PATHS) 내 파일명은 기능 코드이므로 삭제 대신 검사기 화이트리스트에 등록 주석/설명 문자열/문서 본문만 변경 — 로직·데이터·동작 무변경. 검증: 누출 재검사 error 0 / warn 0, 영향 테스트 TS 140/140·PHP 113/113 통과.
71 lines
1.9 KiB
PHP
71 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
|
|
/**
|
|
* 템플릿 레이아웃 첨부 파일 모델
|
|
*
|
|
* 레이아웃 편집 중 업로드되는 파일(배경 이미지 등)을 표현한다. 파일 자체는
|
|
* 코어 StorageInterface 로 저장되고 본 모델은 저장 위치(disk/path)와 메타데이터를
|
|
* 보관한다. 템플릿 삭제 시 행은 cascadeOnDelete 로 삭제되나, 스토리지 파일
|
|
* 실삭제는 Service 가 명시적으로 수행한다(코어 규정: DB CASCADE 의존 삭제 금지).
|
|
*
|
|
* @property int $id 첨부 파일 ID
|
|
* @property int $template_id 소속 템플릿 ID
|
|
* @property string|null $layout_name 사용 출처 레이아웃 이름
|
|
* @property string $disk 스토리지 디스크 이름
|
|
* @property string $path 스토리지 내 파일 경로
|
|
* @property string $original_name 업로드 원본 파일명
|
|
* @property string $mime_type MIME 타입
|
|
* @property int $size 파일 크기(바이트)
|
|
* @property int|null $created_by 업로더 사용자 ID
|
|
*/
|
|
class TemplateLayoutAttachment extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
/**
|
|
* 대량 할당 가능한 속성
|
|
*
|
|
* @var array<int, string>
|
|
*/
|
|
protected $fillable = [
|
|
'template_id',
|
|
'layout_name',
|
|
'disk',
|
|
'path',
|
|
'original_name',
|
|
'mime_type',
|
|
'size',
|
|
'created_by',
|
|
];
|
|
|
|
/**
|
|
* 속성 캐스팅
|
|
*
|
|
* @return array<string, string>
|
|
*/
|
|
protected function casts(): array
|
|
{
|
|
return [
|
|
'template_id' => 'integer',
|
|
'size' => 'integer',
|
|
'created_by' => 'integer',
|
|
];
|
|
}
|
|
|
|
/**
|
|
* 소속 템플릿 관계
|
|
*
|
|
* @return BelongsTo<Template, TemplateLayoutAttachment>
|
|
*/
|
|
public function template(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Template::class);
|
|
}
|
|
}
|