Bark/Model/MessageDeleteTimeRange.swift
2025-01-08 12:02:51 +08:00

93 lines
2.3 KiB
Swift

//
// MessageDeleteTimeRange.swift
// Bark
//
// Created by huangfeng on 1/7/25.
// Copyright © 2025 Fin. All rights reserved.
//
import Foundation
enum MessageDeleteTimeRange {
///
case lastHour
///
case today
///
case todayAndYesterday
///
case lastMonth
///
case allTime
///
case beforeOneHour
///
case beforeToday
///
case beforeYesterday
///
case beforeOneMonth
var string: String {
switch self {
case .lastHour:
return NSLocalizedString("lastHour")
case .today:
return NSLocalizedString("today")
case .todayAndYesterday:
return NSLocalizedString("todayAndYesterday")
case .lastMonth:
return NSLocalizedString("lastMonth")
case .allTime:
return NSLocalizedString("allTime")
case .beforeOneHour:
return NSLocalizedString("beforeAnHour")
case .beforeToday:
return NSLocalizedString("beforeToday")
case .beforeYesterday:
return NSLocalizedString("beforeYesterday")
case .beforeOneMonth:
return NSLocalizedString("beforeAMonth")
}
}
var startDate: Date {
switch self {
case .lastHour:
return Date.lastHour
case .today:
return Date().startOfDay
case .todayAndYesterday:
return Date.yesterday
case .lastMonth:
return Date.lastMonth
case .allTime,
.beforeOneHour,
.beforeToday,
.beforeYesterday,
.beforeOneMonth:
return Date(timeIntervalSince1970: 0)
}
}
var endDate: Date {
switch self {
case .lastHour,
.today,
.todayAndYesterday,
.lastMonth,
.allTime:
return Date()
case .beforeOneHour:
return Date.lastHour
case .beforeToday:
return Date().startOfDay
case .beforeYesterday:
return Date.yesterday
case .beforeOneMonth:
return Date.lastMonth
}
}
}