<script lang="ts">
/** @type {import('./$types').PageData} */
let log_lvl: number = 1;

// *** Import Svelte specific
import { browser } from '$app/environment';
// import { Modal } from 'flowbite-svelte';

// *** Import other supporting libraries
import { liveQuery } from "dexie";

// *** Import Aether specific variables and functions
// import type { key_val } from '$lib/ae_stores';
// import { ae_util } from '$lib/ae_utils/ae_utils';
// import { core_func } from '$lib/ae_core/ae_core_functions';
import { db_archives } from "$lib/ae_archives/db_archives";
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
import { core_func } from '$lib/ae_core/ae_core_functions';
import { idaa_loc, idaa_sess, idaa_slct, idaa_trig } from '$lib/ae_idaa_stores';
// import { archives_func } from '$lib/ae_archives/ae_archives_functions';

import Comp__archive_obj_li from './ae_idaa_comp__archive_obj_li.svelte';

interface Props {
    /** @type {import('./$types').PageData} */
    data: any;
}
let { data }: Props = $props();


if (log_lvl) {
    console.log(`ae_idaa_bb +page.svelte data:`, data);
}

let lq__archive_obj_li = $derived(liveQuery(async () => {
    let results = await db_archives.archive
        .where('account_id')
        .equals($slct.account_id)
        // .orderBy('updated_on')
        // .toArray()
        .reverse()
        .sortBy('sort');
        // .sortBy('updated_on');
        // .sortBy('updated_on, created_on');
        // .sortBy('[updated_on+created_on]');
        // .sortBy('[created_on+updated_on]');

    return results;
}));


if (browser) {
    console.log('Browser environment detected.');

    // The archive_id should not already be set while the page is loading if we are looking at this page?
    // let message = {'archive_id': $idaa_slct?.archive_id ?? null};
    $idaa_slct.archive_id = null;
    let message = {'archive_id': $idaa_slct.archive_id};
    window.parent.postMessage(message, "*");

    add_activity_log(
        {
            action: 'idaa_archives_page',
            action_with: 'browser',
        }
    );
}

function add_activity_log(
        {
            action = 'idaa_archives_page',
            action_with = 'none',
        }: {
            action?: string,
            action_with?: string,
        }
    ) {

    let last_cache_refresh_iso = new Date($ae_loc?.last_cache_refresh);

    let activity_description = `
        ${$idaa_loc.novi_full_name ?? 'none'} ${$idaa_loc.novi_email ?? 'no-email'}
        allow=${$ae_loc?.allow_access}
        last_cache_refresh=${last_cache_refresh_iso.toLocaleString()}
        data_route=${data?.route.toString() ?? 'unknown'}
    `;

    let data_kv = {
        external_client_id: data?.route.id,
        name: `IDAA: ${$idaa_loc.novi_full_name ?? 'none'} ${$idaa_loc.novi_email ?? ''}`,
        description: activity_description ?? null,
        object_type: 'archive', // archive, post, event
        // object_id_random: data?.params?.archive_id ?? null,
        // object_id_random: ae_acct.slct.archive_id, // data?.params?.archive_id ?? null,
        url_root: data?.url.origin,
        // url_full_path: data?.url.href,
        url_full_path: data?.url.pathname,
        url_params: data?.url.searchParams.toString(),
        action: action,
        action_with: action_with ?? 'none',
        meta_json: {
            allow_access: $ae_loc?.allow_access,
            last_cache_refresh: $ae_loc?.last_cache_refresh,
            last_cache_refresh_iso: last_cache_refresh_iso.toISOString(),
            last_cache_refresh_locale: last_cache_refresh_iso.toLocaleString(),
            access_level: $ae_loc?.access_level,
            iframe: $ae_loc?.iframe,
            // site_access_key: $ae_loc?.site_access_key,
            // site_domain_access_key: $ae_loc?.site_domain_access_key,
            // site_domain: $ae_loc?.site_domain,
            // extra_data: extra_data ?? '',
            // log_lvl: log_lvl,
        }
    };

    core_func.create_ae_obj__activity_log({
        api_cfg: $ae_api,
        account_id: $ae_loc.account_id,
        data_kv: data_kv,
        log_lvl: log_lvl
    });
}
</script>


<svelte:head>
	<title>
        IDAA Archives:
        - Novi - {$ae_loc?.title}
    </title>
</svelte:head>

<!-- <h1>Archives {$lq__archive_obj_li?.length}</h1> -->

{#if $lq__archive_obj_li && $lq__archive_obj_li?.length}
    <Comp__archive_obj_li
        lq__archive_obj_li={lq__archive_obj_li}
        />
{:else}
    <p>No archives available to show.</p>
{/if}
