Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions pkg/models/category.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package models

// CategoryModel represents the category data stored in the database.
type CategoryModel struct {
ModelLifecycles `json:"-"`
ID string `db:"id" json:"id"`
Name string `db:"name" json:"name"`
}

func (m *CategoryModel) BeforeCreate() error {
return nil
}

func (m *CategoryModel) AfterCreate() error {
return nil
}

func (m *CategoryModel) BeforeUpdate() error {
return nil
}

func (m *CategoryModel) AfterUpdate() error {
return nil
}

func (m *CategoryModel) BeforeDelete() error {
return nil
}

func (m *CategoryModel) AfterDelete() error {
return nil
}
41 changes: 41 additions & 0 deletions pkg/models/event.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package models

import (
"database/sql"
"time"

"github.com/BEOpenSourceCollabs/EventManagementCore/pkg/types"
)

// EventModel represents the event data stored in the database.
type EventModel struct {
Model
Name string `db:"name" json:"name"`
OrganizerId string `db:"organizer_id" json:"organizer_id"`
Description sql.NullString `db:"description" json:"description"`
StartDate time.Time `db:"start_date" json:"start_date"`
EndDate time.Time `db:"end_date" json:"end_date"`
IsPaid bool `db:"is_paid" json:"is_paid"`
EventType types.EventType `db:"event_type" json:"event_type"`
Country sql.NullString `db:"country" json:"country"`
City sql.NullString `db:"city" json:"city"`
Slug string `db:"slug" json:"slug"`
Likes int64 `db:"likes" json:"likes"`
Follows int64 `db:"follows" json:"follows"`
Attendees int64 `db:"attendees" json:"attendees"`
}

// BeforeCreate overrides model lifecycle hook
func (m *EventModel) BeforeCreate() error {
m.Likes = 0
m.Follows = 0
m.Attendees = 0
// TODO: generate value for slug
return nil
}

// BeforeUpdate overrides model lifecycle hook, updating the updated_at time.
func (m *EventModel) BeforeUpdate() error {
m.UpdatedAt = time.Now()
return nil
}
35 changes: 35 additions & 0 deletions pkg/models/event_attendee.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package models

import "time"

// EventAttendeeModel represents the event_attendee data stored in the database.
type EventAttendeeModel struct {
ModelLifecycles `json:"-"`
EventId string `db:"event_id" json:"event_id"`
AttendeeId string `db:"attendee_id" json:"attendee_id"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
}

func (m *EventAttendeeModel) BeforeCreate() error {
return nil
}

func (m *EventAttendeeModel) AfterCreate() error {
return nil
}

func (m *EventAttendeeModel) BeforeUpdate() error {
return nil
}

func (m *EventAttendeeModel) AfterUpdate() error {
return nil
}

func (m *EventAttendeeModel) BeforeDelete() error {
return nil
}

func (m *EventAttendeeModel) AfterDelete() error {
return nil
}
32 changes: 32 additions & 0 deletions pkg/models/event_category.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package models

// EventCategoryModel represents the event_category data stored in the database.
type EventCategoryModel struct {
ModelLifecycles `json:"-"`
EventId string `db:"event_id" json:"event_id"`
CategoryId string `db:"category_id" json:"category_id"`
}

func (m *EventCategoryModel) BeforeCreate() error {
return nil
}

func (m *EventCategoryModel) AfterCreate() error {
return nil
}

func (m *EventCategoryModel) BeforeUpdate() error {
return nil
}

func (m *EventCategoryModel) AfterUpdate() error {
return nil
}

func (m *EventCategoryModel) BeforeDelete() error {
return nil
}

func (m *EventCategoryModel) AfterDelete() error {
return nil
}
32 changes: 32 additions & 0 deletions pkg/models/event_follower.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package models

// EventFollowerModel represents the event_follower data stored in the database.
type EventFollowerModel struct {
ModelLifecycles `json:"-"`
EventId string `db:"event_id" json:"event_id"`
FollowerId string `db:"follower_id" json:"follower_id"`
}

func (m *EventFollowerModel) BeforeCreate() error {
return nil
}

func (m *EventFollowerModel) AfterCreate() error {
return nil
}

func (m *EventFollowerModel) BeforeUpdate() error {
return nil
}

func (m *EventFollowerModel) AfterUpdate() error {
return nil
}

func (m *EventFollowerModel) BeforeDelete() error {
return nil
}

func (m *EventFollowerModel) AfterDelete() error {
return nil
}
32 changes: 32 additions & 0 deletions pkg/models/event_like.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package models

// EventLikeModel represents the event_like data stored in the database.
type EventLikeModel struct {
ModelLifecycles `json:"-"`
EventId string `db:"event_id" json:"event_id"`
UserId string `db:"user_id" json:"user_id"`
}

func (m *EventLikeModel) BeforeCreate() error {
return nil
}

func (m *EventLikeModel) AfterCreate() error {
return nil
}

func (m *EventLikeModel) BeforeUpdate() error {
return nil
}

func (m *EventLikeModel) AfterUpdate() error {
return nil
}

func (m *EventLikeModel) BeforeDelete() error {
return nil
}

func (m *EventLikeModel) AfterDelete() error {
return nil
}
32 changes: 32 additions & 0 deletions pkg/models/event_tag.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package models

// EventTagModel represents the event_tag data stored in the database.
type EventTagModel struct {
ModelLifecycles `json:"-"`
EventId string `db:"event_id" json:"event_id"`
TagId string `db:"tag_id" json:"tag_id"`
}

func (m *EventTagModel) BeforeCreate() error {
return nil
}

func (m *EventTagModel) AfterCreate() error {
return nil
}

func (m *EventTagModel) BeforeUpdate() error {
return nil
}

func (m *EventTagModel) AfterUpdate() error {
return nil
}

func (m *EventTagModel) BeforeDelete() error {
return nil
}

func (m *EventTagModel) AfterDelete() error {
return nil
}
18 changes: 18 additions & 0 deletions pkg/models/review.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package models

import "time"

// ReviewModel represents the review data stored in the database.
type ReviewModel struct {
Model
Title string `db:"title" json:"title"`
EventId string `db:"event_id" json:"event_id"`
AuthorId string `db:"author_id" json:"author_id"`
Body string `db:"body" json:"body"`
}

// BeforeUpdate overrides model lifecycle hook, updating the updated_at time.
func (m *ReviewModel) BeforeUpdate() error {
m.UpdatedAt = time.Now()
return nil
}
32 changes: 32 additions & 0 deletions pkg/models/tag.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package models

// TagModel represents the tag data stored in the database.
type TagModel struct {
ModelLifecycles `json:"-"`
ID string `db:"id" json:"id"`
Name string `db:"name" json:"name"`
}

func (m *TagModel) BeforeCreate() error {
return nil
}

func (m *TagModel) AfterCreate() error {
return nil
}

func (m *TagModel) BeforeUpdate() error {
return nil
}

func (m *TagModel) AfterUpdate() error {
return nil
}

func (m *TagModel) BeforeDelete() error {
return nil
}

func (m *TagModel) AfterDelete() error {
return nil
}
Loading