"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedPacketModel = exports.RedPacketType = exports.RedPacketStatus = void 0; const openapi = require("@nestjs/swagger"); const typeorm_1 = require("typeorm"); const _base_model_1 = require("./_base_model"); const swagger_1 = require("@nestjs/swagger"); const class_validator_1 = require("class-validator"); const user_model_1 = require("./user.model"); const is_enum_mumber_string_1 = require("../app/common/decorator/is_enum_mumber_string"); const api_optional_decorator_1 = require("../app/common/decorator/api_optional.decorator"); const is_number_or_number_str_1 = require("../app/common/decorator/is_number_or_number_str"); var RedPacketStatus; (function (RedPacketStatus) { RedPacketStatus[RedPacketStatus["Unclaimed"] = 1] = "Unclaimed"; RedPacketStatus[RedPacketStatus["Claiming"] = 2] = "Claiming"; RedPacketStatus[RedPacketStatus["Claimed"] = 3] = "Claimed"; RedPacketStatus[RedPacketStatus["Expire"] = 4] = "Expire"; })(RedPacketStatus || (exports.RedPacketStatus = RedPacketStatus = {})); var RedPacketType; (function (RedPacketType) { RedPacketType[RedPacketType["Ordinary"] = 1] = "Ordinary"; RedPacketType[RedPacketType["Luck"] = 2] = "Luck"; })(RedPacketType || (exports.RedPacketType = RedPacketType = {})); let RedPacketModel = class RedPacketModel extends _base_model_1.BaseModel { totalAmount; totalCount; remainingAmount; remainingCount; userId; claimedUserId; status; groupId; type; createdAt; expireTime; user; static _OPENAPI_METADATA_FACTORY() { return { totalAmount: { required: true, type: () => Number }, totalCount: { required: true, type: () => Number }, remainingAmount: { required: true, type: () => Number }, remainingCount: { required: true, type: () => Number }, userId: { required: true, type: () => Number }, claimedUserId: { required: false, type: () => Number }, status: { required: true, enum: require("./red_packet.model").RedPacketStatus }, groupId: { required: false, type: () => String }, type: { required: true, enum: require("./red_packet.model").RedPacketType }, createdAt: { required: true, type: () => Number }, expireTime: { required: true, type: () => Number }, user: { required: false, type: () => require("./user.model").UserModel } }; } }; exports.RedPacketModel = RedPacketModel; __decorate([ (0, swagger_1.ApiProperty)({ description: '总金额(单位:分)' }), (0, is_number_or_number_str_1.IsNumberOrNumberStr)(), (0, typeorm_1.Column)({ type: 'int', unsigned: true, comment: ' 总金额(单位:分)', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "totalAmount", void 0); __decorate([ (0, swagger_1.ApiProperty)({ description: '总数量' }), (0, class_validator_1.IsInt)(), (0, typeorm_1.Column)({ type: 'int', unsigned: true, comment: ' 总数量', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "totalCount", void 0); __decorate([ (0, swagger_1.ApiProperty)({ description: '剩余金额(单位:分)' }), (0, class_validator_1.IsInt)(), (0, typeorm_1.Column)({ type: 'int', unsigned: true, comment: ' 剩余金额(单位:分)', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "remainingAmount", void 0); __decorate([ (0, swagger_1.ApiProperty)({ description: '剩余数量' }), (0, class_validator_1.IsInt)(), (0, typeorm_1.Column)({ type: 'int', unsigned: true, comment: ' 剩余数量', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "remainingCount", void 0); __decorate([ (0, swagger_1.ApiProperty)({ description: '用户ID' }), (0, class_validator_1.IsInt)(), (0, typeorm_1.Column)({ type: 'int', unsigned: true, comment: ' 用户ID', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "userId", void 0); __decorate([ (0, api_optional_decorator_1.ApiOptional)({ description: '可以领取的用户ID' }), (0, class_validator_1.IsInt)(), (0, typeorm_1.Column)({ type: 'int', unsigned: true, default: 0, comment: '可以领取的用户ID', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "claimedUserId", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)(), (0, is_enum_mumber_string_1.IsEnumNumberString)(RedPacketStatus), (0, swagger_1.ApiProperty)({ description: '领取状态', enum: RedPacketStatus, }), (0, typeorm_1.Column)({ type: 'tinyint', comment: ' 领取状态', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "status", void 0); __decorate([ (0, api_optional_decorator_1.ApiOptional)({ description: '群ID', nullable: true, }), (0, class_validator_1.IsString)(), (0, typeorm_1.Column)({ type: 'varchar', comment: '群ID', nullable: true, }), __metadata("design:type", String) ], RedPacketModel.prototype, "groupId", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)(), (0, is_enum_mumber_string_1.IsEnumNumberString)(RedPacketType), (0, swagger_1.ApiProperty)({ description: '红包类型', enum: RedPacketType, }), (0, typeorm_1.Column)({ type: 'tinyint', comment: '红包类型', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "type", void 0); __decorate([ (0, swagger_1.ApiProperty)({ description: '创建时间' }), (0, class_validator_1.IsInt)(), (0, typeorm_1.Column)({ type: 'int', unsigned: true, comment: ' 创建时间', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "createdAt", void 0); __decorate([ (0, swagger_1.ApiProperty)({ description: '过期时间' }), (0, class_validator_1.IsInt)(), (0, typeorm_1.Column)({ type: 'int', unsigned: true, comment: ' 过期时间', }), __metadata("design:type", Number) ], RedPacketModel.prototype, "expireTime", void 0); __decorate([ (0, swagger_1.ApiPropertyOptional)({ description: '用户', type: user_model_1.UserModel, nullable: true, }), (0, typeorm_1.ManyToOne)(() => user_model_1.UserModel, (_) => _.redPackets, { createForeignKeyConstraints: false, }), (0, typeorm_1.JoinColumn)(), __metadata("design:type", user_model_1.UserModel) ], RedPacketModel.prototype, "user", void 0); exports.RedPacketModel = RedPacketModel = __decorate([ (0, typeorm_1.Entity)({ comment: '红包表', name: 'im_red_packet', }) ], RedPacketModel); //# sourceMappingURL=red_packet.model.js.map