NoteProjetDao.swift 23 lignes · 875 octets
import Foundation

/// Port du Room `NoteProjetDao` (Android).
protocol NoteProjetDao {
    /// INSERT OR REPLACE INTO notes_projet ; retourne le rowId.
    @discardableResult
    func upsert(_ entity: NoteProjetEntity) async throws -> Int64

    /// SELECT * FROM notes_projet WHERE serverId = :serverId
    func getByServerId(_ serverId: String) async throws -> NoteProjetEntity?

    /// DELETE FROM notes_projet WHERE serverId = :serverId
    func deleteByServerId(_ serverId: String) async throws

    /// DELETE FROM notes_projet WHERE localId = :localId
    func deleteByLocalId(_ localId: Int64) async throws

    /// SELECT * FROM notes_projet WHERE projetServerId = :projetServerId
    func listByProjetServerId(_ projetServerId: String) async throws -> [NoteProjetEntity]

    /// SELECT * FROM notes_projet
    func listAll() async throws -> [NoteProjetEntity]
}