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:
@@ -1,14 +1,30 @@
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { IsNotEmpty, IsString, Matches } from 'class-validator';
|
||||
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
||||
import {
|
||||
IsInt,
|
||||
IsNotEmpty,
|
||||
IsOptional,
|
||||
IsString,
|
||||
Matches,
|
||||
Max,
|
||||
Min,
|
||||
} from 'class-validator';
|
||||
|
||||
export class UpdateCompanySettingDto {
|
||||
@ApiProperty({ example: '2026-01-05', description: 'YYYY-MM-DD' })
|
||||
@ApiPropertyOptional({ example: '2026-01-05', description: 'YYYY-MM-DD' })
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
@Matches(/^\d{4}-\d{2}-\d{2}$/, {
|
||||
message: 'cycleStartDate must be a calendar date',
|
||||
})
|
||||
cycleStartDate!: string;
|
||||
cycleStartDate?: string;
|
||||
|
||||
@ApiPropertyOptional({ example: 100, minimum: 1, maximum: 10000 })
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
@Min(1)
|
||||
@Max(10_000)
|
||||
checkInRadiusMeters?: number;
|
||||
}
|
||||
|
||||
export class CompanySettingDto {
|
||||
@@ -18,6 +34,9 @@ export class CompanySettingDto {
|
||||
@ApiProperty({ description: 'Unix ms start of the cycle-start calendar day' })
|
||||
cycleStartDate!: number;
|
||||
|
||||
@ApiProperty({ example: 100 })
|
||||
checkInRadiusMeters!: number;
|
||||
|
||||
@ApiProperty()
|
||||
status!: string;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user