import { loadEnv } from "./env";
import app from "./src/app";
import DatabaseService from "./src/service/database.service";
import path from "path";
import fs from "fs";

loadEnv();

function onServerStart() {
    console.table({
        title: 'Ip Tv Project',
        url: `http://localhost:${process.env.PORT}/`,
        api: `http://localhost:${process.env.PORT}/api/`,
    });
}

(async function () {
    try {
        const uploadDir = path.join(__dirname, 'uploads');
        if(!fs.existsSync(uploadDir)) fs.mkdirSync(uploadDir)
        await DatabaseService.connect({ sync: true });
        app.listen(Number(process.env.PORT)||8080, onServerStart)
    } catch (error: any) {
        console.error(error)
    }
})()

process.on('uncaughtException', (err) => {
    console.error('Unhandled Exception:', err);
});

process.on('unhandledRejection', (reason) => {
    console.error('Unhandled Rejection:', reason);
});
