import { redirect } from'next/navigation'
import { createClient } from'@/lib/supabase/server'
import { getUserSession } from'@/lib/auth/permissions'
import AppHeader from'@/components/layout/app-header'
import UserDirectoryClient from'@/components/admin/user-directory-client'
import type { DepartmentMasterData } from'@/lib/repository-types'

export default async function UserDirectoryPage() {
 const supabase = await createClient()

 const { data: claimsData } = await supabase.auth.getClaims()
 if (!claimsData?.claims) redirect('/login')

 const session = await getUserSession()

 const { data: users } = await supabase
 .from('user_profiles')
 .select(`
 id,
 first_name,
 last_name,
 display_name,
 email,
 account_status,
 department_id,
 role_id,
 roles ( id, code, label ),
 department_master_data ( id, department_code, department_name )
 `)
 .is('deleted_at', null)
 .eq('account_status','active')
 .order('last_name')

 const { data: departments } = await supabase
 .from('department_master_data')
 .select('id, department_code, department_name, organization_area, is_active, created_at, updated_at')
 .eq('is_active', true)
 .order('department_name')

 return (
 <>
 <AppHeader title="Verzeichnis"backHref="/admin/users"/>
 <main className="px-4 py-6 pb-24 md:pb-8 max-w-5xl mx-auto w-full">
 <UserDirectoryClient
 users={users ?? []}
 departments={(departments ?? []) as DepartmentMasterData[]}
 session={session}
 />
 </main>
 </>
 )
}
