<?xml version="1.0" encoding="UTF-8"?>
<database name="michelleosman2" defaultIdMethod="native"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="http://xsd.propelorm.org/1.6/database.xsd"
          namespace="MO\v1">
  
    <!-- User Table -->
    <table name="user" phpName="User">
        <!-- ID Column -->
        <column name="id" phpName="ID" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
    
        <!-- Name Column -->
        <column name="username" phpName="Username" type="varchar" size="128" required="true" primaryString="true" />
        <validator column="username">
            <rule name="required" message="Username is required." />
            <rule name="unique" message="Username must be unique" />
        </validator>
    
        <!-- Description Column -->
        <column name="passwd" phpName="Password" type="varchar" size="128" required = "true" />
        <validator column="passwd">
            <rule name="required" message="Password is required." />
        </validator>    
        
        <behavior name="sluggable" />
    </table>
    
    <!-- Gallery Table -->
    <table name="gallery" phpName="Gallery">
        <!-- ID Column -->
        <column name="id" phpName="ID" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
    
        <!-- Name Column -->
        <column name="title" phpName="Title" type="varchar" size="128" required="true" primaryString="true" />
        <validator column="title">
            <rule name="required" message="Gallery Title is required." />
            <rule name="unique" message="Gallery Title must be unique" />
        </validator>
    
        <!-- Description Column -->
        <column name="description" phpName="Description" type="longvarchar" />
    
        <!-- Is Disabled flag Column -->
        <column name="is_disabled" phpName="IsDisabled" type="boolean" defaultValue="0" />
    
        
        <behavior name="sluggable" />
        <behavior name="sortable" />
    </table>
  
    <!-- Painting Table -->
    <table name="painting" phpName="Painting">
        <!-- ID Column -->
        <column name="id" phpName="ID" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
    
        <!-- Title Column -->
        <column name="title" phpName="Title" type="varchar" size="255" required="true" primaryString="true" />
        <validator column="title">
            <rule name="required" message="Painting title is required." />
            <rule name="unique" message="Painting Title must be unique" />
        </validator>
    
        <!-- Description Column -->
        <column name="description" phpName="Description" type="longvarchar" />
    
        <!-- Image Column -->
        <column name="image" phpName="Image" type="longvarchar" required="true" />
        <validator column="image">
            <rule name="required" message="Image is required." />
        </validator>
        
        <!-- Thumb Column -->
        <column name="thumb" phpName="Thumb" type="longvarchar" required="true" />
        <validator column="thumb">
            <rule name="required" message="Thumb is required." />
        </validator>
        
        
        <!-- Width Column -->
        <column name="width" phpName="Width" type="varchar" size="20" required="true" />
        <validator column="width">
            <rule name="required" message="Width is required." />
        </validator>
        
        <!-- Height Column -->
        <column name="height" phpName="Height" type="varchar" size="20" required="true" />
        <validator column="height">
            <rule name="required" message="Height is required." />
        </validator>
        
        <!-- Date Column -->
        <column name="year" phpName="Year" type="integer" required='true' />
        <validator column="year">
            <rule name="required" message="Year is required." />
            <rule
                name="minValue"
                value="1980"
                message="Invalid year, range: 1980-2100" />
            <rule
                name="maxValue"
                value="2100"
                message="Invalid year, range: 1980-2100" />
        </validator>
        
        <!-- Main Image ID FK Column -->
        <column name="gallery_id" phpName="GalleryID" type="integer" required="true"/>
        <foreign-key foreignTable="gallery">
            <reference local="gallery_id" foreign="id"/>
        </foreign-key>
        <validator column="gallery_id">
            <rule name="required" message="Gallery is required." />
        </validator>
        
        <!-- Medium ID FK Column -->
        <column name="medium_id" phpName="MediumID" type="integer" />
        <foreign-key foreignTable="medium">
            <reference local="medium_id" foreign="id"/>
        </foreign-key>

        <!-- Status Column -->
        <column name="status" phpName="status" type="varchar" size="80" required="false" />
        
        <!-- Is Disabled flag Column -->
        <column name="is_disabled" phpName="IsDisabled" type="boolean" defaultValue="0" />
                
        <behavior name="sluggable" />
        <behavior name="sortable" />
    </table>
    
    <!-- Medium Table -->
    <table name="medium" phpName="Medium">
        <!-- ID Column -->
        <column name="id" phpName="ID" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
    
        <!-- Name Column -->
        <column name="name" phpName="Name" type="varchar" size="64" required="true" primaryString="true"  />
        <validator column="name">
            <rule name="required" message="Medium name is required." />
        </validator>
                
        <behavior name="sluggable" />
    </table>

</database>