Add activity module with milk tea event

This commit is contained in:
Tim
2025-07-28 14:12:28 +08:00
parent bcd34e1019
commit 51a3a7b8f8
12 changed files with 247 additions and 3 deletions

View File

@@ -0,0 +1,48 @@
package com.openisle.model;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.CreationTimestamp;
import java.time.LocalDateTime;
import java.util.HashSet;
import java.util.Set;
/** Generic activity entity. */
@Entity
@Getter
@Setter
@NoArgsConstructor
@Table(name = "activities")
public class Activity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String title;
private String icon;
@Column(name = "start_time", nullable = false)
@CreationTimestamp
private LocalDateTime startTime;
@Column(name = "end_time")
private LocalDateTime endTime;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private ActivityType type = ActivityType.NORMAL;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "activity_participants",
joinColumns = @JoinColumn(name = "activity_id"),
inverseJoinColumns = @JoinColumn(name = "user_id"))
private Set<User> participants = new HashSet<>();
@Column(nullable = false)
private boolean ended = false;
}

View File

@@ -0,0 +1,7 @@
package com.openisle.model;
/** Activity type enumeration. */
public enum ActivityType {
NORMAL,
MILK_TEA
}

View File

@@ -29,5 +29,7 @@ public enum NotificationType {
/** A user you subscribe to created a post or comment */
USER_ACTIVITY,
/** A user requested registration approval */
REGISTER_REQUEST
REGISTER_REQUEST,
/** A user redeemed an activity reward */
ACTIVITY_REDEEM
}