package models

import "time"

type Project struct {
	ID            uint      `gorm:"primaryKey;autoIncrement" json:"id"`
	UUID          string    `gorm:"size:36;uniqueIndex;not null" json:"uuid"`
	OwnerUsername string    `gorm:"size:100;not null;index" json:"owner_username"`
	Code          string    `gorm:"size:100;not null;index:idx_qt_projects_code_variant,priority:1" json:"code"`
	Variant       string    `gorm:"size:100;not null;default:'';index:idx_qt_projects_code_variant,priority:2" json:"variant"`
	Name          *string   `gorm:"size:200" json:"name,omitempty"`
	TrackerURL    string    `gorm:"size:500" json:"tracker_url"`
	IsActive      bool      `gorm:"default:true;index" json:"is_active"`
	IsSystem      bool      `gorm:"default:false;index" json:"is_system"`
	CreatedAt     time.Time `gorm:"autoCreateTime" json:"created_at"`
	UpdatedAt     time.Time `gorm:"autoUpdateTime" json:"updated_at"`
}

func (Project) TableName() string {
	return "qt_projects"
}
