/** Types generated for queries found in "src/modules/auth/providers/business-users.provider.ts" */

/** 'GetBusinessUsersByAuth0Ids' parameters type */
export interface IGetBusinessUsersByAuth0IdsParams {
  auth0UserIds: readonly (string | null | void)[];
}

/** 'GetBusinessUsersByAuth0Ids' return type */
export interface IGetBusinessUsersByAuth0IdsResult {
  /** Auth0 user identifier (e.g., 'auth0|507f1f77bcf86cd799439011'), populated after first login */
  auth0_user_id: string | null;
  /** Business this user belongs to */
  business_id: string;
  /** Role assigned to this user within this business */
  role_id: string;
  /** Local user identifier, generated when invitation is created */
  user_id: string;
}

/** 'GetBusinessUsersByAuth0Ids' query type */
export interface IGetBusinessUsersByAuth0IdsQuery {
  params: IGetBusinessUsersByAuth0IdsParams;
  result: IGetBusinessUsersByAuth0IdsResult;
}

/** 'InsertBusinessUser' parameters type */
export interface IInsertBusinessUserParams {
  auth0UserId?: string | null | void;
  ownerId?: string | null | void;
  roleId?: string | null | void;
  userId?: string | null | void;
}

/** 'InsertBusinessUser' return type */
export interface IInsertBusinessUserResult {
  /** Auth0 user identifier (e.g., 'auth0|507f1f77bcf86cd799439011'), populated after first login */
  auth0_user_id: string | null;
  /** Business this user belongs to */
  business_id: string;
  created_at: Date;
  /** Role assigned to this user within this business */
  role_id: string;
  updated_at: Date;
  /** Local user identifier, generated when invitation is created */
  user_id: string;
}

/** 'InsertBusinessUser' query type */
export interface IInsertBusinessUserQuery {
  params: IInsertBusinessUserParams;
  result: IInsertBusinessUserResult;
}

/** 'ListBusinessUsers' parameters type */
export interface IListBusinessUsersParams {
  ownerId?: string | null | void;
}

/** 'ListBusinessUsers' return type */
export interface IListBusinessUsersResult {
  /** Auth0 user identifier (e.g., 'auth0|507f1f77bcf86cd799439011'), populated after first login */
  auth0_user_id: string | null;
  created_at: Date;
  fallback_email: string | null;
  /** Role assigned to this user within this business */
  role_id: string;
  /** Local user identifier, generated when invitation is created */
  user_id: string;
}

/** 'ListBusinessUsers' query type */
export interface IListBusinessUsersQuery {
  params: IListBusinessUsersParams;
  result: IListBusinessUsersResult;
}

/** 'DeleteBusinessUser' parameters type */
export interface IDeleteBusinessUserParams {
  ownerId?: string | null | void;
  userId?: string | null | void;
}

/** 'DeleteBusinessUser' return type */
export interface IDeleteBusinessUserResult {
  /** Local user identifier, generated when invitation is created */
  user_id: string;
}

/** 'DeleteBusinessUser' query type */
export interface IDeleteBusinessUserQuery {
  params: IDeleteBusinessUserParams;
  result: IDeleteBusinessUserResult;
}

