import { Entity, PrimaryColumn, Column, ManyToOne, JoinColumn } from 'typeorm';
import { User } from './User.entity';

@Entity('busy_blocks')
export class BusyBlock {
  @PrimaryColumn('char', { length: 36 })
  id!: string;

  @Column({ name: 'user_id', type: 'char', length: 36 })
  userId!: string;

  @Column({ name: 'start_time', type: 'datetime', precision: 3 })
  startTime!: Date;

  @Column({ name: 'end_time', type: 'datetime', precision: 3 })
  endTime!: Date;

  @Column({
    type: 'enum',
    enum: ['google', 'microsoft', 'apple', 'booking'],
  })
  source!: 'google' | 'microsoft' | 'apple' | 'booking';

  @Column({ name: 'source_ref', type: 'varchar', length: 512, nullable: true })
  sourceRef!: string | null;

  @Column({ name: 'fetched_at', type: 'datetime', precision: 3 })
  fetchedAt!: Date;

  @ManyToOne(() => User, { onDelete: 'CASCADE' })
  @JoinColumn({ name: 'user_id' })
  user!: User;
}
