mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-03-26 11:21:32 +01:00
WIP: migrations demo
This commit is contained in:
@@ -2,4 +2,23 @@
|
|||||||
// Demo
|
// Demo
|
||||||
// Copyright © 2020 John Rommel Estropia, Inc. All rights reserved.
|
// Copyright © 2020 John Rommel Estropia, Inc. All rights reserved.
|
||||||
|
|
||||||
|
import CoreStore
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
|
|
||||||
|
// MARK: - Advanced.EvolutionDemo
|
||||||
|
|
||||||
|
extension Advanced.EvolutionDemo {
|
||||||
|
|
||||||
|
typealias CreatureType = Advanced_EvolutionDemo_CreatureType
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// MARK: - Advanced.EvolutionDemo.CreatureType
|
||||||
|
|
||||||
|
protocol Advanced_EvolutionDemo_CreatureType: CoreStoreObject, CustomStringConvertible {
|
||||||
|
|
||||||
|
var dnaCode: Int64 { get }
|
||||||
|
|
||||||
|
func mutate()
|
||||||
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ extension Advanced.EvolutionDemo {
|
|||||||
|
|
||||||
// MARK: - Advanced.EvolutionDemo.CreatureV1
|
// MARK: - Advanced.EvolutionDemo.CreatureV1
|
||||||
|
|
||||||
final class CreatureV1: CoreStoreObject {
|
final class CreatureV1: CoreStoreObject, Advanced.EvolutionDemo.CreatureType {
|
||||||
|
|
||||||
// MARK: Internal
|
// MARK: Internal
|
||||||
|
|
||||||
@@ -23,5 +23,8 @@ extension Advanced.EvolutionDemo {
|
|||||||
|
|
||||||
@Field.Stored("hasTail")
|
@Field.Stored("hasTail")
|
||||||
var hasTail: Bool = false
|
var hasTail: Bool = false
|
||||||
|
|
||||||
|
@Field.Stored("numberOfFlagella")
|
||||||
|
var numberOfFlagella: Int32 = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,30 @@
|
|||||||
//
|
//
|
||||||
// Advanced.Evolution.CreatureV2.swift
|
// Demo
|
||||||
// Demo
|
// Copyright © 2020 John Rommel Estropia, Inc. All rights reserved.
|
||||||
//
|
|
||||||
// Created by John Rommel Estropia on 2020/09/06.
|
|
||||||
//
|
|
||||||
|
|
||||||
import Foundation
|
import UIKit
|
||||||
|
import CoreStore
|
||||||
|
|
||||||
|
// MARK: - Advanced.EvolutionDemo
|
||||||
|
|
||||||
|
extension Advanced.EvolutionDemo {
|
||||||
|
|
||||||
|
// MARK: - Advanced.EvolutionDemo.CreatureV2
|
||||||
|
|
||||||
|
final class CreatureV2: CoreStoreObject, Advanced.EvolutionDemo.CreatureType {
|
||||||
|
|
||||||
|
// MARK: Internal
|
||||||
|
|
||||||
|
@Field.Stored("dnaCode")
|
||||||
|
var dnaCode: Int64 = 0
|
||||||
|
|
||||||
|
@Field.Stored("hasHead")
|
||||||
|
var hasHead: Bool = false
|
||||||
|
|
||||||
|
@Field.Stored("hasTail")
|
||||||
|
var hasTail: Bool = false
|
||||||
|
|
||||||
|
@Field.Stored("hasTail")
|
||||||
|
var numberOfFlippers: Int32 = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,8 +1,30 @@
|
|||||||
//
|
//
|
||||||
// Advanced.Evolution.CreatureV3.swift
|
// Demo
|
||||||
// Demo
|
// Copyright © 2020 John Rommel Estropia, Inc. All rights reserved.
|
||||||
//
|
|
||||||
// Created by John Rommel Estropia on 2020/09/06.
|
|
||||||
//
|
|
||||||
|
|
||||||
import Foundation
|
import UIKit
|
||||||
|
import CoreStore
|
||||||
|
|
||||||
|
// MARK: - Advanced.EvolutionDemo
|
||||||
|
|
||||||
|
extension Advanced.EvolutionDemo {
|
||||||
|
|
||||||
|
// MARK: - Advanced.EvolutionDemo.CreatureV3
|
||||||
|
|
||||||
|
final class CreatureV3: CoreStoreObject, Advanced.EvolutionDemo.CreatureType {
|
||||||
|
|
||||||
|
// MARK: Internal
|
||||||
|
|
||||||
|
@Field.Stored("dnaCode")
|
||||||
|
var dnaCode: Int64 = 0
|
||||||
|
|
||||||
|
@Field.Stored("hasHead")
|
||||||
|
var hasHead: Bool = false
|
||||||
|
|
||||||
|
@Field.Stored("hasTail")
|
||||||
|
var hasTail: Bool = false
|
||||||
|
|
||||||
|
@Field.Stored("hasTail")
|
||||||
|
var numberOfFlippers: Int32 = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,8 +1,30 @@
|
|||||||
//
|
//
|
||||||
// Advanced.Evolution.CreatureV4.swift
|
// Demo
|
||||||
// Demo
|
// Copyright © 2020 John Rommel Estropia, Inc. All rights reserved.
|
||||||
//
|
|
||||||
// Created by John Rommel Estropia on 2020/09/06.
|
|
||||||
//
|
|
||||||
|
|
||||||
import Foundation
|
import UIKit
|
||||||
|
import CoreStore
|
||||||
|
|
||||||
|
// MARK: - Advanced.EvolutionDemo
|
||||||
|
|
||||||
|
extension Advanced.EvolutionDemo {
|
||||||
|
|
||||||
|
// MARK: - Advanced.EvolutionDemo.CreatureV4
|
||||||
|
|
||||||
|
final class CreatureV4: CoreStoreObject, Advanced.EvolutionDemo.CreatureType {
|
||||||
|
|
||||||
|
// MARK: Internal
|
||||||
|
|
||||||
|
@Field.Stored("dnaCode")
|
||||||
|
var dnaCode: Int64 = 0
|
||||||
|
|
||||||
|
@Field.Stored("hasHead")
|
||||||
|
var hasHead: Bool = false
|
||||||
|
|
||||||
|
@Field.Stored("hasTail")
|
||||||
|
var hasTail: Bool = false
|
||||||
|
|
||||||
|
@Field.Stored("hasTail")
|
||||||
|
var numberOfFlippers: Int32 = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -19,5 +19,16 @@ extension Advanced {
|
|||||||
case ageOfFishes
|
case ageOfFishes
|
||||||
case ageOfReptiles
|
case ageOfReptiles
|
||||||
case ageOfMammals
|
case ageOfMammals
|
||||||
|
|
||||||
|
var creatureType: Advanced.EvolutionDemo.CreatureType.Type {
|
||||||
|
|
||||||
|
switch self {
|
||||||
|
|
||||||
|
case .ageOfInvertebrates: return Advanced.EvolutionDemo.CreatureV1.self
|
||||||
|
case .ageOfFishes: return Advanced.EvolutionDemo.CreatureV2.self
|
||||||
|
case .ageOfReptiles: return Advanced.EvolutionDemo.CreatureV3.self
|
||||||
|
case .ageOfMammals: return Advanced.EvolutionDemo.CreatureV4.self
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user