package com.example.myapplication.DataBase;

import android.content.Context;

import androidx.annotation.NonNull;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.room.migration.Migration;
import androidx.sqlite.db.SupportSQLiteDatabase;

import com.example.myapplication.model.AudioEntity;
import com.example.myapplication.model.ImageEntity;
import com.example.myapplication.model.Turbine;

@Database(entities = {ImageEntity.class, Turbine.class, AudioEntity.class}, version = 4) // 版本号增加，添加新实体
public abstract class AppDatabase extends RoomDatabase {
    public abstract ImageDao imageDao();
    public abstract TurbineDao turbineDao(); // 添加新的DAO
    public abstract AudioDao AudioDao();
    private static volatile AppDatabase INSTANCE;



    private static final Migration MIGRATION_4_5 = new Migration(4, 5) {
        @Override
        public void migrate(@NonNull SupportSQLiteDatabase database) {

        }
    };
    public static AppDatabase getDatabase(Context context) {
        if (INSTANCE == null) {
            synchronized (AppDatabase.class) {
                if (INSTANCE == null) {
                    INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
                                    AppDatabase.class, "app_database")
                            .fallbackToDestructiveMigration() // 简单处理，正式项目应该实现Migration
                            .build();
                }
            }
        }
        return INSTANCE;
    }

}