import { Hono } from "hono";
import { sessionMiddleware, requireAuth } from "../middleware/auth.js";
import { listReposByOwner } from "../db/queries.js";

export const meRouter = new Hono()
  .use(sessionMiddleware)
  .get("/me", requireAuth, (c) => {
    const user = c.get("user")!;
    return c.json(user);
  })
  .get("/me/repos", requireAuth, async (c) => {
    const user = c.get("user")!;
    const rows = await listReposByOwner(user.id);
    return c.json(
      rows.map((r) => ({
        id: r.id,
        name: r.name,
        description: r.description,
        visibility: r.visibility,
        defaultChannel: r.default_channel,
        owner: { id: r.owner_id, username: r.owner_username, displayName: r.owner_display_name },
        createdAt: r.created_at,
        updatedAt: r.updated_at,
      })),
    );
  });