package api

import (
	"encoding/json"
	"testing"
)

func TestMeResponseDecodeAPITimestamps(t *testing.T) {
	raw := `{
		"account":{"id":7,"email":"pedrokautza@gmail.com","is_active":true,"created_at":"2026-06-08T21:11:57.030000"},
		"rate_limit_per_minute":60,
		"product":{"name":"Test","role":"user","status":"active","subscription":{"plan":"trial","plan_name":"Trial","status":"trial","ends_at":"2026-06-22T21:11:57.356000"},"limits":{"max_active_leads":5,"active_leads_count":0,"slots_remaining":5,"max_add_per_day":10,"added_today":0,"can_export":false,"exports_today":0,"max_export_per_day":0,"max_search_page_size":10},"access":{"can_use_app":true,"reason":null}}
	}`
	var me MeResponse
	if err := json.Unmarshal([]byte(raw), &me); err != nil {
		t.Fatalf("decode failed: %v", err)
	}
	if me.Account.Email != "pedrokautza@gmail.com" {
		t.Fatalf("email=%q", me.Account.Email)
	}
	if me.Account.CreatedAt.IsZero() {
		t.Fatal("created_at not parsed")
	}
	if me.Product == nil || me.Product.Subscription.EndsAt == nil {
		t.Fatal("ends_at not parsed")
	}
}

func TestAccountCreatedAtOnly(t *testing.T) {
	var a AccountResponse
	err := json.Unmarshal([]byte(`{"created_at":"2026-06-08T21:11:57.030000"}`), &a)
	if err == nil {
		return
	}
	t.Logf("expected parse issue with std time.Time: %v", err)
}
