package database

import (
	"time"
)

type Subscribe struct {
	ID              string    `gorm:"primaryKey" json:"id"`
	SubscribePlanID string    `gorm:"not null" json:"subscribe_plan_id"`
	StartDate       time.Time `gorm:"default:CURRENT_TIMESTAMP"`
	EndDate         time.Time `gorm:"default:null"`
	Status          string    `gorm:"default:'inactive'"`
	AutoRenew       bool      `gorm:"default:true"`
	CreatedAt       time.Time `gorm:"default:CURRENT_TIMESTAMP"`
	UpdatedAt       time.Time `gorm:"default:CURRENT_TIMESTAMP"`
	DeletedAt       time.Time `gorm:"default:null" json:"deleted_at"`

	SubscribePlan SubscribePlan `gorm:"foreignKey:SubscribePlanID;constraint:OnDelete:CASCADE" json:"subscribe_plan"`
}

type SubscribePlan struct {
	ID        string    `gorm:"primaryKey" json:"id"`
	Code      string    `gorm:"not null;unique" json:"code"`
	Name      string    `gorm:"not null" json:"name"`
	CreatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP"`
	UpdatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP"`
}
