@grapadigital/shared-schemas 1.0.119 → 1.0.120

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.
package/dist/index.d.ts CHANGED
@@ -13,3 +13,4 @@ export * from './schemas/sale.schema';
13
13
  export * from './schemas/invoice.schema';
14
14
  export * from './schemas/log.schema';
15
15
  export * from './schemas/project.schema';
16
+ export * from './schemas/commission.schema';
package/dist/index.js CHANGED
@@ -29,3 +29,4 @@ __exportStar(require("./schemas/sale.schema"), exports);
29
29
  __exportStar(require("./schemas/invoice.schema"), exports);
30
30
  __exportStar(require("./schemas/log.schema"), exports);
31
31
  __exportStar(require("./schemas/project.schema"), exports);
32
+ __exportStar(require("./schemas/commission.schema"), exports);
@@ -0,0 +1,81 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/session" />
19
+ /// <reference types="mongoose/types/types" />
20
+ /// <reference types="mongoose/types/utility" />
21
+ /// <reference types="mongoose/types/validation" />
22
+ /// <reference types="mongoose/types/virtuals" />
23
+ /// <reference types="mongoose/types/schematypes" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import { HydratedDocument, Schema as MongooseSchema, Types } from 'mongoose';
27
+ import { Sale } from './sale.schema';
28
+ export type CommissionDocument = HydratedDocument<Commission>;
29
+ export declare class CommissionRecipient {
30
+ name: string;
31
+ email: string;
32
+ team: string;
33
+ }
34
+ export declare const CommissionRecipientSchema: MongooseSchema<CommissionRecipient, import("mongoose").Model<CommissionRecipient, any, any, any, import("mongoose").Document<unknown, any, CommissionRecipient, any, {}> & CommissionRecipient & {
35
+ _id: Types.ObjectId;
36
+ } & {
37
+ __v: number;
38
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, CommissionRecipient, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<CommissionRecipient>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<CommissionRecipient> & {
39
+ _id: Types.ObjectId;
40
+ } & {
41
+ __v: number;
42
+ }>;
43
+ export declare class Commission {
44
+ _id?: Types.ObjectId;
45
+ recipient: CommissionRecipient;
46
+ value: number;
47
+ percentage: number;
48
+ role: 'origination' | 'commercial' | 'planning' | 'curation';
49
+ status: 'pending' | 'approved' | 'ready' | 'paid' | 'cancelled' | 'disputed';
50
+ type: 'collaborator' | 'agency';
51
+ sale: Types.ObjectId | Sale;
52
+ paidAt?: Date;
53
+ approvedAt?: Date;
54
+ readyAt?: Date;
55
+ approvedBy?: string;
56
+ description?: string;
57
+ createdAt?: Date;
58
+ updatedAt?: Date;
59
+ }
60
+ export declare const CommissionSchema: MongooseSchema<Commission, import("mongoose").Model<Commission, any, any, any, import("mongoose").Document<unknown, any, Commission, any, {}> & Commission & Required<{
61
+ _id: Types.ObjectId;
62
+ }> & {
63
+ __v: number;
64
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Commission, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<Commission>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<Commission> & Required<{
65
+ _id: Types.ObjectId;
66
+ }> & {
67
+ __v: number;
68
+ }>;
69
+ export declare const CommissionModel: import("mongoose").Model<Commission, {}, {}, {}, import("mongoose").Document<unknown, {}, Commission, {}, import("mongoose").DefaultSchemaOptions> & Commission & Required<{
70
+ _id: Types.ObjectId;
71
+ }> & {
72
+ __v: number;
73
+ }, MongooseSchema<Commission, import("mongoose").Model<Commission, any, any, any, import("mongoose").Document<unknown, any, Commission, any, {}> & Commission & Required<{
74
+ _id: Types.ObjectId;
75
+ }> & {
76
+ __v: number;
77
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Commission, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<Commission>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<Commission> & Required<{
78
+ _id: Types.ObjectId;
79
+ }> & {
80
+ __v: number;
81
+ }>>;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CommissionModel = exports.CommissionSchema = exports.Commission = exports.CommissionRecipientSchema = exports.CommissionRecipient = void 0;
13
+ const mongoose_1 = require("@nestjs/mongoose");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ const mongoose_2 = require("mongoose");
16
+ let CommissionRecipient = class CommissionRecipient {
17
+ };
18
+ __decorate([
19
+ (0, mongoose_1.Prop)({ type: String, required: true }),
20
+ __metadata("design:type", String)
21
+ ], CommissionRecipient.prototype, "name", void 0);
22
+ __decorate([
23
+ (0, mongoose_1.Prop)({ type: String, required: true }),
24
+ __metadata("design:type", String)
25
+ ], CommissionRecipient.prototype, "email", void 0);
26
+ __decorate([
27
+ (0, mongoose_1.Prop)({ type: String, required: true }),
28
+ __metadata("design:type", String)
29
+ ], CommissionRecipient.prototype, "team", void 0);
30
+ CommissionRecipient = __decorate([
31
+ (0, mongoose_1.Schema)({ _id: false })
32
+ ], CommissionRecipient);
33
+ exports.CommissionRecipient = CommissionRecipient;
34
+ exports.CommissionRecipientSchema = mongoose_1.SchemaFactory.createForClass(CommissionRecipient);
35
+ let Commission = class Commission {
36
+ };
37
+ __decorate([
38
+ (0, mongoose_1.Prop)({ type: mongoose_2.Schema.Types.ObjectId, auto: true, required: false }),
39
+ __metadata("design:type", mongoose_2.Types.ObjectId)
40
+ ], Commission.prototype, "_id", void 0);
41
+ __decorate([
42
+ (0, mongoose_1.Prop)({ type: exports.CommissionRecipientSchema, required: true }),
43
+ __metadata("design:type", CommissionRecipient)
44
+ ], Commission.prototype, "recipient", void 0);
45
+ __decorate([
46
+ (0, mongoose_1.Prop)({ type: Number, required: true }),
47
+ __metadata("design:type", Number)
48
+ ], Commission.prototype, "value", void 0);
49
+ __decorate([
50
+ (0, mongoose_1.Prop)({ type: Number, required: true, min: 0, max: 100 }),
51
+ __metadata("design:type", Number)
52
+ ], Commission.prototype, "percentage", void 0);
53
+ __decorate([
54
+ (0, mongoose_1.Prop)({
55
+ type: String,
56
+ enum: ['origination', 'commercial', 'planning', 'curation'],
57
+ default: 'origination',
58
+ required: true,
59
+ }),
60
+ __metadata("design:type", String)
61
+ ], Commission.prototype, "role", void 0);
62
+ __decorate([
63
+ (0, mongoose_1.Prop)({
64
+ type: String,
65
+ enum: ['pending', 'approved', 'ready', 'paid', 'cancelled', 'disputed'],
66
+ default: 'pending',
67
+ required: true,
68
+ }),
69
+ __metadata("design:type", String)
70
+ ], Commission.prototype, "status", void 0);
71
+ __decorate([
72
+ (0, swagger_1.ApiProperty)({
73
+ enum: ['sale', 'recruitment', 'content', 'bonus'],
74
+ example: 'sale'
75
+ }),
76
+ (0, mongoose_1.Prop)({
77
+ type: String,
78
+ enum: ['collaborator', 'agency'],
79
+ required: true,
80
+ }),
81
+ __metadata("design:type", String)
82
+ ], Commission.prototype, "type", void 0);
83
+ __decorate([
84
+ (0, mongoose_1.Prop)({ type: mongoose_2.Schema.Types.ObjectId, ref: 'Sale', required: false }),
85
+ __metadata("design:type", Object)
86
+ ], Commission.prototype, "sale", void 0);
87
+ __decorate([
88
+ (0, mongoose_1.Prop)({ type: Date, required: false }),
89
+ __metadata("design:type", Date)
90
+ ], Commission.prototype, "paidAt", void 0);
91
+ __decorate([
92
+ (0, mongoose_1.Prop)({ type: Date, required: false }),
93
+ __metadata("design:type", Date)
94
+ ], Commission.prototype, "approvedAt", void 0);
95
+ __decorate([
96
+ (0, mongoose_1.Prop)({ type: Date, required: false }),
97
+ __metadata("design:type", Date)
98
+ ], Commission.prototype, "readyAt", void 0);
99
+ __decorate([
100
+ (0, mongoose_1.Prop)({ type: String, required: false }),
101
+ __metadata("design:type", String)
102
+ ], Commission.prototype, "approvedBy", void 0);
103
+ __decorate([
104
+ (0, mongoose_1.Prop)({ type: String, required: false }),
105
+ __metadata("design:type", String)
106
+ ], Commission.prototype, "description", void 0);
107
+ __decorate([
108
+ (0, mongoose_1.Prop)({ type: Date, default: Date.now, required: false }),
109
+ __metadata("design:type", Date)
110
+ ], Commission.prototype, "createdAt", void 0);
111
+ __decorate([
112
+ (0, mongoose_1.Prop)({ type: Date, default: Date.now, required: false }),
113
+ __metadata("design:type", Date)
114
+ ], Commission.prototype, "updatedAt", void 0);
115
+ Commission = __decorate([
116
+ (0, mongoose_1.Schema)({ timestamps: true })
117
+ ], Commission);
118
+ exports.Commission = Commission;
119
+ exports.CommissionSchema = mongoose_1.SchemaFactory.createForClass(Commission);
120
+ exports.CommissionModel = (0, mongoose_2.model)('Commission', exports.CommissionSchema);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grapadigital/shared-schemas",
3
- "version": "1.0.119",
3
+ "version": "1.0.120",
4
4
  "description": "Shared Mongoose Schemas",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -13,3 +13,4 @@ export * from './schemas/sale.schema';
13
13
  export * from './schemas/invoice.schema';
14
14
  export * from './schemas/log.schema';
15
15
  export * from './schemas/project.schema';
16
+ export * from './schemas/commission.schema';
@@ -0,0 +1,96 @@
1
+ import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
2
+ import { ApiProperty } from '@nestjs/swagger';
3
+
4
+ import {
5
+ HydratedDocument,
6
+ Schema as MongooseSchema,
7
+ Types,
8
+ model as MongooseModel,
9
+ } from 'mongoose';
10
+
11
+ import { Sale } from './sale.schema';
12
+
13
+ export type CommissionDocument = HydratedDocument<Commission>;
14
+
15
+ @Schema({ _id: false })
16
+ export class CommissionRecipient {
17
+ @Prop({ type: String, required: true })
18
+ name: string;
19
+
20
+ @Prop({ type: String, required: true })
21
+ email: string;
22
+
23
+ @Prop({ type: String, required: true })
24
+ team: string;
25
+ }
26
+
27
+ export const CommissionRecipientSchema = SchemaFactory.createForClass(CommissionRecipient);
28
+
29
+ @Schema({ timestamps: true })
30
+ export class Commission {
31
+ @Prop({ type: MongooseSchema.Types.ObjectId, auto: true, required: false })
32
+ _id?: Types.ObjectId;
33
+
34
+ @Prop({ type: CommissionRecipientSchema, required: true })
35
+ recipient: CommissionRecipient;
36
+
37
+ @Prop({ type: Number, required: true })
38
+ value: number;
39
+
40
+ @Prop({ type: Number, required: true, min: 0, max: 100 })
41
+ percentage: number;
42
+
43
+ @Prop({
44
+ type: String,
45
+ enum: ['origination', 'commercial', 'planning', 'curation'],
46
+ default: 'origination',
47
+ required: true,
48
+ })
49
+ role: 'origination' | 'commercial' | 'planning' | 'curation';
50
+
51
+ @Prop({
52
+ type: String,
53
+ enum: ['pending', 'approved', 'ready', 'paid', 'cancelled', 'disputed'],
54
+ default: 'pending',
55
+ required: true,
56
+ })
57
+ status: 'pending' | 'approved' | 'ready' | 'paid' | 'cancelled' | 'disputed';
58
+
59
+ @ApiProperty({
60
+ enum: ['sale', 'recruitment', 'content', 'bonus'],
61
+ example: 'sale'
62
+ })
63
+ @Prop({
64
+ type: String,
65
+ enum: ['collaborator', 'agency'],
66
+ required: true,
67
+ })
68
+ type: 'collaborator' | 'agency';
69
+
70
+ @Prop({ type: MongooseSchema.Types.ObjectId, ref: 'Sale', required: false })
71
+ sale: Types.ObjectId | Sale;
72
+
73
+ @Prop({ type: Date, required: false })
74
+ paidAt?: Date;
75
+
76
+ @Prop({ type: Date, required: false })
77
+ approvedAt?: Date;
78
+
79
+ @Prop({ type: Date, required: false })
80
+ readyAt?: Date;
81
+
82
+ @Prop({ type: String, required: false })
83
+ approvedBy?: string;
84
+
85
+ @Prop({ type: String, required: false })
86
+ description?: string;
87
+
88
+ @Prop({ type: Date, default: Date.now, required: false })
89
+ createdAt?: Date;
90
+
91
+ @Prop({ type: Date, default: Date.now, required: false })
92
+ updatedAt?: Date;
93
+ }
94
+
95
+ export const CommissionSchema = SchemaFactory.createForClass(Commission);
96
+ export const CommissionModel = MongooseModel('Commission', CommissionSchema);