import { apiError, requireOwner } from "@/lib/auth";
import { ensureSchema, rawDb, runtimeEnv } from "@/lib/db";

export async function GET(request: Request) {
  try {
    const ownerId = requireOwner(request);
    const brandId = new URL(request.url).searchParams.get("brandId");
    if (!brandId) throw new Error("brandId가 필요합니다.");
    await ensureSchema();
    const result = await rawDb().prepare(`SELECT id, brand_id, platform, platform_user_id, username,
      profile_image_url, token_expires_at, status, created_at, updated_at
      FROM social_accounts WHERE owner_id = ? AND brand_id = ? ORDER BY platform, created_at`)
      .bind(ownerId, brandId).all();
    const config = runtimeEnv();
    return Response.json({
      accounts: result.results,
      configured: {
        instagram: Boolean(config.INSTAGRAM_APP_ID && config.INSTAGRAM_APP_SECRET && config.TOKEN_ENCRYPTION_KEY),
        threads: Boolean(config.THREADS_APP_ID && config.THREADS_APP_SECRET && config.TOKEN_ENCRYPTION_KEY),
      },
    });
  } catch (error) { return apiError(error); }
}
