You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SmartGymManagementSystem/Equipment.java

76 lines
1.7 KiB

package com.gym.model;
import jakarta.persistence.*;
import lombok.Data;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "equipment")
@Data
public class Equipment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, length = 100)
private String name;
@Column(length = 50)
private String model;
@Column(length = 50)
private String brand;
@Column(length = 20)
private String status = "NORMAL";
@Column(length = 100)
private String location;
@Column(name = "purchase_date")
private LocalDate purchaseDate;
@Column(name = "usage_count", nullable = false)
private Integer usageCount = 0;
@Column(name = "last_maintenance")
private LocalDate lastMaintenance;
@Column(name = "next_maintenance")
private LocalDate nextMaintenance;
@Column(length = 500)
private String description;
private Double price;
@Column(name = "is_available")
private Boolean isAvailable = true;
@Column(name = "created_at")
private LocalDate createdAt;
@Column(name = "updated_at")
private LocalDate updatedAt;
// 维护记录(非数据库映射字段)
@Transient
private List<MaintenanceRecord> maintenanceRecords = new ArrayList<>();
@PrePersist
protected void onCreate() {
if (createdAt == null) {
createdAt = LocalDate.now();
}
if (updatedAt == null) {
updatedAt = LocalDate.now();
}
}
@PreUpdate
protected void onUpdate() {
updatedAt = LocalDate.now();
}
}