PoliplannerStore
class PoliplannerStore : ObservableObject
Store que permite acceder a varios objetos dentro de la base de datos
-
Instancia compartida del Store. Como
Realm
no soporta instancias entre hilos, esta instancia jamas deberia ser usada en un hilo distinto al principal. Para usar en otros hilos, se recomienda crear una nueva instanciaDeclaration
Swift
static let shared: PoliplannerStore
-
Genera una instancia segura para cualquier hilo que lo llame. Como
Realm
no soporta instancias entre hilos, cada instancia segura debe usarse solamente en el hilo que lo llamó.Declaration
Swift
static var safe: PoliplannerStore { get }
-
Son las secciones elegidas y activas congeladas por el usuario que han sido cargado a la base de datos
Declaration
Swift
@Published private(set) var seccionesElegidasActivas: RealmSwift.Results<Seccion> { get set }
-
Son los horarios de clases congelados que estan en la base de datos
Declaration
Swift
@Published private(set) var horariosClase: RealmSwift.Results<HorarioClase> { get set }
-
Son los exámenes de las secciones activas en la base de datos
Declaration
Swift
@Published private(set) var examenesActivos: RealmSwift.Results<Examen> { get set }
-
Almacena un borrador de horario de clase y es utilizado solamente para pasar borradores de distintas partes de la aplicación a otras
Declaration
Swift
@Published var horarioClaseDraft: HorarioClase { get set }
-
Indica si el usuario tiene horarios cargados
Declaration
Swift
public var hayHorario: Bool { get }
-
Instancia de
Realm
para acceder a la base de datosDeclaration
Swift
private(set) var realm: Realm { get }
-
Resultados de las secciones elegidas por el usuario
Declaration
Swift
private(set) var seccionesElegidasResults: RealmSwift.Results<Seccion> { get }
-
Resultados de los horarios de clase del usuario
Declaration
Swift
private(set) var horariosClaseResults: RealmSwift.Results<HorarioClase> { get }
-
Resultados de los horarios de clase del usuarios que estan activos
Declaration
Swift
private(set) var horariosClaseActivosResults: RealmSwift.Results<HorarioClase> { get }
-
Resultados de los exámenes de secciones elegidas por el usuario que pertenecen a un horario activo
Declaration
Swift
private(set) var examenesActivosResults: RealmSwift.Results<Examen> { get }
-
Token obtenido al subscribirse a
PoliplannerStore.seccionesElegidasResults
Declaration
Swift
private var seccionesElegidasToken: NotificationToken?
-
Token obtenido al subscribirse a
PoliplannerStore.horariosClaseResults
Declaration
Swift
private var horariosClaseToken: NotificationToken?
-
Token obtenido al subscribirse a
PoliplannerStore.examenesActivosResults
Declaration
Swift
private var examenesActivosToken: NotificationToken?
-
Constructor de
PoliplannerStore
Declaration
Swift
init(realm: Realm)
Parameters
realm
Instancia de
Realm
que se utilizará para acceder a la base de datos
-
Limpieza
Declaration
Swift
deinit
-
Alterna el estado de un horario por el estado que se pasó como argumento
Declaration
Swift
func alternarEstadoHorario(_ horarioClase: HorarioClase, estado: EstadoHorario)
Parameters
horarioClase
Horario de clases que se trata de modificar
estado
Estado de horario que se desea asignar al horario de clases
-
Elimina el horario de clase pasado como argumento si es que este existiere en la base de datos
Declaration
Swift
func eliminarHorario(_ horarioClase: HorarioClase)
Parameters
horarioClase
Horario de clases que se trata de eliminar
-
Cambia el nombre de un horario de clases
Declaration
Swift
func cambiarNombreHorario(_ horarioClase: HorarioClase, a nombre: String)
Parameters
horarioClase
Horario de clases que se esta intentando modificar
nombre
Nombre que se desea que tenga el horario de clases luego de la modificación
-
Cambia el periodo académico de un horario de clases
Declaration
Swift
func cambiarPeriodoHorario(_ horarioClase: HorarioClase, a periodo: String)
Parameters
horarioClase
Horario de clases que se esta intentando modificar
periodo
Periodo académico que se desea que tenga el horario de clases luego de la modificación
-
Cambia la fecha de actualización del horario de clases
Declaration
Swift
func cambiarFechaActualizacionHorario(_ horarioClase: HorarioClase, a fecha: String)
Parameters
horarioClase
Horario de clases que se esta intentando modificar
fecha
Fecha de actualización que se desea que tenga el horario de clases luego de la modificación
-
Agrega un nuevo horario de clases sin manejar a la base de datos
Declaration
Swift
func agregarHorarioClase(_ horarioClase: HorarioClase, desactivandoViejos: Bool = false)
Parameters
horarioClase
Horario de clases que se esta agregando a la base de datos
desactivandoViejos
Si se desea desactivar los horarios de clase viejos