add business categories CRUD module

This commit is contained in:
2026-05-07 19:11:14 +03:30
parent 53113d8108
commit 729cc9f4b9
16 changed files with 3263 additions and 1 deletions
+63
View File
@@ -0,0 +1,63 @@
import {
Column,
CreateDateColumn,
Entity,
JoinColumn,
ManyToOne,
PrimaryGeneratedColumn,
UpdateDateColumn,
} from 'typeorm';
import { BusinessEntity } from './business.entity';
import { BusinessServiceEntity } from './business-service.entity';
import { UserEntity } from './user.entity';
export enum BookingStatus {
PENDING = 'pending',
CONFIRMED = 'confirmed',
CANCELLED = 'cancelled',
COMPLETED = 'completed',
}
@Entity('bookings')
export class BookingEntity {
@PrimaryGeneratedColumn('uuid')
id!: string;
@ManyToOne(() => UserEntity, (user) => user.bookings, { onDelete: 'RESTRICT' })
@JoinColumn({ name: 'customerId' })
customer!: UserEntity;
@Column('uuid')
customerId!: string;
@ManyToOne(() => BusinessEntity, (business) => business.bookings, { onDelete: 'RESTRICT' })
@JoinColumn({ name: 'businessId' })
business!: BusinessEntity;
@Column('uuid')
businessId!: string;
@ManyToOne(() => BusinessServiceEntity, (service) => service.bookings, {
onDelete: 'RESTRICT',
})
@JoinColumn({ name: 'businessServiceId' })
businessService!: BusinessServiceEntity;
@Column('uuid')
businessServiceId!: string;
@Column({ type: 'timestamptz' })
scheduledAt!: Date;
@Column({ type: 'enum', enum: BookingStatus, default: BookingStatus.PENDING })
status!: BookingStatus;
@Column({ type: 'text', nullable: true })
note!: string | null;
@CreateDateColumn()
createdAt!: Date;
@UpdateDateColumn()
updatedAt!: Date;
}