Бэкенд: регистрация со входом сразу и /api/config, профиль и смена пароля, свои папки, PATCH письма (прочитано, флажок, перенос; Спам ставит отметку), корзина и очистка, черновики, несколько адресатов и копия, вложения черновика уходят с письмом, вложения и заголовки To/Cc входящих сохраняются, письма заблокированных — в Спам. Исправлено: загрузка файла (415), колонка content_id (500 на любых вложениях), SPA-маршрут с точкой. Фронтенд переписан: все таблицы — грид, оформление — шаблон synthwave-design-showcase.html. α Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
54 lines
1.5 KiB
Java
54 lines
1.5 KiB
Java
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("folders")
|
|
public class Folder {
|
|
|
|
@Id
|
|
private Long id;
|
|
|
|
@Column("user_id")
|
|
private Long userId;
|
|
|
|
@Column("name")
|
|
private String name;
|
|
|
|
@Column("message_count")
|
|
private Integer messageCount = 0;
|
|
|
|
@Column("unread_count")
|
|
private Integer unreadCount = 0;
|
|
|
|
@Column("is_system")
|
|
private boolean system;
|
|
|
|
@Column("created_at")
|
|
private Instant createdAt;
|
|
|
|
public Long getId() { return id; }
|
|
public void setId(Long id) { this.id = id; }
|
|
|
|
public Long getUserId() { return userId; }
|
|
public void setUserId(Long userId) { this.userId = userId; }
|
|
|
|
public String getName() { return name; }
|
|
public void setName(String name) { this.name = name; }
|
|
|
|
public Integer getMessageCount() { return messageCount; }
|
|
public void setMessageCount(Integer messageCount) { this.messageCount = messageCount; }
|
|
|
|
public Integer getUnreadCount() { return unreadCount; }
|
|
public void setUnreadCount(Integer unreadCount) { this.unreadCount = unreadCount; }
|
|
|
|
public boolean isSystem() { return system; }
|
|
public void setSystem(boolean system) { this.system = system; }
|
|
|
|
public Instant getCreatedAt() { return createdAt; }
|
|
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
|
|
}
|