Nicholai 16cee69250 __Admin dashboard scaffolded with D1 database and R2 file uploads__
This commit implements the core admin dashboard functionality including NextAuth authentication, Cloudflare D1 database integration with complete schema, and Cloudflare R2 file upload system for portfolio images. Features include artist management, appointment scheduling, and data migration capabilities.
2025-09-17 16:08:34 -06:00

13 lines
4.2 KiB
JavaScript

"use strict";(()=>{var e={};e.id=4887,e.ids=[4887],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},15431:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>b,patchFetch:()=>v,requestAsyncStorage:()=>h,routeModule:()=>y,serverHooks:()=>g,staticGenerationAsyncStorage:()=>x});var n={};r.r(n),r.d(n,{GET:()=>m,dynamic:()=>d});var o=r(73278),a=r(45002),i=r(54877),s=r(71309),u=r(18445),p=r(33897),l=r(1035),f=r(29628);let c=f.z.object({path:f.z.string().default("/"),limit:f.z.string().transform(Number).optional(),offset:f.z.string().transform(Number).optional()}),d="force-dynamic";async function m(e,{params:t}={},r){try{if(!await (0,u.getServerSession)(p.Lz))return s.NextResponse.json({error:"Unauthorized"},{status:401});let{searchParams:t}=new URL(e.url),n=c.parse({path:t.get("path"),limit:t.get("limit"),offset:t.get("offset")}),o=(0,l.VK)(r?.env),a=`
SELECT
fu.id,
fu.filename as name,
'file' as type,
fu.size,
fu.mime_type as mimeType,
fu.url,
fu.created_at as createdAt,
'/' || fu.filename as path
FROM file_uploads fu
WHERE 1=1
`,i=[];"/"!==n.path&&(a+=" AND fu.filename LIKE ?",i.push(`${n.path.replace("/","")}%`)),a+=" ORDER BY fu.created_at DESC",n.limit&&(a+=" LIMIT ?",i.push(n.limit),n.offset&&(a+=" OFFSET ?",i.push(n.offset)));let f=o.prepare(a),d=(await f.bind(...i).all()).results.map(e=>({...e,createdAt:new Date(e.createdAt)}));return s.NextResponse.json(d)}catch(e){return console.error("Files fetch error:",e),s.NextResponse.json({error:"Failed to fetch files"},{status:500})}}let y=new o.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/files/route",pathname:"/api/files",filename:"route",bundlePath:"app/api/files/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/files/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:h,staticGenerationAsyncStorage:x,serverHooks:g}=y,b="/api/files/route";function v(){return(0,i.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:x})}},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var n={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a.default}});var o=r(32482);Object.keys(o).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))});var a=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(void 0);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&({}).hasOwnProperty.call(e,a)){var s=o?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}(r(4128));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}Object.keys(a).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))})}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[9379,8213,4128,4833,1253],()=>r(15431));module.exports=n})();