package com.fieldlabel.collector.domain.model

import java.time.LocalDateTime

/**
 * 採集メディア — 地点または特定の標本に紐づく写真・動画・音声
 *
 * @param id         UUID
 * @param filePath   端末内のファイルパス
 * @param locationId 関連する地点ID（必須）
 * @param specimenId 関連する標本ID。null の場合は地点全体に紐づく
 * @param takenAt    記録日時
 * @param mediaType  メディア種別: "photo" | "video" | "audio"
 */
data class SpecimenPhoto(
    val id: String,
    val filePath: String,
    val locationId: String,
    val specimenId: String?,
    val takenAt: LocalDateTime = LocalDateTime.now(),
    val mediaType: String = "photo"
) {
    /** ラベル表示用テキスト */
    val tagLabel: String
        get() = specimenId ?: locationId

    val isPhoto: Boolean get() = mediaType == "photo"
    val isVideo: Boolean get() = mediaType == "video"
    val isAudio: Boolean get() = mediaType == "audio"
}
