PoliplannerStore

class PoliplannerStore : ObservableObject

Store que permite acceder a varios objetos dentro de la base de datos

Shared

  • 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 instancia

    Declaration

    Swift

    static let shared: PoliplannerStore

Safe

  • 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 }

Propiedades

  • 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 datos

    Declaration

    Swift

    private(set) var realm: Realm { get }

Resultados

  • 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 }

Tokens

Constructor

  • Constructor de PoliplannerStore

    Declaration

    Swift

    init(realm: Realm)

    Parameters

    realm

    Instancia de Realm que se utilizará para acceder a la base de datos

Deconstructor

  • Limpieza

    Declaration

    Swift

    deinit

HorarioClase API

  • 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