Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | 11x 11x 11x 11x 11x 11x 11x | import { Sequelize, DataTypes, Optional, Model, ModelStatic } from "sequelize";
import {
DumpsterPositionAttributes,
DumpsterPositionCreationAttributes,
} from "./DumpsterPositions";
import {
ContentTypeAttributes,
ContentTypeCreationAttributes,
} from "./ContentTypes";
export interface DumpsterContentsAttributes {
dumpsterID: number;
contentID: number;
amount?: number | null;
unit?: string | null;
quality?: number | null;
foundDate: Date;
expiryDate?: Date | null;
}
export interface DumpsterContentsCreationAttributes
extends Optional<DumpsterContentsAttributes, "dumpsterID" | "foundDate"> {}
export class DumpsterContents
extends Model<
DumpsterContentsAttributes,
DumpsterContentsCreationAttributes
>
implements DumpsterContentsAttributes {
dumpsterID!: number;
contentID!: number;
amount?: number | null;
unit?: string | null;
quality?: number | null;
foundDate!: Date;
expiryDate?: Date | null;
}
// Inject Sequelize
export function init(sequelize: Sequelize) {
DumpsterContents.init(
{
dumpsterID: {
type: DataTypes.INTEGER.UNSIGNED,
primaryKey: true,
allowNull: false,
},
contentID: {
type: DataTypes.INTEGER.UNSIGNED,
primaryKey: true,
allowNull: false,
},
amount: {
type: DataTypes.INTEGER,
},
unit: {
type: DataTypes.STRING,
},
quality: {
type: DataTypes.TINYINT.UNSIGNED,
},
foundDate: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: Sequelize.fn("now"),
},
expiryDate: {
type: DataTypes.DATE,
},
},
{
sequelize,
tableName: "DumpsterContents",
},
);
return DumpsterContents;
}
// The type is not defined yet, so use a substitute
export function associate({
DumpsterPositions,
ContentTypes,
}: {
DumpsterPositions: ModelStatic<
Model<DumpsterPositionAttributes, DumpsterPositionCreationAttributes>
>;
ContentTypes: ModelStatic<
Model<ContentTypeAttributes, ContentTypeCreationAttributes>
>;
}) {
DumpsterContents.belongsTo(ContentTypes, {
as: "contentType",
foreignKey: "contentID",
});
}
|