Дабавил соранение параметра пользователя. (бд и запрос на добавление), но пока не проверял
This commit is contained in:
AidarKC
2026-01-05 16:11:54 +03:00
parent dd49c4de00
commit bfffe44c4a
7 changed files with 444 additions and 79 deletions
@@ -1,31 +1,40 @@
package shine.db.entities;
/**
* UserParamEntry — сохранённый параметр пользователя.
*
* Таблица: users_params
* - login TEXT NOT NULL
* - param TEXT NOT NULL
* - time_ms INTEGER NOT NULL
* - value TEXT NOT NULL
* - device_key TEXT NULL
* - signature TEXT NULL
*
* UNIQUE(login, param)
*
* Смысл:
* - в таблице всегда хранится "последнее" значение параметра по времени.
* - time_ms монотонно растёт для каждого (login,param) — сервер не принимает более старые обновления.
*/
public class UserParamEntry {
private String login; // TEXT NOT NULL
private String login;
private String param;
private long bchChannelId; // новый канал, 8 байт, может быть 0
private long timeMs;
private String value;
private long timeMs; // время в мс
private short pubkeyNum;
private String signature;
public UserParamEntry() {
}
private String deviceKey; // base64(32) — можно хранить как "каким ключом подписано"
private String signature; // base64(64)
public UserParamEntry(String login,
String param,
long bchChannelId,
String value,
long timeMs,
short pubkeyNum,
String signature) {
public UserParamEntry() {}
public UserParamEntry(String login, String param, long timeMs, String value, String deviceKey, String signature) {
this.login = login;
this.param = param;
this.bchChannelId = bchChannelId;
this.value = value;
this.timeMs = timeMs;
this.pubkeyNum = pubkeyNum;
this.value = value;
this.deviceKey = deviceKey;
this.signature = signature;
}
@@ -35,17 +44,14 @@ public class UserParamEntry {
public String getParam() { return param; }
public void setParam(String param) { this.param = param; }
public long getBchChannelId() { return bchChannelId; }
public void setBchChannelId(long bchChannelId) { this.bchChannelId = bchChannelId; }
public long getTimeMs() { return timeMs; }
public void setTimeMs(long timeMs) { this.timeMs = timeMs; }
public String getValue() { return value; }
public void setValue(String value) { this.value = value; }
public long getTimeMs() { return timeMs; }
public void setTimeMs(long timeMs) { this.timeMs = timeMs; }
public short getPubkeyNum() { return pubkeyNum; }
public void setPubkeyNum(short pubkeyNum) { this.pubkeyNum = pubkeyNum; }
public String getDeviceKey() { return deviceKey; }
public void setDeviceKey(String deviceKey) { this.deviceKey = deviceKey; }
public String getSignature() { return signature; }
public void setSignature(String signature) { this.signature = signature; }