Add attendance and visit management features with database schema updates
- Introduced new `attendances` and `visits` tables to manage employee attendance and customer visits, including relevant fields for check-in and check-out details. - Updated `company_settings` to include a `check_in_radius_meters` column for attendance validation. - Implemented foreign key constraints to ensure data integrity between `attendances`, `visits`, `employees`, `branches`, and other related entities. - Created new services and controllers for handling attendance and visit operations, including check-in, check-out, and bulk actions. - Enhanced DTOs for attendance and visit data transfer, including validation for input data. - Added unit and integration tests to validate the new functionalities and ensure proper handling of attendance and visit records. - Created migration scripts to apply the necessary database schema changes for the new features.
This commit is contained in:
@@ -33,6 +33,7 @@ export class CompanySettingsRepository {
|
||||
.insert(companySettings)
|
||||
.values({
|
||||
cycleStartDate: input.cycleStartDate.value,
|
||||
checkInRadiusMeters: input.checkInRadiusMeters ?? 100,
|
||||
status: Status.create(Status.DEFAULT).value,
|
||||
createdAt: now.value,
|
||||
updatedAt: now.value,
|
||||
@@ -46,6 +47,9 @@ export class CompanySettingsRepository {
|
||||
.update(companySettings)
|
||||
.set({
|
||||
cycleStartDate: input.cycleStartDate.value,
|
||||
...(input.checkInRadiusMeters !== undefined
|
||||
? { checkInRadiusMeters: input.checkInRadiusMeters }
|
||||
: {}),
|
||||
updatedAt: now.value,
|
||||
updatedBy: input.userId,
|
||||
})
|
||||
@@ -58,6 +62,7 @@ export class CompanySettingsRepository {
|
||||
return {
|
||||
id: row.id,
|
||||
cycleStartDate: DateTime.fromUnixMs(row.cycleStartDate),
|
||||
checkInRadiusMeters: row.checkInRadiusMeters,
|
||||
status: Status.create(row.status),
|
||||
createdAt: DateTime.fromUnixMs(row.createdAt),
|
||||
updatedAt: DateTime.fromUnixMs(row.updatedAt),
|
||||
|
||||
Reference in New Issue
Block a user