+ {/* ブランド名 */}
+
{brand_name}
+
+ {/* カルーセル */}
+ {image && image.length > 0 && (
+
+
+ {image.map((rel, idx) => {
+ const src = toAssetUrl(rel);
+ if (!src) return null;
+ return (
+
+
+
+ );
+ })}
+
+
+ {/* ナビゲーションボタン */}
+ {total > 1 && (
+ <>
+
+
+ >
+ )}
+
+ {/* ドットインジケータ */}
+ {total > 1 && (
+
+ {image.map((_, i) => (
+
+ )}
+
+ )}
+
+ {/* 紹介文 */}
+ {contents && (
+
+ )}
+
+ {/* 営業情報 */}
+ {(business_hour_start || business_hour_end || business_hours_comment) && (
+
+
+ 営業時間:{formatTime(business_hour_start)}〜{formatTime(business_hour_end)}
+
+ {business_hours_comment && (
+
{business_hours_comment}
+ )}
+
+ )}
+
+ {/* 連絡先 */}
+ {contacts && contacts.length > 0 && (
+
+ {contacts.map((c) => (
+
+ {c.label}:{c.value}
+
+ ))}
+
+ )}
+
+ );
+}
diff --git a/src/app/brand/page.tsx b/src/app/brand/page.tsx
new file mode 100644
index 0000000..408ef55
--- /dev/null
+++ b/src/app/brand/page.tsx
@@ -0,0 +1,36 @@
+import { getAllBrands } from "@/lib/directus/brand";
+import BrandList from "@/components/brand/BrandList";
+import type { CompanyBrand } from "@/types/brand";
+
+export const revalidate = 0;
+
+const brandsRaw = await getAllBrands();
+
+const brands = brandsRaw.map