import { createClient } from '@/lib/supabase/server'
import { getSelectedBranchId } from '@/lib/branch'
import { MaterialsClient } from './materials-client'

export default async function MaterialsPage() {
  const supabase = await createClient()
  const { data: org } = await supabase.from('organizations').select('id').single()
  if (!org) return <div>Байгууллага олдсонгүй</div>

  const { data: branches } = await supabase
    .from('branches')
    .select('id')
    .eq('org_id', org.id)
    .order('created_at')

  const branchId = await getSelectedBranchId(branches ?? [])
  if (!branchId) {
    return (
      <div className="text-center py-20 text-gray-500">
        Салбар олдсонгүй. Эхлээд <a href="/branches" className="text-amber-600 underline">салбар үүсгэнэ үү</a>.
      </div>
    )
  }

  const [{ data: materials }, { data: stockData }] = await Promise.all([
    supabase
      .from('raw_materials')
      .select('id, org_id, name, unit, price_per_unit, created_at')
      .eq('org_id', org.id)
      .order('name'),
    supabase
      .from('branch_stock')
      .select('id, material_id, current_stock, min_stock')
      .eq('branch_id', branchId),
  ])

  const merged = (materials ?? []).map(m => {
    const stock = stockData?.find(s => s.material_id === m.id)
    return {
      ...m,
      stock_id: stock?.id ?? null,
      current_stock: stock?.current_stock ?? 0,
      min_stock: stock?.min_stock ?? 0,
    }
  })

  return <MaterialsClient orgId={org.id} branchId={branchId} initialMaterials={merged} />
}
