juice-shop
71 строка · 1.4 Кб
1/*
2* Copyright (c) 2014-2024 Bjoern Kimminich & the OWASP Juice Shop contributors.
3* SPDX-License-Identifier: MIT
4*/
5
6/* jslint node: true */
7import {
8Model,
9type InferAttributes,
10type InferCreationAttributes,
11DataTypes,
12type CreationOptional,
13type Sequelize
14} from 'sequelize'
15class Card extends Model<
16InferAttributes<Card>,
17InferCreationAttributes<Card>
18> {
19declare UserId: number
20declare id: CreationOptional<number>
21declare fullName: string
22declare cardNum: number
23declare expMonth: number
24declare expYear: number
25}
26
27const CardModelInit = (sequelize: Sequelize) => {
28Card.init(
29{
30UserId: {
31type: DataTypes.INTEGER
32},
33id: {
34type: DataTypes.INTEGER,
35primaryKey: true,
36autoIncrement: true
37},
38fullName: DataTypes.STRING,
39cardNum: {
40type: DataTypes.INTEGER,
41validate: {
42isInt: true,
43min: 1000000000000000,
44max: 9999999999999998
45}
46},
47expMonth: {
48type: DataTypes.INTEGER,
49validate: {
50isInt: true,
51min: 1,
52max: 12
53}
54},
55expYear: {
56type: DataTypes.INTEGER,
57validate: {
58isInt: true,
59min: 2080,
60max: 2099
61}
62}
63},
64{
65tableName: 'Cards',
66sequelize
67}
68)
69}
70
71export { Card as CardModel, CardModelInit }
72