Skip to content

Commit

Permalink
[Feat] #520 모델 재정의
Browse files Browse the repository at this point in the history
  • Loading branch information
yju0808 committed Apr 12, 2024
1 parent 3e8b5c8 commit 468c5cb
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 59 deletions.
43 changes: 26 additions & 17 deletions HappyAnding/HappyAnding/Model/Answer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,35 @@
import Foundation

struct Answer: Identifiable, Codable, Equatable, Hashable {
var id = UUID().uuidString
var body: String = ""
var postedBy: String = ""
var postedAt:[String] = [Date().getDate()]
var images: [String] = []
var likesCount: Int = 0
var isAccepted: Bool = false
var comments: [String] = []

let id: String
let postId : String
let createdAt: String
let author: String

var content: String
var isAccepted: Bool
var images: [String]
var likedBy: [String:Bool]
var likeCount: Int

init(content: String, author: String, postId:String, images: [String] = []) {

self.id = UUID().uuidString
self.createdAt = Date().getDate()

self.content = content
self.isAccepted = false
self.author = author
self.postId = postId
self.images = images

self.likeCount = 0
self.likedBy = [:]
}

var dictionary: [String: Any] {
let data = (try? JSONEncoder().encode(self)) ?? Data()
return (try? JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any]) ?? [:]
}

init(body: String, postedBy: String, images: [String] = [], likesCount: Int = 0, isAccepted: Bool = false, comments: [String] = []) {
self.body = body
self.postedBy = postedBy
self.images = images
self.likesCount = likesCount
self.isAccepted = isAccepted
self.comments = comments
}
}
42 changes: 26 additions & 16 deletions HappyAnding/HappyAnding/Model/CommunityComment.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,36 @@ import Foundation


struct CommunityComment: Identifiable, Codable, Equatable, Hashable {
var id: String = UUID().uuidString
var body: String
var author: String
var postedAt: String = Date().getDate()
var likesCount: Int = 0
var isAccepted: Bool = false
var comments: [String] = []


let id: String
let createdAt: String
let postId: String
let author: String
let parent: String?

var content: String
var likeCount: Int
var likedBy: [String:Bool]
var isAccepted: Bool

init(content: String, author: String,postId : String, parent: String? = nil) {

self.id = UUID().uuidString
self.createdAt = Date().getDate()

self.content = content
self.author = author
self.parent = parent
self.postId = postId

self.likeCount = 0
self.likedBy = [:]
self.isAccepted = false
}

var dictionary: [String: Any] {
let data = (try? JSONEncoder().encode(self)) ?? Data()
return (try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]) ?? [:]
}


init(body: String, author: String, images: [String] = [], likesCount: Int = 0, isAccepted: Bool = false, comments: [String] = []) {
self.body = body
self.author = author
self.likesCount = likesCount
self.isAccepted = isAccepted
self.comments = comments
}
}
55 changes: 29 additions & 26 deletions HappyAnding/HappyAnding/Model/Post.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,35 +8,38 @@
import Foundation

struct Post: Identifiable, Codable, Equatable, Hashable {
var id = UUID().uuidString
var type: String = ""
var title: String = ""
var body: String = ""
var postedBy: String
var postedAt:[String] = [Date().getDate()]
var images: [String] = []
var likesCount: Int = 0
var commentsCount: Int
var tags: [String] = []
var comments: [String] = []
var answers: [String] = []


var dictionary: [String: Any] {
let data = (try? JSONEncoder().encode(self)) ?? Data()
return (try? JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any]) ?? [:]
}
let id : String
let type: PostType
let createdAt: String
let author: String

var content: String
var shortcuts: [String]
var images: [String]
var likedBy: [String:Bool]
var likeCount: Int
var commentCount: Int

init(type: String, title: String, body: String, postedBy: String, images: [String], likesCount: Int, commentsCount: Int, tags: [String], comments: [String], answers: [String]) {
init(type: PostType, content: String, author: String, shortcuts: [String] = [], images: [String] = []) {

self.id = UUID().uuidString
self.createdAt = Date().getDate()

self.type = type
self.title = title
self.body = body
self.postedBy = postedBy
self.content = content
self.author = author
self.shortcuts = shortcuts
self.images = images
self.likesCount = likesCount
self.commentsCount = commentsCount
self.tags = tags
self.comments = comments
self.answers = answers

self.likeCount = 0
self.commentCount = 0
self.likedBy = [:]

}

var dictionary: [String: Any] {
let data = (try? JSONEncoder().encode(self)) ?? Data()
return (try? JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any]) ?? [:]
}
}
13 changes: 13 additions & 0 deletions HappyAnding/HappyAnding/Model/PostType.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//
// PostType.swift
// HappyAnding
//
// Created by 임정욱 on 4/4/24.
//

import Foundation

enum PostType: String, Codable {
case General = "General"
case Question = "Question"
}

0 comments on commit 468c5cb

Please sign in to comment.