import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, OneToMany } from 'typeorm';
import { User } from './user.entity';
import { ConnectedAccount } from '../../meta-ads/entities/connected-account.entity';

/**
 * Workspace Entity
 * كيان مساحة العمل (الوكالة / الفريق)
 * 
 * Allows users to organize accounts into separate environments (e.g., for different clients).
 * يتيح للمستخدمين تنظيم الحسابات في بيئات منفصلة (على سبيل المثال، لمختلف العملاء).
 */
@Entity('workspaces')
export class Workspace {
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @Column()
  name: string; // e.g., "Client A", "Marketing Team"

  @Column({ nullable: true })
  description: string;

  @CreateDateColumn()
  createdAt: Date;

  @UpdateDateColumn()
  updatedAt: Date;

  @ManyToOne(() => User, (user) => user.workspaces)
  owner: User;

  @OneToMany(() => ConnectedAccount, (account) => account.workspace)
  accounts: ConnectedAccount[];
}
