// // Team.swift // AltStore // // Created by Riley Testut on 5/31/19. // Copyright © 2019 Riley Testut. All rights reserved. // import CoreData import Foundation import AltSign public extension ALTTeamType { var localizedDescription: String { switch self { case .free: return NSLocalizedString("Free Developer Account", comment: "") case .individual: return NSLocalizedString("Developer", comment: "") case .organization: return NSLocalizedString("Organization", comment: "") case .unknown: fallthrough @unknown default: return NSLocalizedString("Unknown", comment: "") } } } public extension Team { static let maximumFreeAppIDs = 10 } @objc(Team) public class Team: NSManagedObject, Fetchable { /* Properties */ @NSManaged public var name: String @NSManaged public var identifier: String @NSManaged public var type: ALTTeamType @NSManaged public var isActiveTeam: Bool /* Relationships */ @NSManaged public private(set) var account: Account! @NSManaged public var installedApps: Set @NSManaged public private(set) var appIDs: Set public var altTeam: ALTTeam? override private init(entity: NSEntityDescription, insertInto context: NSManagedObjectContext?) { super.init(entity: entity, insertInto: context) } public init(_ team: ALTTeam, account: Account, context: NSManagedObjectContext) { super.init(entity: Team.entity(), insertInto: context) self.account = account update(team: team) } public func update(team: ALTTeam) { altTeam = team name = team.name identifier = team.identifier type = team.type } } public extension Team { @nonobjc class func fetchRequest() -> NSFetchRequest { NSFetchRequest(entityName: "Team") } }