<?php

namespace App\Http\Resources\Families;

use Illuminate\Http\Resources\Json\JsonResource;

class FamilyResource extends JsonResource
{
    public function toArray($request): array
    {
        return [
            'id' => (int) ($this['id'] ?? 0),
            'family_code' => (string) ($this['family_code'] ?? ''),
            'household_name' => (string) ($this['household_name'] ?? ''),
            'address_line1' => (string) ($this['address_line1'] ?? ''),
            'address_line2' => (string) ($this['address_line2'] ?? ''),
            'city' => (string) ($this['city'] ?? ''),
            'state' => (string) ($this['state'] ?? ''),
            'postal_code' => (string) ($this['postal_code'] ?? ''),
            'country' => (string) ($this['country'] ?? ''),
            'primary_phone' => (string) ($this['primary_phone'] ?? ''),
            'preferred_lang' => (string) ($this['preferred_lang'] ?? ''),
            'preferred_contact_method' => (string) ($this['preferred_contact_method'] ?? ''),
            'is_active' => (bool) ($this['is_active'] ?? false),
            'is_primary_home' => (bool) ($this['is_primary_home'] ?? false),
            'guardians' => FamilyGuardianResource::collection($this['guardians'] ?? []),
            'students' => FamilyStudentResource::collection($this['students'] ?? []),
            'invoices' => FamilyInvoiceResource::collection($this['invoices'] ?? []),
            'payments' => FamilyPaymentResource::collection($this['payments'] ?? []),
            'emergency_contacts' => FamilyEmergencyContactResource::collection($this['emergency_contacts'] ?? []),
            'finance_summary' => $this['finance_summary'] ?? [
                'invoices_count' => 0,
                'total_amount' => 0.0,
                'paid_amount' => 0.0,
                'balance' => 0.0,
            ],
            'invoice_map' => $this['invoice_map'] ?? [],
        ];
    }
}
