mass refactor of models

This commit is contained in:
counterweight 2025-03-08 00:25:56 +01:00
parent b5c27c9b26
commit be7ec9b43f
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
16 changed files with 627 additions and 465 deletions

View file

@ -4,7 +4,9 @@ function buildDependencies() {
const dependencies = {};
const errors = require('./errors');
const constants = require('./constants');
const models = require('./models');
const ModelsProvider = require('./models');
const models = new ModelsProvider().provide();
const ServicesProvider = require('./services');
const services = new ServicesProvider({

View file

@ -1,21 +1,25 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class AppInviteCreatedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const AppInviteCreated = sequelize.define(
provide() {
const AppInviteCreated = this.sequelize.define(
'AppInviteCreated',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
inviter_pub_key: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -23,5 +27,8 @@ const AppInviteCreated = sequelize.define(
tableName: 'app_invite_created',
}
);
return AppInviteCreated;
}
}
module.exports = AppInviteCreated;
module.exports = AppInviteCreatedProvider;

View file

@ -1,25 +1,29 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class ContactDetailsSetProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const ContactDetailsSet = sequelize.define(
provide() {
const ContactDetailsSet = this.sequelize.define(
'ContactDetailsSet',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
public_key: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
encrypted_contact_details: {
type: DataTypes.TEXT,
type: this.DataTypes.TEXT,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -27,5 +31,8 @@ const ContactDetailsSet = sequelize.define(
tableName: 'contact_details_set',
}
);
return ContactDetailsSet;
}
}
module.exports = ContactDetailsSet;
module.exports = ContactDetailsSetProvider;

View file

@ -1,25 +1,29 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class LoginChallengeCompletedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const LoginChallengeCompleted = sequelize.define(
provide() {
const LoginChallengeCompleted = this.sequelize.define(
'LoginChallengeCompleted',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
nostr_challenge_completed_uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
},
public_key: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -27,5 +31,8 @@ const LoginChallengeCompleted = sequelize.define(
tableName: 'login_challenge_completed',
}
);
return LoginChallengeCompleted;
}
}
module.exports = LoginChallengeCompleted;
module.exports = LoginChallengeCompletedProvider;

View file

@ -1,21 +1,25 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class LoginChallengeCreatedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const LoginChallengeCreated = sequelize.define(
provide() {
const LoginChallengeCreated = this.sequelize.define(
'LoginChallengeCreated',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
nostr_challenge_uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -23,5 +27,8 @@ const LoginChallengeCreated = sequelize.define(
tableName: 'login_challenge_created',
}
);
return LoginChallengeCreated;
}
}
module.exports = LoginChallengeCreated;
module.exports = LoginChallengeCreatedProvider;

View file

@ -1,29 +1,33 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class NostrChallengeCompletedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const NostrChallengeCompleted = sequelize.define(
provide() {
const NostrChallengeCompleted = this.sequelize.define(
'NostrChallengeCompleted',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
challenge: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
signed_event: {
type: DataTypes.JSONB,
type: this.DataTypes.JSONB,
allowNull: false,
},
public_key: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -31,5 +35,8 @@ const NostrChallengeCompleted = sequelize.define(
tableName: 'nostr_challenge_completed',
}
);
return NostrChallengeCompleted;
}
}
module.exports = NostrChallengeCompleted;
module.exports = NostrChallengeCompletedProvider;

View file

@ -1,25 +1,29 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class NostrChallengeCreatedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const NostrChallengeCreated = sequelize.define(
provide() {
const NostrChallengeCreated = this.sequelize.define(
'NostrChallengeCreated',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
challenge: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
expires_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -27,5 +31,8 @@ const NostrChallengeCreated = sequelize.define(
tableName: 'nostr_challenge_created',
}
);
return NostrChallengeCreated;
}
}
module.exports = NostrChallengeCreated;
module.exports = NostrChallengeCreatedProvider;

View file

@ -1,25 +1,29 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class NymSetProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const NymSet = sequelize.define(
provide() {
const NymSet = this.sequelize.define(
'NymSet',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
public_key: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
nym: {
type: DataTypes.TEXT,
type: this.DataTypes.TEXT,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -27,5 +31,8 @@ const NymSet = sequelize.define(
tableName: 'nym_set',
}
);
return NymSet;
}
}
module.exports = NymSet;
module.exports = NymSetProvider;

View file

@ -1,21 +1,25 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class OfferCreatedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const OfferCreated = sequelize.define(
provide() {
const OfferCreated = this.sequelize.define(
'OfferCreated',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
public_key: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -23,5 +27,8 @@ const OfferCreated = sequelize.define(
tableName: 'offer_created',
}
);
return OfferCreated;
}
}
module.exports = OfferCreated;
module.exports = OfferCreatedProvider;

View file

@ -1,21 +1,25 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class OfferDeletedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const OfferDeleted = sequelize.define(
provide() {
const OfferDeleted = this.sequelize.define(
'OfferDeleted',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
offer_uuid: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -23,5 +27,8 @@ const OfferDeleted = sequelize.define(
tableName: 'offer_deleted',
}
);
return OfferDeleted;
}
}
module.exports = OfferDeleted;
module.exports = OfferDeletedProvider;

View file

@ -1,65 +1,69 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class OfferDetailsSetProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const OfferDetailsSet = sequelize.define(
provide() {
const OfferDetailsSet = this.sequelize.define(
'OfferDetailsSet',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
offer_uuid: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
wants: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
premium: {
type: DataTypes.DECIMAL(5, 2),
type: this.DataTypes.DECIMAL(5, 2),
allowNull: false,
},
trade_amount_eur: {
type: DataTypes.INTEGER,
type: this.DataTypes.INTEGER,
allowNull: false,
},
location_details: {
type: DataTypes.TEXT,
type: this.DataTypes.TEXT,
allowNull: false,
},
time_availability_details: {
type: DataTypes.TEXT,
type: this.DataTypes.TEXT,
allowNull: false,
},
show_offer_to_trusted: {
type: DataTypes.BOOLEAN,
type: this.DataTypes.BOOLEAN,
allowNull: false,
},
show_offer_to_trusted_trusted: {
type: DataTypes.BOOLEAN,
type: this.DataTypes.BOOLEAN,
allowNull: false,
},
show_offer_to_all_members: {
type: DataTypes.BOOLEAN,
type: this.DataTypes.BOOLEAN,
allowNull: false,
},
is_onchain_accepted: {
type: DataTypes.BOOLEAN,
type: this.DataTypes.BOOLEAN,
allowNull: false,
},
is_lightning_accepted: {
type: DataTypes.BOOLEAN,
type: this.DataTypes.BOOLEAN,
allowNull: false,
},
are_big_notes_accepted: {
type: DataTypes.BOOLEAN,
type: this.DataTypes.BOOLEAN,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -67,5 +71,8 @@ const OfferDetailsSet = sequelize.define(
tableName: 'offer_details_set',
}
);
return OfferDetailsSet;
}
}
module.exports = OfferDetailsSet;
module.exports = OfferDetailsSetProvider;

View file

@ -1,21 +1,25 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class SessionCreatedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const SessionCreated = sequelize.define(
provide() {
const SessionCreated = this.sequelize.define(
'SessionCreated',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
expires_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -23,5 +27,8 @@ const SessionCreated = sequelize.define(
tableName: 'session_created',
}
);
return SessionCreated;
}
}
module.exports = SessionCreated;
module.exports = SessionCreatedProvider;

View file

@ -1,25 +1,29 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class SessionRelatedToPublickeyProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const SessionRelatedToPublickey = sequelize.define(
provide() {
const SessionRelatedToPublickey = this.sequelize.define(
'SessionRelatedToPublickey',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
session_uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
},
public_key: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -27,5 +31,7 @@ const SessionRelatedToPublickey = sequelize.define(
tableName: 'session_related_to_public_key',
}
);
module.exports = SessionRelatedToPublickey;
return SessionRelatedToPublickey;
}
}
module.exports = SessionRelatedToPublickeyProvider;

View file

@ -1,29 +1,33 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class SignUpChallengeCompletedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const SignUpChallengeCompleted = sequelize.define(
provide() {
const SignUpChallengeCompleted = this.sequelize.define(
'SignUpChallengeCompleted',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
nostr_challenge_completed_uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
},
app_invite_uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
},
public_key: {
type: DataTypes.STRING,
type: this.DataTypes.STRING,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -31,5 +35,8 @@ const SignUpChallengeCompleted = sequelize.define(
tableName: 'sign_up_challenge_completed',
}
);
return SignUpChallengeCompleted;
}
}
module.exports = SignUpChallengeCompleted;
module.exports = SignUpChallengeCompletedProvider;

View file

@ -1,25 +1,29 @@
const { DataTypes } = require('sequelize');
const sequelize = require('../database');
class SignUpChallengeCreatedProvider {
constructor({ sequelize, DataTypes }) {
this.sequelize = sequelize;
this.DataTypes = DataTypes;
}
const SignUpChallengeCreated = sequelize.define(
provide() {
const SignUpChallengeCreated = this.sequelize.define(
'SignUpChallengeCreated',
{
uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
unique: true,
primaryKey: true,
},
nostr_challenge_uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
},
app_invite_uuid: {
type: DataTypes.UUID,
type: this.DataTypes.UUID,
allowNull: false,
},
created_at: {
type: DataTypes.DATE,
type: this.DataTypes.DATE,
allowNull: false,
},
},
@ -28,4 +32,8 @@ const SignUpChallengeCreated = sequelize.define(
}
);
module.exports = SignUpChallengeCreated;
return SignUpChallengeCreated;
}
}
module.exports = SignUpChallengeCreatedProvider;

View file

@ -1,19 +1,77 @@
const AppInviteCreated = require('./AppInviteCreated');
const ContactDetailsSet = require('./ContactDetailsSet');
const LoginChallengeCompleted = require('./LoginChallengeCompleted');
const LoginChallengeCreated = require('./LoginChallengeCreated');
const NostrChallengeCompleted = require('./NostrChallengeCompleted');
const NostrChallengeCreated = require('./NostrChallengeCreated');
const NymSet = require('./NymSet');
const OfferCreated = require('./OfferCreated');
const OfferDeleted = require('./OfferDeleted');
const OfferDetailsSet = require('./OfferDetailsSet');
const SessionCreated = require('./SessionCreated');
const SessionRelatedToPublickey = require('./SessionRelatedToPublickey');
const SignUpChallengeCompleted = require('./SignUpChallengeCompleted');
const SignUpChallengeCreated = require('./SignUpChallengeCreated');
const sequelize = require('../database');
const { DataTypes } = require('sequelize');
module.exports = {
const AppInviteCreatedProvider = require('./AppInviteCreated');
const AppInviteCreated = new AppInviteCreatedProvider({
sequelize,
DataTypes,
}).provide();
const ContactDetailsSetProvider = require('./ContactDetailsSet');
const ContactDetailsSet = new ContactDetailsSetProvider({
sequelize,
DataTypes,
}).provide();
const LoginChallengeCompletedProvider = require('./LoginChallengeCompleted');
const LoginChallengeCompleted = new LoginChallengeCompletedProvider({
sequelize,
DataTypes,
}).provide();
const LoginChallengeCreatedProvider = require('./LoginChallengeCreated');
const LoginChallengeCreated = new LoginChallengeCreatedProvider({
sequelize,
DataTypes,
}).provide();
const NostrChallengeCompletedProvider = require('./NostrChallengeCompleted');
const NostrChallengeCompleted = new NostrChallengeCompletedProvider({
sequelize,
DataTypes,
}).provide();
const NostrChallengeCreatedProvider = require('./NostrChallengeCreated');
const NostrChallengeCreated = new NostrChallengeCreatedProvider({
sequelize,
DataTypes,
}).provide();
const NymSetProvider = require('./NymSet');
const NymSet = new NymSetProvider({ sequelize, DataTypes }).provide();
const OfferCreatedProvider = require('./OfferCreated');
const OfferCreated = new OfferCreatedProvider({
sequelize,
DataTypes,
}).provide();
const OfferDeletedProvider = require('./OfferDeleted');
const OfferDeleted = new OfferDeletedProvider({
sequelize,
DataTypes,
}).provide();
const OfferDetailsSetProvider = require('./OfferDetailsSet');
const OfferDetailsSet = new OfferDetailsSetProvider({
sequelize,
DataTypes,
}).provide();
const SessionCreatedProvider = require('./SessionCreated');
const SessionCreated = new SessionCreatedProvider({
sequelize,
DataTypes,
}).provide();
const SessionRelatedToPublickeyProvider = require('./SessionRelatedToPublickey');
const SessionRelatedToPublickey = new SessionRelatedToPublickeyProvider({
sequelize,
DataTypes,
}).provide();
const SignUpChallengeCompletedProvider = require('./SignUpChallengeCompleted');
const SignUpChallengeCompleted = new SignUpChallengeCompletedProvider({
sequelize,
DataTypes,
}).provide();
const SignUpChallengeCreatedProvider = require('./SignUpChallengeCreated');
const SignUpChallengeCreated = new SignUpChallengeCreatedProvider({
sequelize,
DataTypes,
}).provide();
class ModelsProvider {
provide() {
return {
SignUpChallengeCreated,
SignUpChallengeCompleted,
SessionRelatedToPublickey,
@ -29,3 +87,7 @@ module.exports = {
ContactDetailsSet,
AppInviteCreated,
};
}
}
module.exports = ModelsProvider;