Skip to content

Latest commit

 

History

History
204 lines (172 loc) · 9.27 KB

dataModelsDescription.md

File metadata and controls

204 lines (172 loc) · 9.27 KB

Understood. Let's consolidate the comments and tags into single entities that can be associated with any type of parent data model. We'll also ensure that all other data models are included without omission.

Comprehensive Data Model with All Entities

  • ActivityCenter

    • Attributes: CenterID, Name, Description, Address, City, ParentGroupID, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-Many with Room
      • One-to-Many with ExternalLocation
      • One-to-Many with Activity
      • One-to-Many with User (Admin, Animator/Teacher)
  • User

    • Attributes: UserID, Name, Email, Password, Description, RoleID, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-Many with MemberProfile, FamilyProfile, AdminProfile, AnimatorTeacherProfile
      • Many-to-Many with Activity (through Booking)
      • Many-to-Many with MemberGroup (through GroupMembership)
      • Many-to-Many with MemberClass (through ClassMembership)
  • Role

    • Attributes: RoleID, Name, Slug, Description, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-Many with User
  • MemberProfile

    • Attributes: MemberID, UserID, DateOfBirth, Description, preferredActivities, AgeGroup, Hocation, HealthInfo, ContactInfo, LegalInfo, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with User
      • One-to-Many with Booking
  • FamilyProfile

    • Attributes: FamilyID, OwnerUserID, Description, ContactInfo, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with User Owner
      • One-to-Many with FamilyMemberProfile (Children)
      • One-to-Many with Booking
  • FamilyMemberProfile

    • Attributes: FamilyMemberID, UserID, DateOfBirth, Description, HealthInfo, ContactInfo, LegalInfo, RelationshipType, CanTakeCareOfMinors, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with User
      • One-to-Many with Booking
  • AdminProfile

    • Attributes: AdminID, UserID, ContactInfo, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with User
      • One-to-Many with Activity
  • AnimatorTeacherProfile

    • Attributes: ProfileID, UserID, Description, ContactInfo, Specialization, Availability, Level, CertificationID, Age, ProfileType, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with User
      • One-to-Many with Activity
      • One-to-Many with Certification
      • One-to-Many with Schedule
  • Certification

    • Attributes: CertificationID, AnimatorTeacherProfileID, AgeGroup, CertificationType, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with AnimatorTeacherProfile
  • Schedule

    • Attributes: ScheduleID, AnimatorTeacherProfileID, Day, StartTime, EndTime, ActivityTypeID, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with AnimatorTeacherProfile
      • One-to-One with ActivityType
  • ActivityType

    • Attributes: ActivityTypeID, Name, Description, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-Many with Activity
      • One-to-Many with Room
      • One-to-Many with ExternalLocation
  • Activity

    • Attributes: ActivityID, Name, Description, ActivityTypeID, Format, Location, Duration, Price, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy, PublicNote, PrivateNote, EquipmentNeeded, ActivityImages
    • Relationships:
      • Many-to-Many with User (through Booking)
      • One-to-Many with Room
      • One-to-Many with ExternalLocation
      • One-to-Many with Session
      • One-to-Many with Tag (through ActivityTag)
      • One-to-Many with Comment (through Comment)
  • RoomType

    • Attributes: RoomTypeID, Name, Description, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-Many with Room
  • Room

    • Attributes: RoomID, Name, Location, Capacity, AccessibilityForDisabled, ActivityTypesAllowed, SessionsPerDay, RoomTypeID, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy, Description, PublicNote, PrivateNote
    • Relationships:
      • One-to-Many with Activity
      • One-to-Many with Session
      • One-to-Many with Tag (through Tag)
      • One-to-Many with Comment (through Comment)
  • ExternalLocationType

    • Attributes: ExternalLocationTypeID, Name, Description, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-Many with ExternalLocation
  • ExternalLocation

    • Attributes: LocationID, Name, Address, City, Capacity, AccessibilityForDisabled, ActivityTypesAllowed, Availability, ExternalLocationTypeID, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy, Description, PublicNote, PrivateNote
    • Relationships:
      • One-to-Many with Activity
      • One-to-Many with Session
      • One-to-Many with Tag (through Tag)
      • One-to-Many with Comment (through Comment)
  • Session

    • Attributes: SessionID, ActivityID, Date, Time, RoomID/ExternalLocationID, AnimatorTeacherProfileID, Status, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy, PublicNote, PrivateNote, MaxParticipants, CurrentParticipants
    • Relationships:
      • One-to-One with Activity
      • One-to-One with Room (if applicable)
      • One-to-One with ExternalLocation (if applicable)
      • One-to-One with AnimatorTeacherProfile
      • One-to-Many with Tag (through Tag)
      • One-to-Many with Comment (through Comment)
  • Booking

    • Attributes: BookingID, UserID, ActivityID, SessionID, PaymentMethod, PaymentStatus, DateBooked, TimePeriod, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy, PublicNote, PrivateNote, Status (e.g., 'confirmed', 'pending', 'cancelled')
    • Relationships:
      • One-to-One with User
      • One-to-One with Activity
      • One-to-One with Session
      • One-to-One with Payment
  • Payment

    • Attributes: PaymentID, BookingID, Amount, Method, Status, Date, TransactionID, Currency, PaymentGatewayResponse, ErrorMessage, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with Booking
  • RecurringBooking

    • Attributes: RecurringBookingID, UserID, ActivityID, StartDate, EndDate, RecurrencePattern, CustomPatternDetails, TimeSlot, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy, PublicNote, PrivateNote
    • Relationships:
      • One-to-One with User
      • One-to-Many with RecurringSession
  • RecurringSession

    • Attributes: RecurringSessionID, RecurringBookingID, SessionID, Date, Status, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy, PublicNote, PrivateNote
    • Relationships:
      • One-to-One with RecurringBooking
      • One-to-One with Session
  • Tag

    • Attributes: TagID, Name, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • Many-to-Many with Activity (through ActivityTag)
      • Many-to-Many with Room (through RoomTag)
      • Many-to-Many with ExternalLocation (through ExternalLocationTag)
      • Many-to-Many with Session (through SessionTag)
      • Many-to-Many with User (through UserTag)
      • Many-to-Many with MemberGroup (through GroupTag)
      • Many-to-Many with MemberClass (through ClassTag)
  • Comment

    • Attributes: CommentID, UserID, Content, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • Many-to-Many with Activity (through ActivityComment)
      • Many-to-Many with Room (through RoomComment)
      • Many-to-Many with ExternalLocation (through ExternalLocationComment)
      • Many-to-Many with Session (through SessionComment)
      • Many-to-Many with User (through UserComment)
      • Many-to-Many with MemberGroup (through GroupComment)
      • Many-to-Many with MemberClass (through ClassComment)
  • MemberGroup

    • Attributes: GroupID, Name, Description, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-Many with User (Members)
      • One-to-Many with Activity (Group Activities)
  • GroupMembership

    • Attributes: MembershipID, UserID, GroupID, JoinDate, LeaveDate, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with User
      • One-to-One with MemberGroup
  • MemberClass

    • Attributes: ClassID, Name, Description, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-Many with User (Members)
      • One-to-Many with Activity (Class Activities)
  • ClassMembership

    • Attributes: MembershipID, UserID, ClassID, JoinDate, LeaveDate, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-One with User
      • One-to-One with MemberClass
  • Feedback

    • Attributes: FeedbackID, UserID, SessionID, Rating, Comments, CreatedAt, UpdatedAt, DeletedAt, CreatedBy, UpdatedBy
    • Relationships:
      • One-to-Many with User
      • One-to-Many with Session
    • Notes:
      • The Rating attribute is crucial for understanding user satisfaction and should be carefully considered in the overall feedback management strategy.
      • The Comments attribute allows for more detailed feedback, which can be invaluable for continuous improvement.