package com.unicorn.hgzero.stt.domain;

import lombok.Builder;
import lombok.Getter;
import lombok.ToString;

import java.time.LocalDateTime;

/**
 * 화자 도메인 모델
 * 음성 화자 정보를 나타내는 도메인 객체
 */
@Getter
@Builder
@ToString
public class Speaker {
    
    /**
     * 화자 ID
     */
    private final String speakerId;
    
    /**
     * 화자 이름
     */
    private final String speakerName;
    
    /**
     * Azure Speaker Profile ID
     */
    private final String profileId;
    
    /**
     * 연결된 사용자 ID
     */
    private final String userId;
    
    /**
     * 총 발언 세그먼트 수
     */
    private final Integer totalSegments;
    
    /**
     * 총 발언 시간 (초)
     */
    private final Integer totalDuration;
    
    /**
     * 평균 식별 신뢰도
     */
    private final Double averageConfidence;
    
    /**
     * 최초 등장 시간
     */
    private final LocalDateTime firstAppeared;
    
    /**
     * 최근 등장 시간
     */
    private final LocalDateTime lastAppeared;
    
    /**
     * 생성 시간
     */
    private final LocalDateTime createdAt;
    
    /**
     * 수정 시간
     */
    private final LocalDateTime updatedAt;
}