Передел библиотеку работы с БД под только login и bchName
This commit is contained in:
AidarKC
2025-12-19 14:08:05 +03:00
parent 0c49cae055
commit 627321d4ae
9 changed files with 233 additions and 448 deletions
@@ -3,27 +3,13 @@ package shine.db.entities;
/**
* Модель активной сессии (таблица active_sessions).
*
* CREATE TABLE active_sessions (
* sessionId TEXT NOT NULL PRIMARY KEY,
* loginId INTEGER NOT NULL,
* sessionPwd TEXT NOT NULL,
* storagePwd TEXT NOT NULL,
* sessionCreatedAtMs INTEGER NOT NULL,
* lastAuthirificatedAtMs INTEGER NOT NULL,
* pushEndpoint TEXT,
* pushP256dhKey TEXT,
* pushAuthKey TEXT,
* clientIp TEXT,
* clientInfoFromClient TEXT,
* clientInfoFromRequest TEXT,
* userLanguage TEXT,
* FOREIGN KEY (loginId) REFERENCES solana_users(loginId)
* );
* Теперь вместо loginId:
* - login TEXT NOT NULL (FK -> solana_users(login))
*/
public class ActiveSessionEntry {
private String sessionId; // TEXT base64(32 bytes)
private long loginId; // INTEGER
private String login; // TEXT NOT NULL
private String sessionPwd; // TEXT
private String storagePwd; // TEXT
private long sessionCreatedAtMs; // INTEGER
@@ -42,7 +28,7 @@ public class ActiveSessionEntry {
}
public ActiveSessionEntry(String sessionId,
long loginId,
String login,
String sessionPwd,
String storagePwd,
long sessionCreatedAtMs,
@@ -55,7 +41,7 @@ public class ActiveSessionEntry {
String clientInfoFromRequest,
String userLanguage) {
this.sessionId = sessionId;
this.loginId = loginId;
this.login = login;
this.sessionPwd = sessionPwd;
this.storagePwd = storagePwd;
this.sessionCreatedAtMs = sessionCreatedAtMs;
@@ -69,109 +55,42 @@ public class ActiveSessionEntry {
this.userLanguage = userLanguage;
}
// --- getters / setters ---
public String getSessionId() { return sessionId; }
public void setSessionId(String sessionId) { this.sessionId = sessionId; }
public String getSessionId() {
return sessionId;
}
public String getLogin() { return login; }
public void setLogin(String login) { this.login = login; }
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public String getSessionPwd() { return sessionPwd; }
public void setSessionPwd(String sessionPwd) { this.sessionPwd = sessionPwd; }
public long getLoginId() {
return loginId;
}
public String getStoragePwd() { return storagePwd; }
public void setStoragePwd(String storagePwd) { this.storagePwd = storagePwd; }
public void setLoginId(long loginId) {
this.loginId = loginId;
}
public long getSessionCreatedAtMs() { return sessionCreatedAtMs; }
public void setSessionCreatedAtMs(long sessionCreatedAtMs) { this.sessionCreatedAtMs = sessionCreatedAtMs; }
public String getSessionPwd() {
return sessionPwd;
}
public long getLastAuthirificatedAtMs() { return lastAuthirificatedAtMs; }
public void setLastAuthirificatedAtMs(long lastAuthirificatedAtMs) { this.lastAuthirificatedAtMs = lastAuthirificatedAtMs; }
public void setSessionPwd(String sessionPwd) {
this.sessionPwd = sessionPwd;
}
public String getPushEndpoint() { return pushEndpoint; }
public void setPushEndpoint(String pushEndpoint) { this.pushEndpoint = pushEndpoint; }
public String getStoragePwd() {
return storagePwd;
}
public String getPushP256dhKey() { return pushP256dhKey; }
public void setPushP256dhKey(String pushP256dhKey) { this.pushP256dhKey = pushP256dhKey; }
public void setStoragePwd(String storagePwd) {
this.storagePwd = storagePwd;
}
public String getPushAuthKey() { return pushAuthKey; }
public void setPushAuthKey(String pushAuthKey) { this.pushAuthKey = pushAuthKey; }
public long getSessionCreatedAtMs() {
return sessionCreatedAtMs;
}
public String getClientIp() { return clientIp; }
public void setClientIp(String clientIp) { this.clientIp = clientIp; }
public void setSessionCreatedAtMs(long sessionCreatedAtMs) {
this.sessionCreatedAtMs = sessionCreatedAtMs;
}
public String getClientInfoFromClient() { return clientInfoFromClient; }
public void setClientInfoFromClient(String clientInfoFromClient) { this.clientInfoFromClient = clientInfoFromClient; }
public long getLastAuthirificatedAtMs() {
return lastAuthirificatedAtMs;
}
public String getClientInfoFromRequest() { return clientInfoFromRequest; }
public void setClientInfoFromRequest(String clientInfoFromRequest) { this.clientInfoFromRequest = clientInfoFromRequest; }
public void setLastAuthirificatedAtMs(long lastAuthirificatedAtMs) {
this.lastAuthirificatedAtMs = lastAuthirificatedAtMs;
}
public String getPushEndpoint() {
return pushEndpoint;
}
public void setPushEndpoint(String pushEndpoint) {
this.pushEndpoint = pushEndpoint;
}
public String getPushP256dhKey() {
return pushP256dhKey;
}
public void setPushP256dhKey(String pushP256dhKey) {
this.pushP256dhKey = pushP256dhKey;
}
public String getPushAuthKey() {
return pushAuthKey;
}
public void setPushAuthKey(String pushAuthKey) {
this.pushAuthKey = pushAuthKey;
}
public String getClientIp() {
return clientIp;
}
public void setClientIp(String clientIp) {
this.clientIp = clientIp;
}
public String getClientInfoFromClient() {
return clientInfoFromClient;
}
public void setClientInfoFromClient(String clientInfoFromClient) {
this.clientInfoFromClient = clientInfoFromClient;
}
public String getClientInfoFromRequest() {
return clientInfoFromRequest;
}
public void setClientInfoFromRequest(String clientInfoFromRequest) {
this.clientInfoFromRequest = clientInfoFromRequest;
}
public String getUserLanguage() {
return userLanguage;
}
public void setUserLanguage(String userLanguage) {
this.userLanguage = userLanguage;
}
public String getUserLanguage() { return userLanguage; }
public void setUserLanguage(String userLanguage) { this.userLanguage = userLanguage; }
}
@@ -3,22 +3,19 @@ package shine.db.entities;
/**
* Запись блока (таблица blocks).
*
* Идея:
* - Храним и "глобальную" позицию (blockGlobalNumber + blockGlobalPreHashe),
* и "линейную" позицию (blockLineIndex + blockLineNumber + blockLinePreHashe),
* плюс полезные поля маршрутизации (to*).
* Теперь:
* - login TEXT NOT NULL
* - bchName TEXT NOT NULL (идёт сразу после login)
* - to_login TEXT nullable
* - toBchName TEXT NOT NULL (идёт сразу после to_login)
*
* В БД:
* - int64 -> INTEGER (Java long)
* - int32 -> INTEGER (Java int)
* - int16 -> INTEGER (Java int/short)
* - bytes -> BLOB (Java byte[])
* - hashes -> TEXT
* PRIMARY KEY пока убран вообще.
*/
public class BlockEntry {
private long loginId; // int64
private long blockchainId; // int64
private String login; // TEXT
private String bchName; // TEXT
private int blockGlobalNumber; // int32
private String blockGlobalPreHashe; // TEXT
@@ -30,15 +27,15 @@ public class BlockEntry {
private byte[] blockByte; // BLOB
private long toLoginId; // int64
private int toBlockchainId; // int32
private String toLogin; // TEXT nullable
private String toBchName; // TEXT
private int toBlockGlobalNumber; // int32
private String toBlockHashe; // TEXT
public BlockEntry() {}
public BlockEntry(long loginId,
long blockchainId,
public BlockEntry(String login,
String bchName,
int blockGlobalNumber,
String blockGlobalPreHashe,
int blockLineIndex,
@@ -46,12 +43,12 @@ public class BlockEntry {
String blockLinePreHashe,
int msgType,
byte[] blockByte,
long toLoginId,
int toBlockchainId,
String toLogin,
String toBchName,
int toBlockGlobalNumber,
String toBlockHashe) {
this.loginId = loginId;
this.blockchainId = blockchainId;
this.login = login;
this.bchName = bchName;
this.blockGlobalNumber = blockGlobalNumber;
this.blockGlobalPreHashe = blockGlobalPreHashe;
this.blockLineIndex = blockLineIndex;
@@ -59,17 +56,17 @@ public class BlockEntry {
this.blockLinePreHashe = blockLinePreHashe;
this.msgType = msgType;
this.blockByte = blockByte;
this.toLoginId = toLoginId;
this.toBlockchainId = toBlockchainId;
this.toLogin = toLogin;
this.toBchName = toBchName;
this.toBlockGlobalNumber = toBlockGlobalNumber;
this.toBlockHashe = toBlockHashe;
}
public long getLoginId() { return loginId; }
public void setLoginId(long loginId) { this.loginId = loginId; }
public String getLogin() { return login; }
public void setLogin(String login) { this.login = login; }
public long getBlockchainId() { return blockchainId; }
public void setBlockchainId(long blockchainId) { this.blockchainId = blockchainId; }
public String getBchName() { return bchName; }
public void setBchName(String bchName) { this.bchName = bchName; }
public int getBlockGlobalNumber() { return blockGlobalNumber; }
public void setBlockGlobalNumber(int blockGlobalNumber) { this.blockGlobalNumber = blockGlobalNumber; }
@@ -92,11 +89,11 @@ public class BlockEntry {
public byte[] getBlockByte() { return blockByte; }
public void setBlockByte(byte[] blockByte) { this.blockByte = blockByte; }
public long getToLoginId() { return toLoginId; }
public void setToLoginId(long toLoginId) { this.toLoginId = toLoginId; }
public String getToLogin() { return toLogin; }
public void setToLogin(String toLogin) { this.toLogin = toLogin; }
public int getToBlockchainId() { return toBlockchainId; }
public void setToBlockchainId(int toBlockchainId) { this.toBlockchainId = toBlockchainId; }
public String getToBchName() { return toBchName; }
public void setToBchName(String toBchName) { this.toBchName = toBchName; }
public int getToBlockGlobalNumber() { return toBlockGlobalNumber; }
public void setToBlockGlobalNumber(int toBlockGlobalNumber) { this.toBlockGlobalNumber = toBlockGlobalNumber; }
@@ -3,86 +3,50 @@ package shine.db.entities;
/**
* Локальная копия пользователя из Solana.
*
* Храним:
* - login / loginId;
* - bchId — id персонального блокчейна;
* - loginKey — публичный ключ для логина / авторизации;
* - deviceKey — публичный ключ устройства (второй ключ);
* - bchLimit — лимит по количеству блоков / размеру цепочки (может быть null).
* Теперь:
* - login — PRIMARY KEY (TEXT)
* - bchName — имя/идентификатор персонального блокчейна (TEXT)
* - loginKey — публичный ключ логина
* - deviceKey — публичный ключ устройства
* - bchLimit — лимит (может быть null)
*/
public class SolanaUserEntry {
private long loginId;
private String login;
private long bchId;
private String loginKey; // раньше pubkey0
private String deviceKey; // раньше pubkey1
private Integer bchLimit; // может быть null
private String login; // TEXT PK
private String bchName; // TEXT NOT NULL
private String loginKey; // TEXT
private String deviceKey; // TEXT
private Integer bchLimit; // INTEGER nullable
public SolanaUserEntry() {
}
public SolanaUserEntry(long loginId,
String login,
long bchId,
public SolanaUserEntry(String login,
String bchName,
String loginKey,
String deviceKey,
Integer bchLimit) {
this.loginId = loginId;
this.login = login;
this.bchId = bchId;
this.bchName = bchName;
this.loginKey = loginKey;
this.deviceKey = deviceKey;
this.bchLimit = bchLimit;
}
public long getLoginId() {
return loginId;
}
public String getLogin() { return login; }
public void setLogin(String login) { this.login = login; }
public void setLoginId(long loginId) {
this.loginId = loginId;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public long getBchId() {
return bchId;
}
public void setBchId(long bchId) {
this.bchId = bchId;
}
public String getBchName() { return bchName; }
public void setBchName(String bchName) { this.bchName = bchName; }
/** Публичный ключ логина (основной ключ пользователя). */
public String getLoginKey() {
return loginKey;
}
public void setLoginKey(String loginKey) {
this.loginKey = loginKey;
}
public String getLoginKey() { return loginKey; }
public void setLoginKey(String loginKey) { this.loginKey = loginKey; }
/** Публичный ключ устройства (device key). */
public String getDeviceKey() {
return deviceKey;
}
public String getDeviceKey() { return deviceKey; }
public void setDeviceKey(String deviceKey) { this.deviceKey = deviceKey; }
public void setDeviceKey(String deviceKey) {
this.deviceKey = deviceKey;
}
public Integer getBchLimit() {
return bchLimit;
}
public void setBchLimit(Integer bchLimit) {
this.bchLimit = bchLimit;
}
}
public Integer getBchLimit() { return bchLimit; }
public void setBchLimit(Integer bchLimit) { this.bchLimit = bchLimit; }
}
@@ -2,7 +2,7 @@ package shine.db.entities;
public class UserParamEntry {
private long loginId;
private String login; // TEXT NOT NULL
private String param;
private long bchChannelId; // новый канал, 8 байт, может быть 0
private String value;
@@ -13,14 +13,14 @@ public class UserParamEntry {
public UserParamEntry() {
}
public UserParamEntry(long loginId,
public UserParamEntry(String login,
String param,
long bchChannelId,
String value,
long timeMs,
short pubkeyNum,
String signature) {
this.loginId = loginId;
this.login = login;
this.param = param;
this.bchChannelId = bchChannelId;
this.value = value;
@@ -29,59 +29,24 @@ public class UserParamEntry {
this.signature = signature;
}
public long getLoginId() {
return loginId;
}
public String getLogin() { return login; }
public void setLogin(String login) { this.login = login; }
public void setLoginId(long loginId) {
this.loginId = loginId;
}
public String getParam() { return param; }
public void setParam(String param) { this.param = param; }
public String getParam() {
return param;
}
public long getBchChannelId() { return bchChannelId; }
public void setBchChannelId(long bchChannelId) { this.bchChannelId = bchChannelId; }
public void setParam(String param) {
this.param = param;
}
public String getValue() { return value; }
public void setValue(String value) { this.value = value; }
public long getBchChannelId() {
return bchChannelId;
}
public long getTimeMs() { return timeMs; }
public void setTimeMs(long timeMs) { this.timeMs = timeMs; }
public void setBchChannelId(long bchChannelId) {
this.bchChannelId = bchChannelId;
}
public short getPubkeyNum() { return pubkeyNum; }
public void setPubkeyNum(short pubkeyNum) { this.pubkeyNum = pubkeyNum; }
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 getSignature() {
return signature;
}
public void setSignature(String signature) {
this.signature = signature;
}
}
public String getSignature() { return signature; }
public void setSignature(String signature) { this.signature = signature; }
}