const express=require("express"),mongoose=require("mongoose"),multer=require("multer"),cors=require("cors"),nodemailer=require("nodemailer"),app=express();app.use(cors());app.use(express.json());app.use("/uploads",express.static("uploads"));mongoose.connect("mongodb://127.0.0.1:27017/channels");const Channel=mongoose.model("Channel",new mongoose.Schema({name:String,tag:String,description:String,profilePic:String,banner:String,verified:{type:Boolean,default:false},media:[String]}));const storage=multer.diskStorage({destination:(r,f,cb)=>cb(null,"uploads/"),filename:(r,f,cb)=>cb(null,Date.now()+"-"+f.originalname)}),upload=multer({storage});app.post("/create-channel",upload.fields([{name:"profilePic"},{name:"banner"}]),async(r,s)=>{const c=new Channel({name:r.body.name,tag:r.body.tag,description:r.body.description,profilePic:r.files.profilePic?.[0]?.filename,banner:r.files.banner?.[0]?.filename});await c.save();s.json(c)});app.post("/upload-media/:id",upload.single("media"),async(r,s)=>{const c=await Channel.findById(r.params.id);c.media.push(r.file.filename);await c.save();s.json(c)});app.post("/verify-request",async(r,s)=>{const t=nodemailer.createTransport({service:"gmail",auth:{user:"your@email.com",pass:"yourpassword"}});await t.sendMail({from:r.body.email,to:"your@email.com",subject:"Verification Request",text:`Channel ${r.body.channelName} wants verification`});s.send("sent")});app.listen(3000);