package com.saas.admin.entity;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Entity
@Table(name = "global_call_summary", indexes = {
        @Index(name = "idx_global_call_date", columnList = "summary_date")
})
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GlobalCallSummary {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "summary_date", nullable = false, unique = true)
    private LocalDate summaryDate;

    @Column(name = "total_calls")
    private Long totalCalls;

    @Column(name = "total_minutes")
    private Long totalMinutes;

    @Column(name = "failed_calls")
    private Long failedCalls;

    @Column(name = "cost_usd", precision = 10, scale = 2)
    private java.math.BigDecimal costUsd;

    @CreationTimestamp
    @Column(nullable = false, updatable = false)
    private LocalDateTime createdAt;

    @UpdateTimestamp
    private LocalDateTime updatedAt;
}
