feat(landscape): multi-photo gallery like rooms with uploads and ordering

This commit is contained in:
2026-06-27 19:29:08 -05:00
parent cfd0c533a4
commit 71ae322b3f
5 changed files with 174 additions and 76 deletions
+4 -4
View File
@@ -7,12 +7,12 @@ export async function PUT(request: NextRequest, { params }: { params: { id: stri
await requireRole('admin');
const id = parseInt(params.id, 10);
const body = await request.json();
const { name, description, photo, distance_km, visit_time, suggestion, active, sort_order } = body;
const { name, description, photos, featured_photo, distance_km, visit_time, suggestion, active, sort_order } = body;
const { rows } = await db.query(
`UPDATE places SET name = $1, description = $2, photo = $3, distance_km = $4, visit_time = $5, suggestion = $6, active = $7, sort_order = $8
WHERE id = $9 RETURNING *`,
[name, description, photo || null, distance_km || null, visit_time || null, suggestion || null, active, sort_order || 0, id]
`UPDATE places SET name = $1, description = $2, photos = $3, featured_photo = $4, distance_km = $5, visit_time = $6, suggestion = $7, active = $8, sort_order = $9
WHERE id = $10 RETURNING *`,
[name, description, photos || '{}', featured_photo || null, distance_km || null, visit_time || null, suggestion || null, active, sort_order || 0, id]
);
if (rows.length === 0) {
+4 -4
View File
@@ -16,17 +16,17 @@ export async function POST(request: NextRequest) {
try {
await requireRole('admin');
const body = await request.json();
const { name, description, photo, distance_km, visit_time, suggestion, sort_order } = body;
const { name, description, photos, featured_photo, distance_km, visit_time, suggestion, sort_order } = body;
if (!name || !description) {
return NextResponse.json({ error: 'Missing required fields' }, { status: 400 });
}
const { rows } = await db.query(
`INSERT INTO places (name, description, photo, distance_km, visit_time, suggestion, sort_order)
VALUES ($1, $2, $3, $4, $5, $6, $7)
`INSERT INTO places (name, description, photos, featured_photo, distance_km, visit_time, suggestion, sort_order)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
RETURNING *`,
[name, description, photo || null, distance_km || null, visit_time || null, suggestion || null, sort_order || 0]
[name, description, photos || '{}', featured_photo || null, distance_km || null, visit_time || null, suggestion || null, sort_order || 0]
);
return NextResponse.json({ data: rows[0] });