sin-titulo

Pasted Nov 8, 2026, 10:21 PM1 file137 lines

Scan to open on your phone

Point a camera at the QR code - it opens this exact paste, no app needed.

https://codepastes.com/zzgs9hqfkeqhy8kj
sin-titulo
package com.negocio.desinfectantes.data

import android.content.Context
import androidx.room.Room
import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase

object DatabaseProvider {

    private val MIGRATION_2_3 = object : Migration(2, 3) {

        override fun migrate(database: SupportSQLiteDatabase) {

            database.execSQL("""
                CREATE TABLE IF NOT EXISTS producciones (
                    id TEXT NOT NULL,
                    presentacionId TEXT NOT NULL,
                    cantidadProducida INTEGER NOT NULL,
                    fechaCreacion INTEGER NOT NULL,
                    PRIMARY KEY(id)
                )
            """)

            database.execSQL("""
                CREATE TABLE IF NOT EXISTS distribuciones_produccion (
                    id TEXT NOT NULL,
                    produccionId TEXT NOT NULL,
                    sede TEXT NOT NULL,
                    cantidad INTEGER NOT NULL,
                    fechaCreacion INTEGER NOT NULL,
                    PRIMARY KEY(id)
                )
            """)

            database.execSQL("""
                CREATE TABLE IF NOT EXISTS movimientos_inventario (
                    id TEXT NOT NULL,
                    presentacionId TEXT NOT NULL,
                    sede TEXT NOT NULL,
                    tipoMovimiento TEXT NOT NULL,
                    cantidad INTEGER NOT NULL,
                    referenciaId TEXT,
                    observacion TEXT,
                    fechaCreacion INTEGER NOT NULL,
                    PRIMARY KEY(id)
                )
            """)
        }
    }

    private val MIGRATION_3_4 = object : Migration(3, 4) {

        override fun migrate(database: SupportSQLiteDatabase) {

            database.execSQL("""
                CREATE TABLE IF NOT EXISTS clientes (
                    id TEXT NOT NULL,
                    nombre TEXT NOT NULL,
                    telefono TEXT,
                    direccion TEXT,
                    observaciones TEXT,
                    activo INTEGER NOT NULL,
                    fechaCreacion INTEGER NOT NULL,
                    PRIMARY KEY(id)
                )
            """)
        }
    }

    private val MIGRATION_4_5 = object : Migration(4, 5) {
        override fun migrate(database: SupportSQLiteDatabase) {

            database.execSQL("""
            CREATE TABLE IF NOT EXISTS ventas (
                id TEXT NOT NULL,
                clienteId TEXT NOT NULL,
                sede TEXT NOT NULL,
                tipoVenta TEXT NOT NULL,
                estadoEntrega TEXT NOT NULL,
                total REAL NOT NULL,
                fechaCreacion INTEGER NOT NULL,
                PRIMARY KEY(id)
            )
        """)

            database.execSQL("""
            CREATE TABLE IF NOT EXISTS detalles_venta (
                id TEXT NOT NULL,
                ventaId TEXT NOT NULL,
                presentacionId TEXT NOT NULL,
                cantidad INTEGER NOT NULL,
                precioUnitario REAL NOT NULL,
                subtotal REAL NOT NULL,
                PRIMARY KEY(id)
            )
        """)

            database.execSQL("""
            CREATE TABLE IF NOT EXISTS pagos_venta (
                id TEXT NOT NULL,
                ventaId TEXT NOT NULL,
                monto REAL NOT NULL,
                metodoPago TEXT NOT NULL,
                observacion TEXT,
                fechaCreacion INTEGER NOT NULL,
                PRIMARY KEY(id)
            )
        """)
        }
    }

    @Volatile
    private var INSTANCE: PrestigeDatabase? = null

    fun obtenerBaseDatos(context: Context): PrestigeDatabase {

        return INSTANCE ?: synchronized(this) {

            val instancia = Room.databaseBuilder(
                context.applicationContext,
                PrestigeDatabase::class.java,
                "prestige_clean_database"
            )
                .addMigrations(
                    MIGRATION_2_3,
                    MIGRATION_3_4,
                    MIGRATION_4_5
                )
                .build()

            INSTANCE = instancia

            instancia
        }
    }
}

4,200 chars · codepastes.com