<?xml version="1.0"?>
<ruleset name="GroceryDelivery">
    <description>Custom PHP_CodeSniffer rules for Grocery Delivery API</description>

    <!-- Include PSR-12 standard -->
    <rule ref="PSR12"/>

    <!-- Array formatting -->
    <rule ref="Generic.Arrays.ArrayIndent"/>

    <!-- PHPDoc formatting -->
    <rule ref="Squiz.Commenting.DocCommentAlignment"/>

    <!-- Alignment -->
    <rule ref="Squiz.Arrays.ArrayDeclaration.MultiLineKeyAlignment"/>
    <rule ref="Squiz.WhiteSpace.OperatorSpacing"/>

    <!-- Line length -->
    <rule ref="Generic.Files.LineLength">
        <properties>
            <property name="lineLimit" value="220"/>
            <property name="absoluteLineLimit" value="0"/>
        </properties>
    </rule>

    <!-- Exclude CamelCaps check from test files entirely -->
    <rule ref="Squiz.NamingConventions.ValidFunctionName.NotCamelCaps"/>
    <exclude-pattern>*/tests/*</exclude-pattern>

    <!-- Files to scan -->
    <file>app</file>
    <file>tests</file>
</ruleset>
