package dst.ass1.jpa.util;

public final class Constants {

    public static final String JPA_PERSISTENCE_UNIT = "dst_pu";

    /* TYPES (CLASSES) */
    public static final String T_COURSE = "Course";
    public static final String T_COURSEPLATFORM = "CoursePlatform";
    public static final String T_ENROLLMENT = "Enrollment";
    public static final String T_LECTURER = "Lecturer";
    public static final String T_LESSON = "Lesson";
    public static final String T_MATERIAL = "Material";
    public static final String T_MATERIALSERVER = "MaterialServer";
    public static final String T_MEMBERSHIP = "Membership";
    public static final String T_METADATA = "Metadata";
    public static final String T_PARTICIPANT = "Participant";
    public static final String T_PERSON = "Person";

    /* IDs (FOREIGN KEYS) */
    public static final String I_COURSE = "course_id";
    public static final String I_COURSEPLATFORM = "courseplatform_id";
    public static final String I_LECTURER = "lecturer_id";
    public static final String I_LESSON = "lesson_id";
    public static final String I_MATERIAL = "material_id";
    public static final String I_MATERIALSERVER = "materialserver_id";
    public static final String I_MEMBERSHIP = "membership_id";
    public static final String I_METADATA = "metadata_id";
    public static final String I_PARTICIPANT = "participant_id";
    public static final String I_PERSON = "person_id";
    public static final String I_LESSON_REQUIRED = "requiredLessons_id";
    public static final String I_LESSON_REQUIRED_BY = "requiredLessonsBy_id";

    /* MEMBER ATTRIBUTES */
    public static final String M_ADDRESS_STREET = "street";
    public static final String M_ADDRESS_CITY = "city";
    public static final String M_ADDRESS_ZIP_CODE = "zipCode";
    public static final String M_COURSE_NAME = "name";
    public static final String M_COURSE_PREMIUM = "premium";
    public static final String M_COURSE_COST = "cost";
    public static final String M_COURSE_CAPACITY = "capacity";
    public static final String M_COURSE_STATUS = "status";
    public static final String M_COURSE_START = "start";
    public static final String M_COURSE_END = "end";
    public static final String M_COURSE_LECTURER = "lecturer";
    public static final String M_COURSE_COURSEPLATFORM = "coursePlatform";
    public static final String M_COURSE_PARTICIPANTS = "participants";
    public static final String M_COURSEPLATFORM_NAME = "name";
    public static final String M_COURSEPLATFORM_URL = "url";
    public static final String M_ENROLLMENT_ENROLLED_AT = "enrolledAt";
    public static final String M_ENROLLMENT_PAID = "paid";
    public static final String M_LECTURER_LESSONS = "lessons";
    public static final String M_LESSON_DESCRIPTION = "description";
    public static final String M_LESSON_START = "start";
    public static final String M_LESSON_END = "end";
    public static final String M_LESSON_REQUIRED = "requiredLessons";
    public static final String M_LESSON_COURSE = "course";
    public static final String M_MATERIAL_URN = "urn";
    public static final String M_MATERIAL_TYPE = "type";
    public static final String M_MATERIAL_UPLOADED = "uploaded";
    public static final String M_MATERIAL_LAST_UPDATE = "lastUpdate";
    public static final String M_MATERIAL_LESSON = "lesson";
    public static final String M_MATERIALSERVER_NAME = "name";
    public static final String M_MATERIALSERVER_LAST_MAINTENANCE = "lastMaintenance";
    public static final String M_MATERIALSERVER_NEXT_MAINTENANCE = "nextMaintenance";
    public static final String M_MATERIALSERVER_COURSE_PLATFORM = "coursePlatform";
    public static final String M_MEMBERSHIP_PREMIUM = "premium";
    public static final String M_MEMBERSHIP_DISCOUNT = "discount";
    public static final String M_METADATA_DATA = "data";
    public static final String M_PARTICIPANT_ACCOUNT = "accountNo";
    public static final String M_PARTICIPANT_BANK_CODE = "bankCode";
    public static final String M_PERSON_NAME = "name";
    public static final String M_PERSON_EMAIL = "email";
    public static final String M_PERSON_PASSWORD = "password";

    /* ASSOCIATION NAMES (FOR QUERIES) */
    public static final String A_MATERIALS = "materials";
    public static final String A_LESSONS = "lessons";
    public static final String A_COURSE = "course";

    /* NAMED QUERIES */
    public static final String Q_PARTICIPANT_BY_EMAIL = "participantByEmail";
    public static final String Q_ONGOING_AND_FREE_PLATFORM_COURSES = "ongoingAndFreeCoursesByPlatform";
    public static final String Q_MOST_ACTIVE_LECTURER = "mostActiveLecturer";
    public static final String Q_UPCOMING_LESSONS = "upcomingLessonsPerLecturerForCourse";

    /* JOIN TABLES */
    public static final String J_LESSONS_REQUIRED = "lesson_required";
    public static final String J_METADATA_DATA = "metadata_data";
    public static final String J_MATERIALSERVER_MATERIAL = "materialserver_material";
    public static final String J_LECTURER_LESSON = "lecturer_lesson";
    public static final String J_PARTICIPANT_MEMBERSHIP = "participant_membership";
    public static final String J_PARTICIPANT_ENROLLMENT = "participant_enrollment";
    public static final String J_COURSE_ENROLLMENT = "course_enrollment";
    public static final String J_COURSEPLATFORM_MATERIALSERVER = "courseplatform_materialserver";

    /* MONGODB */
    public static final String MONGO_DB_NAME = "dst";
    public static final String COLL_MATERIAL_DATA = "MaterialData";

    private Constants() {
        // final
    }
}
