*/ public function listForTemplate(int $templateId, ?string $layoutName = null): Collection { return TemplateLayoutAttachment::query() ->where('template_id', $templateId) ->when($layoutName !== null, fn ($query) => $query->where('layout_name', $layoutName)) ->orderByDesc('id') ->get(); } /** * 첨부 파일 생성 * * @param array $data 생성 데이터 * @return TemplateLayoutAttachment 생성된 첨부 파일 */ public function create(array $data): TemplateLayoutAttachment { return TemplateLayoutAttachment::create($data); } /** * 첨부 파일 삭제 (DB 행만 — 스토리지 파일 삭제는 Service 책임) * * @param TemplateLayoutAttachment $attachment 삭제할 첨부 파일 * @return bool 삭제 성공 여부 */ public function delete(TemplateLayoutAttachment $attachment): bool { return (bool) $attachment->delete(); } }