import type { Role, Schema, User, UserRole } from "../lib/types";

export const pendingUser = {
  id: "user-pending-1",
  email: "pending@example.com",
  name: "Pending User",
  status: "PENDING",
  permissions: null,
  createdAt: new Date("2024-01-01T00:00:00.000Z"),
  updatedAt: null,
} as const satisfies User<Schema>;

export const activeUser = {
  id: "user-active-1",
  email: "active@example.com",
  name: "Active User",
  status: "ACTIVE",
  permissions: null,
  createdAt: new Date("2024-01-01T00:00:00.000Z"),
  updatedAt: new Date("2024-01-02T00:00:00.000Z"),
} as const satisfies User<Schema>;

export const inactiveUser = {
  id: "user-inactive-1",
  email: "inactive@example.com",
  name: "Inactive User",
  status: "INACTIVE",
  permissions: null,
  createdAt: new Date("2024-01-01T00:00:00.000Z"),
  updatedAt: new Date("2024-01-03T00:00:00.000Z"),
} as const satisfies User<Schema>;

export const baseRole = {
  id: "role-1",
  name: "Order Manager",
  description: "Role for managing orders",
  status: "ACTIVE",
  permissions: null,
  createdAt: new Date("2024-01-01T00:00:00.000Z"),
  updatedAt: null,
} as const satisfies Role<Schema>;

export const adminRole = {
  id: "role-2",
  name: "Admin",
  description: "Administrator role",
  status: "ACTIVE",
  permissions: ["admin:system:manage"],
  createdAt: new Date("2024-01-01T00:00:00.000Z"),
  updatedAt: null,
} as const satisfies Role<Schema>;

export const inactiveRole = {
  id: "role-3",
  name: "Legacy Sales Rep",
  description: "Deactivated legacy role",
  status: "INACTIVE",
  permissions: null,
  createdAt: new Date("2024-01-01T00:00:00.000Z"),
  updatedAt: new Date("2024-01-05T00:00:00.000Z"),
} as const satisfies Role<Schema>;

export const baseUserRole = {
  id: "user-role-1",
  userId: "user-active-1",
  roleId: "role-1",
  createdAt: new Date("2024-01-01T00:00:00.000Z"),
  updatedAt: null,
} as const satisfies UserRole<Schema>;
