cache: 'no-store'

import { tryFetchPosts } from "@/app/api/post/route";
import { constructAPIUrl } from "@/util/Utils";
import { ReactNode, useEffect } from "react";
import EntityManagementTable from "../../../client/EntityManagementTable";
import PostTable from "@/components/client/admin/PostTable";
import { deletePost, getPostsWithBuckets, updatePost } from "@/app/lib/actions/entityManagement/postActions";
import { getProjects } from "@/app/lib/actions/entityManagement/projectActions";
import { Bucket, Project, Post, dbSync, Attachment } from "@/model/Models";
import { tryCreateAttachment } from "@/app/api/attachment/route";
import { Attributes } from '@sequelize/core';
import * as util from 'util'

type Props = {
    children?:ReactNode
}


export default async function ProjectView(props:Props){
    await dbSync;

    // const headings = [
    //     '#', 
    //     'Title',
    //     'Content',
    //     'Project',
    //     'Date Created',
    //     'Date Modified',
    //     'Edit',
    //     'Delete',
    // ]
    const headings = Project.getAttributes();
    // const actions = {
    //     deletePost: deletePost, 
    //     getPosts:getPostsWithBuckets, 
    //     getProjects:getProjects, 
    //     savePost:updatePost,
    //     // uploadAttachment:tryCreateAttachment
    // };

    const posts:Post[] = await Post.findAll({include: {model: Bucket, include: {model: Attachment}}}).then(posts=>posts.map((e)=>JSON.parse(JSON.stringify(e))));
    const projects = await Project.findAll().then(projects=>projects.map((e)=>JSON.parse(JSON.stringify(e))));
    
    return <>
        <div className="w-[100%] min-h-fit bg-gray-100 overflow-scroll">
            <div className="w-[100%] m-auto">
                {(()=>{
                    let a:string[] = []
                    for (const key in headings)
                    {
                        a.push(key)
                    }
                    // return a.map((e)=> <div key={e}>{e}</div> );
                    return <EntityManagementTable headings={a}><></></EntityManagementTable>
                })()}
                {/* <PostTable  data={posts} 
                            projects={projects} 
                            headings={headings} 
                            actions={actions}>
                </PostTable> */}
            </div>
        </div>
    </>;
}