fix: social_events API public + add availability table
- Make social_events GET endpoint public (was returning 401) - Add WHERE active = TRUE filter to social_events query - Create availability table for room date management
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -4,17 +4,17 @@ import { db } from '@/lib/db';
|
|||||||
|
|
||||||
export async function GET() {
|
export async function GET() {
|
||||||
try {
|
try {
|
||||||
await requireRole('admin');
|
|
||||||
const { rows } = await db.query(`
|
const { rows } = await db.query(`
|
||||||
SELECT se.*,
|
SELECT se.*,
|
||||||
(SELECT COUNT(*) FROM social_event_reservations ser WHERE ser.social_event_id = se.id) as reservation_count
|
(SELECT COUNT(*) FROM social_event_reservations ser WHERE ser.social_event_id = se.id) as reservation_count
|
||||||
FROM social_events se
|
FROM social_events se
|
||||||
|
WHERE se.active = TRUE
|
||||||
ORDER BY se.sort_order, se.date, se.id
|
ORDER BY se.sort_order, se.date, se.id
|
||||||
`);
|
`);
|
||||||
return NextResponse.json({ data: rows });
|
return NextResponse.json({ data: rows });
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.error('GET /api/social_events error:', error);
|
console.error('GET /api/social_events error:', error);
|
||||||
return NextResponse.json({ error: error.message || 'Unauthorized' }, { status: 401 });
|
return NextResponse.json({ error: error.message || 'Failed to fetch social events' }, { status: 500 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -221,6 +221,18 @@ export async function initSchema() {
|
|||||||
await db.query(`
|
await db.query(`
|
||||||
ALTER TABLE users ADD COLUMN IF NOT EXISTS last_name VARCHAR(100);
|
ALTER TABLE users ADD COLUMN IF NOT EXISTS last_name VARCHAR(100);
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
await db.query(`
|
||||||
|
CREATE TABLE IF NOT EXISTS availability (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
room_id INTEGER REFERENCES rooms(id) ON DELETE CASCADE,
|
||||||
|
date DATE NOT NULL,
|
||||||
|
status VARCHAR(20) NOT NULL DEFAULT 'available' CHECK (status IN ('available', 'booked', 'maintenance')),
|
||||||
|
price NUMERIC(10,2),
|
||||||
|
created_at TIMESTAMP DEFAULT NOW(),
|
||||||
|
UNIQUE(room_id, date)
|
||||||
|
);
|
||||||
|
`);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function migrateFromLegacyPlaces() {
|
export async function migrateFromLegacyPlaces() {
|
||||||
|
|||||||
Reference in New Issue
Block a user