created API For Aplication Absensi

This commit is contained in:
2025-10-14 14:08:11 +07:00
commit 96d206d892
56 changed files with 6533 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
"use strict";
const { Model, DataTypes } = require("sequelize");
module.exports = (sequelize) => {
class Attedances extends Model {
static associate(models) {
this.belongsTo(models.User, {
foreignKey: 'user_id',
as: 'user'
})
this.belongsTo(models.Branch, {
foreignKey: 'branch_id',
as: 'branch',
onDelete: 'CASCADE'
})
}
}
Attedances.init({
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
allowNull: false,
primaryKey: true,
},
user_id: {
type: DataTypes.UUID,
allowNull: false,
},
branch_id: {
type: DataTypes.UUID,
allowNull: false,
},
date: {
type: DataTypes.DATEONLY,
allowNull: false
},
photo: {
type: DataTypes.STRING,
allowNull: true
},
clock_in: {
type: DataTypes.DATE,
},
clock_out: {
type: DataTypes.DATE
},
name: {
type: DataTypes.STRING,
allowNull: true
},
lat: {
type: DataTypes.DECIMAL(20, 15),
allowNull: true,
},
lng: {
type: DataTypes.DECIMAL(20, 15),
allowNull: true,
},
type: {
type: DataTypes.ENUM('present', 'sick', 'permission'),
defaultValue: 'present'
},
reason:{
type: DataTypes.TEXT
},
created_at: {
type: DataTypes.DATE,
},
updated_at: {
type: DataTypes.DATE,
},
deleted_at: {
type: DataTypes.DATE,
},
},
{
sequelize,
modelName: "Attedances",
tableName: "ref_attedances",
timestamps: true,
createdAt: "created_at",
updatedAt: "updated_at",
deletedAt: "deleted_at",
paranoid: true,
});
return Attedances;
};