import { Column, Entity, PrimaryColumn, UpdateDateColumn } from 'typeorm';

@Entity('platform_settings')
export class PlatformSettings {
  @PrimaryColumn({ type: 'varchar', length: 50, default: 'global' })
  id: string;

  /** Number of days after which build links expire. 0 = never expires. */
  @Column({ name: 'build_link_expiry_days', type: 'float', default: 0 })
  buildLinkExpiryDays: number;

  /** Whether the AI "Improve with AI" feature is enabled for release notes. */
  @Column({ name: 'ai_release_notes_enabled', type: 'boolean', default: true })
  aiReleaseNotesEnabled: boolean;

  /** Maximum build file size in MB. 0 = use server default (500 MB). */
  @Column({ name: 'max_build_size_mb', type: 'int', default: 500 })
  maxBuildSizeMb: number;

  /** Whether CI/CD upload via API keys is enabled globally. */
  @Column({ name: 'cicd_enabled', type: 'boolean', default: true })
  cicdEnabled: boolean;

  /** Whether Slack integration is enabled globally. */
  @Column({ name: 'slack_enabled', type: 'boolean', default: false })
  slackEnabled: boolean;

  @UpdateDateColumn({ name: 'updated_at' })
  updatedAt: Date;
}
