OSDN Git Service

Doutaku を 1.0 にアップデート
[kcd/KCD.git] / KCD / LocalDataStoreAccessor.swift
1 //
2 //  LocalDataStoreAccessor.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/10/25.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Doutaku
10
11 extension LocalDataStore {
12     
13     func unmarkedDropShipHistories(befor days: Int) -> [DropShipHistory] {
14         
15         let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
16         let predicate = Predicate(\DropShipHistory.date, lessThan: date)
17             .and(
18                 Predicate(false: \DropShipHistory.mark)
19                     .or(Predicate(isNil: \DropShipHistory.mark))
20             )
21             .and(Predicate(\DropShipHistory.mapArea, in: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]))
22         
23         guard let dropHistories = try? objects(of: DropShipHistory.self, predicate: predicate) else {
24             
25             return []
26         }
27         
28         return dropHistories
29     }
30     
31     func createDropShipHistory(from: HiddenDropShipHistory) -> DropShipHistory? {
32         
33         guard let new = insertNewObject(for: DropShipHistory.self) else {
34             
35             Logger.shared.log("Can not create DropShipHistory")
36             
37             return nil
38         }
39         
40         new.shipName = from.shipName
41         new.mapArea = from.mapArea
42         new.mapAreaName = from.mapAreaName
43         new.mapInfo = from.mapInfo
44         new.mapInfoName = from.mapInfoName
45         new.mapCell = from.mapCell
46         new.winRank = from.winRank
47         new.date = from.date
48         
49         return new
50     }
51     
52     func kaihatuHistories() -> [KaihatuHistory] {
53         
54         guard let kaihatuHistories = try? objects(of: KaihatuHistory.self) else {
55             
56             return []
57         }
58         
59         return kaihatuHistories
60     }
61     
62     func unmarkedKaihatuHistories(befor days: Int) -> [KaihatuHistory] {
63         
64         let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
65         let predicate = Predicate(\KaihatuHistory.date, lessThan: date)
66             .and(
67                 Predicate(false: \KaihatuHistory.mark)
68                     .or(Predicate(isNil: \KaihatuHistory.mark))
69         )
70         
71         guard let kaihatuHistories = try? objects(of: KaihatuHistory.self, predicate: predicate) else {
72             
73             return []
74         }
75         
76         return kaihatuHistories
77     }
78     
79     func createKaihatuHistory() -> KaihatuHistory? {
80         
81         return insertNewObject(for: KaihatuHistory.self)
82     }
83     
84     func kenzoMark(byDockId dockId: Int) -> KenzoMark? {
85         
86         let predicate = Predicate(\KenzoMark.kDockId, equalTo: dockId)
87         
88         guard let kenzoMarks = try? objects(of: KenzoMark.self, predicate: predicate) else {
89             
90             return nil
91         }
92         
93         return kenzoMarks.first
94     }
95     
96     func kenzoMark(docInfo: KenzoMarkCommand.KenzoDockInfo) -> KenzoMark? {
97         
98         let predicate = Predicate(\KenzoMark.kDockId, equalTo: docInfo.dockId)
99             .and(Predicate(\KenzoMark.fuel, equalTo: docInfo.fuel))
100             .and(Predicate(\KenzoMark.bull, equalTo: docInfo.bull))
101             .and(Predicate(\KenzoMark.steel, equalTo: docInfo.bull))
102             .and(Predicate(\KenzoMark.bauxite, equalTo: docInfo.bauxite))
103             .and(Predicate(\KenzoMark.kaihatusizai, equalTo: docInfo.kaihatusizai))
104             .and(Predicate(\KenzoMark.created_ship_id, equalTo: docInfo.shipId))
105         
106         guard let kenzoMarks = try? objects(of: KenzoMark.self, predicate: predicate) else {
107             
108             return nil
109         }
110         
111         return kenzoMarks.first
112     }
113     
114     func createKenzoMark() -> KenzoMark? {
115         
116         return insertNewObject(for: KenzoMark.self)
117     }
118     
119     func unmarkedKenzoHistories(befor days: Int) -> [KenzoHistory] {
120         
121         let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
122         let predicate = Predicate(\KenzoHistory.date, lessThan: date)
123             .and(
124                 Predicate(\KenzoHistory.mark, equalTo: false)
125                     .or(Predicate(isNil: \KenzoHistory.mark))
126         )
127         
128         guard let kenzoHistories = try? objects(of: KenzoHistory.self, predicate: predicate) else {
129             
130             return []
131         }
132         
133         return kenzoHistories
134     }
135     
136     func createKenzoHistory() -> KenzoHistory? {
137         
138         return insertNewObject(for: KenzoHistory.self)
139     }
140     
141     func hiddenDropShipHistories() -> [HiddenDropShipHistory] {
142         
143         guard let dropShipHistories = try? objects(of: HiddenDropShipHistory.self) else {
144             
145             return []
146         }
147         
148         return dropShipHistories
149     }
150     
151     func createHiddenDropShipHistory() -> HiddenDropShipHistory? {
152         
153         return insertNewObject(for: HiddenDropShipHistory.self)
154     }
155 }