//
//  Attachment+Database.swift
//  Database
//
//  Created by Brent Simmons on 7/4/17.
//  Copyright © 2017 Ranchero Software. All rights reserved.
//

import Foundation
import Data
import RSDatabase

extension Attachment {

	init?(databaseID: String, row: FMResultSet) {

		let articleID = row.string(forColumn: DatabaseKey.articleID)
		let url = row.string(forColumn: DatabaseKey.url)
		let mimeType = row.string(forColumn: DatabaseKey.mimeType)
		let title = row.string(forColumn: DatabaseKey.title)
		let sizeInBytes = optionalIntForColumn(row, DatabaseKey.sizeInBytes)
		let durationInSeconds = optionalIntForColumn(row, DatabaseKey.durationInSeconds)

		init(databaseID: databaseID, articleID: articleID, url: url, mimeType: mimeType, title: title, sizeInBytes: sizeInBytes, durationInSeconds: durationInSeconds)
	}

	private func optionalIntForColumn(_ row: FMResultSet, _ columnName: String) -> Int? {

		let intValue = row.long(forColumn: columnName)
		if intValue < 1 {
			return nil
		}
		return intValue
	}
}