import { json, type RequestHandler } from '@sveltejs/kit';
import { BackendAuth } from '$lib/auth/backend';

const backendAuth = new BackendAuth(
  {
    clientId: process.env.CLIENT_ID,
    tenantId: process.env.TENANT_ID,
    clientSecret: process.env.CLIENT_SECRET,
  },
  process.env.PB_DB
);

export const POST: RequestHandler = async ({ request }) => {
  try {
    const body = await request.json();
    const token = body.pbToken;

    if (!token) {
      return json({ valid: false, error: 'No token provided' }, { status: 400 });
    }

    const isValid = await backendAuth.pbValidator.validateUserToken(token);
    const user = isValid ? await backendAuth.pbValidator.getUserRecord(token) : null;

    return json({
      valid: isValid,
      user: user ? {
        id: user.id,
        email: user.email,
        name: user.name,
      } : null,
    });
  } catch (error) {
    return json(
      { valid: false, error: error instanceof Error ? error.message : 'Validation failed' },
      { status: 500 }
    );
  }
};
