2024/10/23 4

Nutri Capture 백엔드 - View에서 INSERT 트리거

#1 개요지금까지의 과정을 통해, ViewModel에서 Model을 참조할 수 있게 되었다. 본 게시글에선 ViewModel에서 Model을 참조하는 이벤트를 구현하고, View에서 해당 이벤트를 Trigger하게 만들어본다. #2 코드#2-1 ViewModel의 이벤트 구현...class NutrientViewModel(private val repository: MainRepository) : ViewModel() {    ...    // (4) View로부터 받은 이벤트 처리    fun onEvent(event: NutrientViewModelEvent) {        when (event) {            ...            is NutrientViewModelEvent.Inse..

Nutri Capture 백엔드 - Model을 ViewModel에 생성자 주입

#1 개요이전 게시글에서 구축한 Room을 ViewModel에 생성자 주입하여, Room(Model)을 참조할 수 있게 만든다. #2 코드 - 이벤트 추가#2-1 이벤트 추가// package com.example.nutri_capture_new.nutrientimport com.example.nutri_capture_new.db.Mealimport java.time.LocalDatesealed class NutrientViewModelEvent { data object InitializeState : NutrientViewModelEvent() data object LoadMoreItemsAfterLastDate : NutrientViewModelEvent() data object Lo..

Nutri Capture 백엔드 - Room의 @DAO, @Database 구현

#1 개요이전 게시글에 이어, Room의 남은 부분을 구현한다. #2 코드#2-1 @DAO// package com.example.nutri_capture_new.dbimport androidx.room.Daoimport androidx.room.Deleteimport androidx.room.Insertimport androidx.room.OnConflictStrategyimport androidx.room.Queryimport java.time.LocalDate@Daointerface MainDAO { @Query("SELECT day_id FROM day_table WHERE day_date = :date LIMIT 1") suspend fun getDayId(date: LocalDate..

Nutri Capture 백엔드 - 새 ERD와 Room의 @Entity 정의

#1 개요#1-1 이전 게시글 폐기ERD에 대해 다뤘던 이전 게시글은 앱의 방향성을 재고한 이 게시글과 상충된다. 따라서 이전에 만들었던 ERD대로 데이터베이스의 스키마를 형성하지 않을 것이다. 새 ERD는 아래와 같다. #1-2 새 ERDmeal_table과 nutrition_info_table이 1 : n 관계인 것처럼 되어있는데 실제로는 그렇지 않다. nutrition_info_table은 meal_table의 기본키를 외래키이자 기본키로 쓰는, 식별 관계의 자식 테이블이기 때문에 1 : 1 관계다. 위 ERD 이미지는 DBeaver를 통해 뽑아낸 것인데 아마 오류가 난 것 같다. 아니면 1..n라는 표기가 1 : 1과 1 : n을 모두 아우르는 표현식일까? 아무튼 그렇다.-- Day 테이블CREA..