import type { Knex } from "knex";

export async function seed(knex: Knex): Promise<void> {
  await knex("permissions").del();

  await knex("permissions").insert([
    {
      code: { action: "manage_users", resource: "users" },
      label: "Manage Users",
      module_group: { module: "user_management", group: "admin" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "view_users", resource: "users" },
      label: "View Users",
      module_group: { module: "user_management", group: "admin" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "manage_pages", resource: "pages" },
      label: "Manage Pages",
      module_group: { module: "content_management", group: "pages" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "view_pages", resource: "pages" },
      label: "View Pages",
      module_group: { module: "content_management", group: "pages" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "manage_prompts", resource: "prompts" },
      label: "Manage Prompts",
      module_group: { module: "content_management", group: "prompts" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "view_prompts", resource: "prompts" },
      label: "View Prompts",
      module_group: { module: "content_management", group: "prompts" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "manage_tools", resource: "tools" },
      label: "Manage Tools",
      module_group: { module: "tool_management", group: "tools" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "view_tools", resource: "tools" },
      label: "View Tools",
      module_group: { module: "tool_management", group: "tools" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "manage_settings", resource: "settings" },
      label: "Manage Settings",
      module_group: { module: "system_management", group: "settings" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "use_tools", resource: "tools" },
      label: "Use Tools",
      module_group: { module: "frontend", group: "tools" },
      created_at: new Date(),
      updated_at: new Date(),
    },
    {
      code: { action: "view_pages", resource: "pages" }, // Already exists — reused for web_user
      label: "View Pages",
      module_group: { module: "frontend", group: "pages" },
      created_at: new Date(),
      updated_at: new Date(),
    },
  ]);
}
