@armi-wave/common 1.18.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/build/enums/AccountType.d.ts +5 -5
  2. package/build/enums/AccountType.js +9 -9
  3. package/build/enums/PaidPlan.d.ts +4 -4
  4. package/build/enums/PaidPlan.js +8 -8
  5. package/build/enums/PostType.d.ts +7 -7
  6. package/build/enums/PostType.js +11 -11
  7. package/build/errors/bad-request-error.d.ts +9 -9
  8. package/build/errors/bad-request-error.js +18 -18
  9. package/build/errors/custom-error.d.ts +8 -8
  10. package/build/errors/custom-error.js +9 -9
  11. package/build/errors/database-connection-error.d.ts +9 -9
  12. package/build/errors/database-connection-error.js +22 -22
  13. package/build/errors/not-authorized-error.d.ts +8 -8
  14. package/build/errors/not-authorized-error.js +21 -21
  15. package/build/errors/not-found-error.d.ts +8 -8
  16. package/build/errors/not-found-error.js +21 -21
  17. package/build/errors/request-validation-error.d.ts +11 -11
  18. package/build/errors/request-validation-error.js +23 -23
  19. package/build/index.d.ts +18 -16
  20. package/build/index.js +48 -44
  21. package/build/middlewares/current-user.d.ts +18 -15
  22. package/build/middlewares/current-user.js +17 -17
  23. package/build/middlewares/error-handler.d.ts +2 -2
  24. package/build/middlewares/error-handler.js +17 -17
  25. package/build/middlewares/require-auth.d.ts +2 -2
  26. package/build/middlewares/require-auth.js +14 -14
  27. package/build/middlewares/validate-request.d.ts +2 -2
  28. package/build/middlewares/validate-request.js +16 -16
  29. package/build/models/Comment.d.ts +28 -28
  30. package/build/models/Comment.js +31 -31
  31. package/build/models/Post.d.ts +33 -33
  32. package/build/models/Post.js +33 -33
  33. package/build/models/Reply.d.ts +26 -26
  34. package/build/models/Reply.js +30 -30
  35. package/build/models/User.d.ts +68 -68
  36. package/build/models/User.js +84 -84
  37. package/build/utils/CountryUtils.d.ts +5 -5
  38. package/build/utils/CountryUtils.js +30 -30
  39. package/build/utils/countries.d.ts +5 -5
  40. package/build/utils/countries.js +1215 -1215
  41. package/build/utils/minioClient.d.ts +4 -0
  42. package/build/utils/minioClient.js +34 -0
  43. package/build/utils/multerConfig.d.ts +3 -0
  44. package/build/utils/multerConfig.js +23 -0
  45. package/build/utils/password.d.ts +4 -4
  46. package/build/utils/password.js +31 -31
  47. package/package.json +29 -23
