Initial commit: mail-server with WebFlux backend and Angular v22 Synthwave frontend

Co-authored-by: Junie <junie@jetbrains.com>
This commit is contained in:
2026-11-05 01:07:29 +01:00
co-authored by Junie
commit 0339413d6e
78 changed files with 6808 additions and 0 deletions
@@ -0,0 +1,59 @@
package com.mailserver.domain;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
import java.time.Instant;
@Table("users")
public class User {
@Id
private Long id;
@Column("email")
private String email;
@Column("password")
private String password;
@Column("display_name")
private String displayName;
@Column("quota_bytes")
private Long quotaBytes = 1024L * 1024 * 1024;
@Column("used_bytes")
private Long usedBytes = 0L;
@Column("is_active")
private boolean isActive = true;
@Column("created_at")
private Instant createdAt;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
public String getDisplayName() { return displayName; }
public void setDisplayName(String displayName) { this.displayName = displayName; }
public Long getQuotaBytes() { return quotaBytes; }
public void setQuotaBytes(Long quotaBytes) { this.quotaBytes = quotaBytes; }
public Long getUsedBytes() { return usedBytes; }
public void setUsedBytes(Long usedBytes) { this.usedBytes = usedBytes; }
public boolean isActive() { return isActive; }
public void setActive(boolean active) { isActive = active; }
public Instant getCreatedAt() { return createdAt; }
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
}