School Level Midday Meal Data

Job ID: 39962739

Budget: ₹1,500 – ₹12,500 INR

package com.mdm.marathi // <--- इथे तुमचा package name ठेवा

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.room.Room
import com.mdm.marathi.data.AppDatabase
import com.mdm.marathi.ui.MdMApp
import com.mdm.marathi.viewmodel.IngredientViewModel
import com.mdm.marathi.viewmodel.MenuViewModel
import com.mdm.marathi.viewmodel.SchoolViewModel
import com.mdm.marathi.viewmodel.StaffViewModel
import androidx.compose.material3.MaterialTheme

class MainActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// Room Database तयार करा
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java,
"mdm_db"
).build()

setContent {
MaterialTheme {

// SchoolViewModel
val schoolVm: SchoolViewModel = viewModel(
factory = SimpleViewModelFactory {
SchoolViewModel(db.schoolDao())
}
)

// IngredientViewModel
val ingredientVm: IngredientViewModel = viewModel(
factory = SimpleViewModelFactory {
IngredientViewModel(db.ingredientDao())
}
)

// MenuViewModel
val menuVm: MenuViewModel = viewModel(
factory = SimpleViewModelFactory {
MenuViewModel(db.menuDao(), db.ingredientDao())
}
)

// StaffViewModel
val staffVm: StaffViewModel = viewModel(
factory = SimpleViewModelFactory {
StaffViewModel(db.staffDao())
}
)

// मुख्य अॅप UI
MdMApp(
schoolVm = schoolVm,
ingredientVm = ingredientVm,
menuVm = menuVm,
staffVm = staffVm
)
}
}
}
}

/**
* साधा ViewModelFactory – आपण custom constructor असलेले ViewModel वापरत आहोत
*/
class SimpleViewModelFactory<T : ViewModel>(
private val creator: () -> T
) : ViewModelProvider.Factory {

@Suppress("UNCHECKED_CAST")
override fun <T2 : ViewModel> create(modelClass: Class<T2>): T2 {
return creator() as T2
}
}