Files
zmAI/demo/src/main/java/com/example/demo/model/UserActivityStats.java

85 lines
3.0 KiB
Java

package com.example.demo.model;
import jakarta.persistence.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Entity
@Table(name = "user_activity_stats")
public class UserActivityStats {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "activity_date", nullable = false, unique = true)
private LocalDate activityDate;
@Column(name = "daily_active_users", nullable = false)
private Integer dailyActiveUsers = 0;
@Column(name = "monthly_active_users", nullable = false)
private Integer monthlyActiveUsers = 0;
@Column(name = "new_users", nullable = false)
private Integer newUsers = 0;
@Column(name = "returning_users", nullable = false)
private Integer returningUsers = 0;
@Column(name = "session_count", nullable = false)
private Integer sessionCount = 0;
@Column(name = "avg_session_duration", precision = 10, scale = 2)
private BigDecimal avgSessionDuration = BigDecimal.ZERO;
@Column(name = "created_at", nullable = false)
private LocalDateTime createdAt;
@Column(name = "updated_at")
private LocalDateTime updatedAt;
@PrePersist
protected void onCreate() {
createdAt = LocalDateTime.now();
updatedAt = LocalDateTime.now();
}
@PreUpdate
protected void onUpdate() {
updatedAt = LocalDateTime.now();
}
// Getters and Setters
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public LocalDate getActivityDate() { return activityDate; }
public void setActivityDate(LocalDate activityDate) { this.activityDate = activityDate; }
public Integer getDailyActiveUsers() { return dailyActiveUsers; }
public void setDailyActiveUsers(Integer dailyActiveUsers) { this.dailyActiveUsers = dailyActiveUsers; }
public Integer getMonthlyActiveUsers() { return monthlyActiveUsers; }
public void setMonthlyActiveUsers(Integer monthlyActiveUsers) { this.monthlyActiveUsers = monthlyActiveUsers; }
public Integer getNewUsers() { return newUsers; }
public void setNewUsers(Integer newUsers) { this.newUsers = newUsers; }
public Integer getReturningUsers() { return returningUsers; }
public void setReturningUsers(Integer returningUsers) { this.returningUsers = returningUsers; }
public Integer getSessionCount() { return sessionCount; }
public void setSessionCount(Integer sessionCount) { this.sessionCount = sessionCount; }
public BigDecimal getAvgSessionDuration() { return avgSessionDuration; }
public void setAvgSessionDuration(BigDecimal avgSessionDuration) { this.avgSessionDuration = avgSessionDuration; }
public LocalDateTime getCreatedAt() { return createdAt; }
public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }
public LocalDateTime getUpdatedAt() { return updatedAt; }
public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; }
}