export interface User {
  id: string; // UUID
  email: string;
  authentik_sub: string;
  name?: string;
  preferred_username?: string;
  given_name?: string;
  family_name?: string;
  profile_picture_url?: string;
  refresh_token?: string;
  refresh_token_expires_at?: Date;
  nextcloud_login_name?: string;
  nextcloud_app_password?: string;
  is_active: boolean;
  last_login_at?: Date;
  created_at: Date;
  updated_at: Date;
  preferences?: any; // JSONB
  authentik_groups: string[];
  sync_source?: string | null;
}

export interface CreateUserData {
  email: string;
  authentik_sub: string;
  name?: string;
  preferred_username?: string;
  given_name?: string;
  family_name?: string;
  profile_picture_url?: string;
  authentik_groups?: string[];
}

export interface UpdateUserData {
  name?: string;
  preferred_username?: string;
  given_name?: string;
  family_name?: string;
  profile_picture_url?: string;
  is_active?: boolean;
  preferences?: any;
}