@@ -1,17 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.currentUser = void 0;
4
- const jsonwebtoken_1 = require("jsonwebtoken");
5
- const currentUser = (req, res, next) => {
6
- var _a;
7
- if (!((_a = req.session) === null || _a === void 0 ? void 0 : _a.jwt)) {
8
- return next();
9
- }
10
- try {
11
- const payload = (0, jsonwebtoken_1.verify)(req.session.jwt, process.env.JWT_KEY);
12
- req.currentUser = payload;
13
- }
14
- catch (error) { }
15
- next();
16
- };
17
- exports.currentUser = currentUser;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.currentUser = void 0;
4
+ const jsonwebtoken_1 = require("jsonwebtoken");
5
+ const currentUser = (req, res, next) => {
6
+ var _a;
7
+ if (!((_a = req.session) === null || _a === void 0 ? void 0 : _a.jwt)) {
8
+ return next();
9
+ }
10
+ try {
11
+ const payload = (0, jsonwebtoken_1.verify)(req.session.jwt, process.env.JWT_KEY);
12
+ req.currentUser = payload;
13
+ }
14
+ catch (error) { }
15
+ next();
16
+ };
17
+ exports.currentUser = currentUser;
@@ -1,2 +1,2 @@
1
- import { Request, Response, NextFunction } from 'express';
2
- export declare const errorHandler: (err: Error, req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined;
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const errorHandler: (err: Error, req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined;
@@ -1,17 +1,17 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.errorHandler = void 0;
7
- const custom_error_1 = __importDefault(require("../errors/custom-error"));
8
- const errorHandler = (err, req, res, next) => {
9
- if (err instanceof custom_error_1.default) {
10
- return res.status(err.statusCode).send({ errors: err.serializeErrors() });
11
- }
12
- console.error(err);
13
- res.status(400).send({
14
- errors: [{ message: 'Something went wrong' }],
15
- });
16
- };
17
- exports.errorHandler = errorHandler;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.errorHandler = void 0;
7
+ const custom_error_1 = __importDefault(require("../errors/custom-error"));
8
+ const errorHandler = (err, req, res, next) => {
9
+ if (err instanceof custom_error_1.default) {
10
+ return res.status(err.statusCode).send({ errors: err.serializeErrors() });
11
+ }
12
+ console.error(err);
13
+ res.status(400).send({
14
+ errors: [{ message: 'Something went wrong' }],
15
+ });
16
+ };
17
+ exports.errorHandler = errorHandler;
@@ -1,2 +1,2 @@
1
- import { NextFunction, Request, Response } from 'express';
2
- export declare const requireAuth: (req: Request, res: Response, next: NextFunction) => void;
1
+ import { NextFunction, Request, Response } from 'express';
2
+ export declare const requireAuth: (req: Request, res: Response, next: NextFunction) => void;
@@ -1,14 +1,14 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.requireAuth = void 0;
7
- const not_authorized_error_1 = __importDefault(require("../errors/not-authorized-error"));
8
- const requireAuth = (req, res, next) => {
9
- if (!req.currentUser) {
10
- throw new not_authorized_error_1.default();
11
- }
12
- next();
13
- };
14
- exports.requireAuth = requireAuth;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.requireAuth = void 0;
7
+ const not_authorized_error_1 = __importDefault(require("../errors/not-authorized-error"));
8
+ const requireAuth = (req, res, next) => {
9
+ if (!req.currentUser) {
10
+ throw new not_authorized_error_1.default();
11
+ }
12
+ next();
13
+ };
14
+ exports.requireAuth = requireAuth;
@@ -1,2 +1,2 @@
1
- import { NextFunction, Request, Response } from 'express';
2
- export declare const validateRequest: (req: Request, res: Response, next: NextFunction) => void;
1
+ import { NextFunction, Request, Response } from 'express';
2
+ export declare const validateRequest: (req: Request, res: Response, next: NextFunction) => void;
@@ -1,16 +1,16 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.validateRequest = void 0;
7
- const express_validator_1 = require("express-validator");
8
- const request_validation_error_1 = __importDefault(require("../errors/request-validation-error"));
9
- const validateRequest = (req, res, next) => {
10
- const errors = (0, express_validator_1.validationResult)(req);
11
- if (!errors.isEmpty()) {
12
- throw new request_validation_error_1.default(errors.array());
13
- }
14
- next();
15
- };
16
- exports.validateRequest = validateRequest;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateRequest = void 0;
7
+ const express_validator_1 = require("express-validator");
8
+ const request_validation_error_1 = __importDefault(require("../errors/request-validation-error"));
9
+ const validateRequest = (req, res, next) => {
10
+ const errors = (0, express_validator_1.validationResult)(req);
11
+ if (!errors.isEmpty()) {
12
+ throw new request_validation_error_1.default(errors.array());
13
+ }
14
+ next();
15
+ };
16
+ exports.validateRequest = validateRequest;
@@ -1,28 +1,28 @@
1
- import mongoose from 'mongoose';
2
- interface CommentAttributes {
3
- postId: string;
4
- userId: string;
5
- username: string;
6
- likes?: number;
7
- upVotes?: number;
8
- downVotes?: number;
9
- reportNr?: number;
10
- replyNr?: number;
11
- text: string;
12
- }
13
- interface CommentModel extends mongoose.Model<CommentDocument> {
14
- build(attrs: CommentAttributes): CommentDocument;
15
- }
16
- interface CommentDocument extends mongoose.Document {
17
- postId: string;
18
- userId: string;
19
- username: string;
20
- likes: number;
21
- upVotes: number;
22
- downVotes: number;
23
- reportNr: number;
24
- replyNr: number;
25
- text: string;
26
- }
27
- declare const Comment: CommentModel;
28
- export default Comment;
1
+ import mongoose from 'mongoose';
2
+ interface CommentAttributes {
3
+ postId: string;
4
+ userId: string;
5
+ username: string;
6
+ likes?: number;
7
+ upVotes?: number;
8
+ downVotes?: number;
9
+ reportNr?: number;
10
+ replyNr?: number;
11
+ text: string;
12
+ }
13
+ interface CommentModel extends mongoose.Model<CommentDocument> {
14
+ build(attrs: CommentAttributes): CommentDocument;
15
+ }
16
+ interface CommentDocument extends mongoose.Document {
17
+ postId: string;
18
+ userId: string;
19
+ username: string;
20
+ likes: number;
21
+ upVotes: number;
22
+ downVotes: number;
23
+ reportNr: number;
24
+ replyNr: number;
25
+ text: string;
26
+ }
27
+ declare const Comment: CommentModel;
28
+ export default Comment;
@@ -1,31 +1,31 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const mongoose_1 = __importDefault(require("mongoose"));
7
- const commentSchema = new mongoose_1.default.Schema({
8
- postId: { type: String, required: true },
9
- userId: { type: String, required: true },
10
- username: { type: String, required: true },
11
- likes: { type: Number, required: false, default: 0 },
12
- upVotes: { type: Number, required: false, default: 0 },
13
- downVotes: { type: Number, required: false, default: 0 },
14
- reportNr: { type: Number, required: false, default: 0 },
15
- replyNr: { type: Number, required: false, default: 0 },
16
- text: { type: String, required: true },
17
- }, {
18
- toJSON: {
19
- transform(doc, ret) {
20
- ret.id = ret._id;
21
- delete ret.__v;
22
- delete ret._id;
23
- delete ret.reportNr;
24
- },
25
- },
26
- });
27
- commentSchema.statics.build = (attrs) => {
28
- return new Comment(attrs);
29
- };
30
- const Comment = mongoose_1.default.model('Comment', commentSchema);
31
- exports.default = Comment;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mongoose_1 = __importDefault(require("mongoose"));
7
+ const commentSchema = new mongoose_1.default.Schema({
8
+ postId: { type: String, required: true },
9
+ userId: { type: String, required: true },
10
+ username: { type: String, required: true },
11
+ likes: { type: Number, required: false, default: 0 },
12
+ upVotes: { type: Number, required: false, default: 0 },
13
+ downVotes: { type: Number, required: false, default: 0 },
14
+ reportNr: { type: Number, required: false, default: 0 },
15
+ replyNr: { type: Number, required: false, default: 0 },
16
+ text: { type: String, required: true },
17
+ }, {
18
+ toJSON: {
19
+ transform(doc, ret) {
20
+ ret.id = ret._id;
21
+ delete ret.__v;
22
+ delete ret._id;
23
+ delete ret.reportNr;
24
+ },
25
+ },
26
+ });
27
+ commentSchema.statics.build = (attrs) => {
28
+ return new Comment(attrs);
29
+ };
30
+ const Comment = mongoose_1.default.model('Comment', commentSchema);
31
+ exports.default = Comment;
@@ -1,33 +1,33 @@
1
- import mongoose from 'mongoose';
2
- import { PostType } from '../enums/PostType';
3
- interface PostAttributes {
4
- userId: string;
5
- username: string;
6
- likes?: number;
7
- upVotes?: number;
8
- downVotes?: number;
9
- commentsNr?: number;
10
- saved?: number;
11
- postType: PostType;
12
- reportNr?: number;
13
- contentUrl: string;
14
- text?: string;
15
- }
16
- interface PostModel extends mongoose.Model<PostDocument> {
17
- build(attrs: PostAttributes): PostDocument;
18
- }
19
- interface PostDocument extends mongoose.Document {
20
- userId: string;
21
- username: string;
22
- likes: number;
23
- upVotes: number;
24
- downVotes: number;
25
- commentsNr: number;
26
- saved: number;
27
- postType: PostType;
28
- reportNr: number;
29
- contentUrl: string;
30
- text: string;
31
- }
32
- declare const Post: PostModel;
33
- export default Post;
1
+ import mongoose from 'mongoose';
2
+ import { PostType } from '../enums/PostType';
3
+ interface PostAttributes {
4
+ userId: string;
5
+ username: string;
6
+ likes?: number;
7
+ upVotes?: number;
8
+ downVotes?: number;
9
+ commentsNr?: number;
10
+ saved?: number;
11
+ postType: PostType;
12
+ reportNr?: number;
13
+ contentUrl: string;
14
+ text?: string;
15
+ }
16
+ interface PostModel extends mongoose.Model<PostDocument> {
17
+ build(attrs: PostAttributes): PostDocument;
18
+ }
19
+ interface PostDocument extends mongoose.Document {
20
+ userId: string;
21
+ username: string;
22
+ likes: number;
23
+ upVotes: number;
24
+ downVotes: number;
25
+ commentsNr: number;
26
+ saved: number;
27
+ postType: PostType;
28
+ reportNr: number;
29
+ contentUrl: string;
30
+ text: string;
31
+ }
32
+ declare const Post: PostModel;
33
+ export default Post;
@@ -1,33 +1,33 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const mongoose_1 = __importDefault(require("mongoose"));
7
- const postSchema = new mongoose_1.default.Schema({
8
- userId: { type: String, required: true },
9
- username: { type: String, required: true },
10
- likes: { type: Number, required: false, default: 0 },
11
- upVotes: { type: Number, required: false, default: 0 },
12
- downVotes: { type: Number, required: false, default: 0 },
13
- commentsNr: { type: Number, required: false, default: 0 },
14
- saved: { type: Number, required: false, default: 0 },
15
- postType: { type: String, required: true },
16
- reportNr: { type: Number, required: false, default: 0 },
17
- contentUrl: { type: String, required: true },
18
- text: { type: String, required: false, default: '' },
19
- }, {
20
- toJSON: {
21
- transform(doc, ret) {
22
- ret.id = ret._id;
23
- delete ret.__v;
24
- delete ret._id;
25
- delete ret.reportNr;
26
- },
27
- },
28
- });
29
- postSchema.statics.build = (attrs) => {
30
- return new Post(attrs);
31
- };
32
- const Post = mongoose_1.default.model('Post', postSchema);
33
- exports.default = Post;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mongoose_1 = __importDefault(require("mongoose"));
7
+ const postSchema = new mongoose_1.default.Schema({
8
+ userId: { type: String, required: true },
9
+ username: { type: String, required: true },
10
+ likes: { type: Number, required: false, default: 0 },
11
+ upVotes: { type: Number, required: false, default: 0 },
12
+ downVotes: { type: Number, required: false, default: 0 },
13
+ commentsNr: { type: Number, required: false, default: 0 },
14
+ saved: { type: Number, required: false, default: 0 },
15
+ postType: { type: String, required: true },
16
+ reportNr: { type: Number, required: false, default: 0 },
17
+ contentUrl: { type: String, required: true },
18
+ text: { type: String, required: false, default: '' },
19
+ }, {
20
+ toJSON: {
21
+ transform(doc, ret) {
22
+ ret.id = ret._id;
23
+ delete ret.__v;
24
+ delete ret._id;
25
+ delete ret.reportNr;
26
+ },
27
+ },
28
+ });
29
+ postSchema.statics.build = (attrs) => {
30
+ return new Post(attrs);
31
+ };
32
+ const Post = mongoose_1.default.model('Post', postSchema);
33
+ exports.default = Post;
@@ -1,26 +1,26 @@
1
- import mongoose from 'mongoose';
2
- interface ReplyAttributes {
3
- commentId: string;
4
- userId: string;
5
- username: string;
6
- likes?: number;
7
- upVotes?: number;
8
- downVotes?: number;
9
- reportNr?: number;
10
- text: string;
11
- }
12
- interface ReplyModel extends mongoose.Model<ReplyDocument> {
13
- build(attrs: ReplyAttributes): ReplyDocument;
14
- }
15
- interface ReplyDocument extends mongoose.Document {
16
- commentId: string;
17
- userId: string;
18
- username: string;
19
- likes: number;
20
- upVotes: number;
21
- downVotes: number;
22
- reportNr: number;
23
- text: string;
24
- }
25
- declare const Reply: ReplyModel;
26
- export default Reply;
1
+ import mongoose from 'mongoose';
2
+ interface ReplyAttributes {
3
+ commentId: string;
4
+ userId: string;
5
+ username: string;
6
+ likes?: number;
7
+ upVotes?: number;
8
+ downVotes?: number;
9
+ reportNr?: number;
10
+ text: string;
11
+ }
12
+ interface ReplyModel extends mongoose.Model<ReplyDocument> {
13
+ build(attrs: ReplyAttributes): ReplyDocument;
14
+ }
15
+ interface ReplyDocument extends mongoose.Document {
16
+ commentId: string;
17
+ userId: string;
18
+ username: string;
19
+ likes: number;
20
+ upVotes: number;
21
+ downVotes: number;
22
+ reportNr: number;
23
+ text: string;
24
+ }
25
+ declare const Reply: ReplyModel;
26
+ export default Reply;
@@ -1,30 +1,30 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const mongoose_1 = __importDefault(require("mongoose"));
7
- const replySchema = new mongoose_1.default.Schema({
8
- commentId: { type: String, required: true },
9
- userId: { type: String, required: true },
10
- username: { type: String, required: true },
11
- likes: { type: Number, required: false, default: 0 },
12
- upVotes: { type: Number, required: false, default: 0 },
13
- downVotes: { type: Number, required: false, default: 0 },
14
- reportNr: { type: Number, required: false, default: 0 },
15
- text: { type: String, required: true },
16
- }, {
17
- toJSON: {
18
- transform(doc, ret) {
19
- ret.id = ret._id;
20
- delete ret.__v;
21
- delete ret._id;
22
- delete ret.reportNr;
23
- },
24
- },
25
- });
26
- replySchema.statics.build = (attrs) => {
27
- return new Reply(attrs);
28
- };
29
- const Reply = mongoose_1.default.model('Reply', replySchema);
30
- exports.default = Reply;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mongoose_1 = __importDefault(require("mongoose"));
7
+ const replySchema = new mongoose_1.default.Schema({
8
+ commentId: { type: String, required: true },
9
+ userId: { type: String, required: true },
10
+ username: { type: String, required: true },
11
+ likes: { type: Number, required: false, default: 0 },
12
+ upVotes: { type: Number, required: false, default: 0 },
13
+ downVotes: { type: Number, required: false, default: 0 },
14
+ reportNr: { type: Number, required: false, default: 0 },
15
+ text: { type: String, required: true },
16
+ }, {
17
+ toJSON: {
18
+ transform(doc, ret) {
19
+ ret.id = ret._id;
20
+ delete ret.__v;
21
+ delete ret._id;
22
+ delete ret.reportNr;
23
+ },
24
+ },
25
+ });
26
+ replySchema.statics.build = (attrs) => {
27
+ return new Reply(attrs);
28
+ };
29
+ const Reply = mongoose_1.default.model('Reply', replySchema);
30
+ exports.default = Reply;
@@ -1,68 +1,68 @@
1
- import mongoose from 'mongoose';
2
- import { AccountType } from '../enums/AccountType';
3
- import { PaidPlan } from '../enums/PaidPlan';
4
- interface UserAttributes {
5
- email: string;
6
- username: string;
7
- password: string;
8
- name: string;
9
- accountType: AccountType;
10
- surname: string;
11
- followers?: number;
12
- following?: number;
13
- postsNr?: number;
14
- phoneNumber: string;
15
- verified?: boolean;
16
- paidPlan?: PaidPlan;
17
- savedPosts?: string[];
18
- likedPosts?: string[];
19
- upVotedPosts?: string[];
20
- likedComments?: string[];
21
- bannedAccounts?: string[];
22
- reportedPosts?: string[];
23
- validReportedPosts?: string[];
24
- totalLikes?: number;
25
- totalUpVotes?: number;
26
- totalDownVotes?: number;
27
- location: string;
28
- height?: number;
29
- weight?: number;
30
- profession?: string;
31
- grossIncome?: number;
32
- netIncome?: number;
33
- }
34
- interface UserModel extends mongoose.Model<UserDocument> {
35
- build(attrs: UserAttributes): UserDocument;
36
- }
37
- interface UserDocument extends mongoose.Document {
38
- email: string;
39
- username: string;
40
- password: string;
41
- name: string;
42
- accountType: AccountType;
43
- surname: string;
44
- followers: number;
45
- following: number;
46
- postsNr: number;
47
- phoneNumber: string;
48
- verified: boolean;
49
- paidPlan: PaidPlan;
50
- savedPosts: string[];
51
- likedPosts: string[];
52
- upVotedPosts: string[];
53
- likedComments: string[];
54
- bannedAccounts: string[];
55
- reportedPosts: string[];
56
- validReportedPosts: string[];
57
- totalLikes: number;
58
- totalUpVotes: number;
59
- totalDownVotes: number;
60
- location: string;
61
- height: number;
62
- weight: number;
63
- profession: string;
64
- grossIncome: number;
65
- netIncome: number;
66
- }
67
- declare const User: UserModel;
68
- export default User;
1
+ import mongoose from 'mongoose';
2
+ import { AccountType } from '../enums/AccountType';
3
+ import { PaidPlan } from '../enums/PaidPlan';
4
+ interface UserAttributes {
5
+ email: string;
6
+ username: string;
7
+ password: string;
8
+ name: string;
9
+ accountType: AccountType;
10
+ surname: string;
11
+ followers?: number;
12
+ following?: number;
13
+ postsNr?: number;
14
+ phoneNumber: string;
15
+ verified?: boolean;
16
+ paidPlan?: PaidPlan;
17
+ savedPosts?: string[];
18
+ likedPosts?: string[];
19
+ upVotedPosts?: string[];
20
+ likedComments?: string[];
21
+ bannedAccounts?: string[];
22
+ reportedPosts?: string[];
23
+ validReportedPosts?: string[];
24
+ totalLikes?: number;
25
+ totalUpVotes?: number;
26
+ totalDownVotes?: number;
27
+ location: string;
28
+ height?: number;
29
+ weight?: number;
30
+ profession?: string;
31
+ grossIncome?: number;
32
+ netIncome?: number;
33
+ }
34
+ interface UserModel extends mongoose.Model<UserDocument> {
35
+ build(attrs: UserAttributes): UserDocument;
36
+ }
37
+ interface UserDocument extends mongoose.Document {
38
+ email: string;
39
+ username: string;
40
+ password: string;
41
+ name: string;
42
+ accountType: AccountType;
43
+ surname: string;
44
+ followers: number;
45
+ following: number;
46
+ postsNr: number;
47
+ phoneNumber: string;
48
+ verified: boolean;
49
+ paidPlan: PaidPlan;
50
+ savedPosts: string[];
51
+ likedPosts: string[];
52
+ upVotedPosts: string[];
53
+ likedComments: string[];
54
+ bannedAccounts: string[];
55
+ reportedPosts: string[];
56
+ validReportedPosts: string[];
57
+ totalLikes: number;
58
+ totalUpVotes: number;
59
+ totalDownVotes: number;
60
+ location: string;
61
+ height: number;
62
+ weight: number;
63
+ profession: string;
64
+ grossIncome: number;
65
+ netIncome: number;
66
+ }
67
+ declare const User: UserModel;
68
+ export default User;