import { Request } from "express";

export interface AuthPayload {
  userId: string;
  vendorId: string;
  roleId: string;
  roleName: string;
}

export interface AuthenticatedRequest extends Request {
  auth: AuthPayload;
}

export interface ApiError {
  code: string;
  message: string;
  details?: unknown;
}

export interface PaginationQuery {
  page?: number;
  limit?: number;
}

export interface PaginatedResponse<T> {
  data: T[];
  pagination: {
    page: number;
    limit: number;
    total: number;
    totalPages: number;
  };
}
