import { Column, DeleteDateColumn, Entity, ManyToOne, OneToMany } from "typeorm";
import { BaseEntity } from "./base.entity";
import { Group } from "./group.entity";
import { Timeline } from "./timeline.entity";
import { Expense } from "./expense.entity";
import { TripFund } from "./trip-funds.entity";
import { Map } from './map.entity';

@Entity('trips')
export class Trip extends BaseEntity {
  @Column()
  name: string;

  @Column()
  infor: string;

  @Column()
  location: string;

  @Column({ type: 'date' })
  startDate: Date;

  @Column({ type: 'date' })
  endDate: Date;

  @ManyToOne(() => Group, (group) => group.trips)
  group: Group;

  @OneToMany(() => Timeline, (timeline) => timeline.trip)
  timelines: Timeline[];

  @OneToMany(() => Expense, (expense) => expense.trip)
  expenses: Expense[];

  @OneToMany(() => TripFund, (fund) => fund.trip)
  funds: TripFund[];

  @OneToMany(() => Map, (map) => map.trip)
  maps: Map[];

  @DeleteDateColumn()
  deletedAt: Date;

  @Column({ default: false })
  isCloseTrip: boolean;
}