import type { users } from "@folo-services/drizzle"
import type { InferSelectModel } from "drizzle-orm"

import type { SerializedModel, SuccessResponse } from "../../types"

// Database types - excluding email for public API
type User = SerializedModel<InferSelectModel<typeof users>>
export type UserProfile = Omit<User, "email">

// Request types
export interface GetProfileRequest {
  id?: string
  handle?: string
}

export interface GetProfilesBatchRequest {
  ids: string[]
}

// Response types
export type GetProfileResponse = SuccessResponse<UserProfile>
export type GetProfilesBatchResponse = SuccessResponse<
  Record<string, UserProfile>
>
